[AWS]認証情報レポートを出力してIAMユーザーの棚卸しをする

2017.05.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。

IAMユーザを棚卸して安全なAWSアカウント管理を!、こちらにIAMユーザーの棚卸しが書かれていますが 今回は認証情報レポートという機能を使って、IAMユーザーのアクセスキー、パスワードの棚卸しをしてみました。アカウントが大量にある場合は、かなり有用ではないかと思います。

AWSアカウントの認証情報レポートとは

AWSアカウント内の全てのユーザーとユーザーの認証情報ステータス(MFA、最終ログイン時間、パスワード利用有無等)をCSVでダウンロードできます。 レポートは4時間ごとに1回作成となります。

  1. レポート作成
  2. レポートダウンロード(1から4時間は1で作成されたレポートがダウンロードされる)
  3. 4時間後にレポート作成した場合は1に戻る

のような感じになるかと思います。つまり、追加直後のIAMユーザーはレポートに出力されない場合もあるので注意となります。

やってみた

さっそく、認証レポートを出力してレポートを確認してみました。

必要なIAM権限

以下のアクセス権が必要になります。権限が足りない場合は追加ください。

  • 認証情報レポートを作成生成: GenerateCredentialReport
  • レポートのダウンロード: GetCredentialReport

レポートの出力とダウンロード

簡単にダウンロードできます。IAMユーザーの画面へ移動して「認証情報レポート」を選択します。

20170516-iam-report-1

「レポートをダウンロード」をクリクします。

20170516-iam-report-2

CSVがダウンロードされました。

20170516-iam-report-3

レコードの詳細はこちらからご確認ください。

ユーザーの棚卸し

以下の観点で棚卸ししてみました。

  • MFAが有効ではないアカウント
  • パスワードがXX期間変更されていないアカウント
  • アクセスキーがXX期間変更されていないアカウント
  • XX期間ログインされていないアカウント
  • XX期間アクセスキーが利用されていないアカウント
  • アクセスキーもパスワードも設定されていないアカウント

MFAが有効ではないアカウント

多要素認証を導入することで、アカウントの不正利用リスクを軽減することができます。有効でないアカウントは有効化しましょう!

以下の列を確認します。

  • password_enabled:TRUE(ログインが有効なアカウント)
  • mfa_active:FALSE(MFAが無効なアカウント)

20170516-iam-report-4

XX期間ログインされていないアカウント

AWSマネジメントコンソールにログインした日付を確認します。利用されてなそうなアカウントがあれば確認し、削除しましょう!

以下の列を確認します。

  • password_last_used

※N/Aの箇所はパスワードが設定されておらずログインできない状態なので確認の対象外にします

20170516-iam-report-5

XX期間アクセスキーが利用されていないアカウント

一時的な確認のためにアクセスキーを発行し、消し忘れていることがありそうです。最後に利用した期間を確認し、不要であれば削除しましょう! アクセスキーは2つ作成できるため、2箇所確認します。

以下の列を確認します。

  • access_key_1_last_used_date
  • access_key_2_last_used_date

※N/Aはアクセスキーの利用がない箇所なので確認対象外にします

20170516-iam-report-6

アクセスキーもパスワードも設定されていないアカウント

アクセスキーもパスワードも設定されていないアカウントは、利用されていない可能性が高いです。確認し、不要であれば削除しましょう!

以下の列を確認します。

  • password_enabled
  • access_key_1_active
  • access_key_2_active

すべて「FALSE」になっていれば利用されていない可能性が高いです。

20170516-iam-report-7

最後に

色々なプロジェクトや関係者が多くなると、定期的な棚卸しをすることでセキュリティを向上させることができます。是非棚卸ししましょう!

参考

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_getting-report.html