目次
1. はじめに
どうも皆さん こんにちは こんばんは おはようございます。
セキュリティ強化したいけどまずはその第一歩から...ということでうちで管理しているIAMユーザってみんなちゃんとMFA登録して有効化してるのかな?と確認したいそこのあなた!!!
これからポリシーでMFA強制させたいけど既存のIAMユーザがどれだけMFAを有効化しているかわからない....そこの彼も!!!
これさえ使えば簡単に調べることができます!
もし今回書く内容でこんなことしなくてもすぐわかる方法が他にあれば僕が知りたいので、私知っているよ!!!って方がいたらぜひ教えてください。
教えていただけたらしっぽブンブンです。よろしくお願いします!!!!
それじゃあ本題に入りますね
2. 前提条件
今回はCloudshellで実行するので特に前提条件はありません。
CLIを打てるサーバからやりたい場合は権限等の確認を忘れずに...
3. シェル
#!/bin/bash
# IAMユーザーの一覧を取得
users=$(aws iam list-users --query "Users[*].UserName" --output text)
echo "ユーザー名 | MFA有効"
echo "--------------------"
# 各ユーザーのMFA設定を確認
for user in $users; do
mfa=$(aws iam list-mfa-devices --user-name $user --query "MFADevices" --output text)
if [ -z "$mfa" ]; then
echo "$user | 無効"
else
echo "$user | 有効"
fi
done
上記を保存してアップロード後に実行権限を付けて作動させてください。
chmod +x check-mfa.sh
結果をファイルに保存したい場合は、スクリプトの最後でリダイレクトを使用して出力をファイルに書き込みます。
以下が例です。
./check-mfa.sh > mfa-status.txt
4. まとめ
シェルの中身の詳しい解説は行っていませんが、ユーザの名前の横のステータス部分が無効か有効かで判別できます。
IAMユーザの一覧を取得してからその一覧に対して処理を行うので、全部網羅できると思います。
特定のユーザのみ確認したいor複数の特定のユーザのみ確認したい場合については別記事で紹介しようと思います。
それではhave a nice day