[AWS]認証情報レポートを出力してIAMユーザーの棚卸しをする
コンニチハ、千葉です。
IAMユーザを棚卸して安全なAWSアカウント管理を!、こちらにIAMユーザーの棚卸しが書かれていますが 今回は認証情報レポートという機能を使って、IAMユーザーのアクセスキー、パスワードの棚卸しをしてみました。アカウントが大量にある場合は、かなり有用ではないかと思います。
AWSアカウントの認証情報レポートとは
AWSアカウント内の全てのユーザーとユーザーの認証情報ステータス(MFA、最終ログイン時間、パスワード利用有無等)をCSVでダウンロードできます。 レポートは4時間ごとに1回作成となります。
- レポート作成
- レポートダウンロード(1から4時間は1で作成されたレポートがダウンロードされる)
- 4時間後にレポート作成した場合は1に戻る
のような感じになるかと思います。つまり、追加直後のIAMユーザーはレポートに出力されない場合もあるので注意となります。
やってみた
さっそく、認証レポートを出力してレポートを確認してみました。
必要なIAM権限
以下のアクセス権が必要になります。権限が足りない場合は追加ください。
- 認証情報レポートを作成生成: GenerateCredentialReport
- レポートのダウンロード: GetCredentialReport
レポートの出力とダウンロード
簡単にダウンロードできます。IAMユーザーの画面へ移動して「認証情報レポート」を選択します。
「レポートをダウンロード」をクリクします。
CSVがダウンロードされました。
レコードの詳細はこちらからご確認ください。
ユーザーの棚卸し
以下の観点で棚卸ししてみました。
- MFAが有効ではないアカウント
- パスワードがXX期間変更されていないアカウント
- アクセスキーがXX期間変更されていないアカウント
- XX期間ログインされていないアカウント
- XX期間アクセスキーが利用されていないアカウント
- アクセスキーもパスワードも設定されていないアカウント
MFAが有効ではないアカウント
多要素認証を導入することで、アカウントの不正利用リスクを軽減することができます。有効でないアカウントは有効化しましょう!
以下の列を確認します。
- password_enabled:TRUE(ログインが有効なアカウント)
- mfa_active:FALSE(MFAが無効なアカウント)
XX期間ログインされていないアカウント
AWSマネジメントコンソールにログインした日付を確認します。利用されてなそうなアカウントがあれば確認し、削除しましょう!
以下の列を確認します。
- password_last_used
※N/Aの箇所はパスワードが設定されておらずログインできない状態なので確認の対象外にします
XX期間アクセスキーが利用されていないアカウント
一時的な確認のためにアクセスキーを発行し、消し忘れていることがありそうです。最後に利用した期間を確認し、不要であれば削除しましょう! アクセスキーは2つ作成できるため、2箇所確認します。
以下の列を確認します。
- access_key_1_last_used_date
- access_key_2_last_used_date
※N/Aはアクセスキーの利用がない箇所なので確認対象外にします
アクセスキーもパスワードも設定されていないアカウント
アクセスキーもパスワードも設定されていないアカウントは、利用されていない可能性が高いです。確認し、不要であれば削除しましょう!
以下の列を確認します。
- password_enabled
- access_key_1_active
- access_key_2_active
すべて「FALSE」になっていれば利用されていない可能性が高いです。
最後に
色々なプロジェクトや関係者が多くなると、定期的な棚卸しをすることでセキュリティを向上させることができます。是非棚卸ししましょう!
参考
http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_getting-report.html