2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘用】AWSアカウント内で発行したIAMユーザがMFAを有効化しているか確認するシェル

Posted at

目次

1.はじめに
2.前提条件
3.シェル
4.まとめ

1. はじめに

どうも皆さん こんにちは こんばんは おはようございます。
セキュリティ強化したいけどまずはその第一歩から...ということでうちで管理しているIAMユーザってみんなちゃんとMFA登録して有効化してるのかな?と確認したいそこのあなた!!!

これからポリシーでMFA強制させたいけど既存のIAMユーザがどれだけMFAを有効化しているかわからない....そこの彼も!!!

これさえ使えば簡単に調べることができます!

もし今回書く内容でこんなことしなくてもすぐわかる方法が他にあれば僕が知りたいので、私知っているよ!!!って方がいたらぜひ教えてください。
教えていただけたらしっぽブンブンです。よろしくお願いします!!!!
それじゃあ本題に入りますね

2. 前提条件

今回はCloudshellで実行するので特に前提条件はありません。
CLIを打てるサーバからやりたい場合は権限等の確認を忘れずに...

3. シェル

shell
#!/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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?