🔍 IAM認証情報レポート

セキュリティインシデント初動調査の必須ツール

🚨 緊急対応時に真っ先に確認すべき情報源

📌 結論:IAM認証情報レポートとは?

「AWSアカウント内の全ユーザーの認証情報を一覧化したCSVレポート」
セキュリティインシデント発生時、誰が・いつ・どのキーでアクセスしたかを素早く把握できる「捜査資料」

📋

全ユーザー一覧

アカウント内の全IAMユーザーの認証状態を一括取得

最終利用日時

パスワード・アクセスキーの最終使用日が分かる

🎯

不審な活動の特定

長期未使用キーや古いユーザーを素早く発見

🏢 会社のセキュリティ事故調査に例えると...

🏢 会社のセキュリティ

  • 🪪 社員証一覧
    全社員の社員証発行状況
  • 🚪 入退館記録
    最後にオフィスに入った日時
  • 🔑 鍵の貸出記録
    誰がどの鍵を持っているか
  • 📅 鍵の交換履歴
    いつ鍵を変更したか
  • 🛡️ 二重認証の有無
    指紋認証も使っているか

☁️ IAM認証情報レポート

  • 👤 IAMユーザー一覧
    全ユーザーのアカウント状態
  • 🔐 パスワード最終使用日
    コンソールログイン日時
  • 🔑 アクセスキー情報
    キーの有無と状態
  • 🔄 キーローテーション日
    最後にキーを変更した日
  • 📱 MFA有効化状態
    多要素認証を使っているか

😱 こんなインシデントが発生したら...

🚨
不審なアクティビティ検知
➡️
「誰のキーが
漏洩した?」
➡️
📋
IAM認証情報
レポートを確認!
➡️
🎯
原因特定

💡 認証情報レポートがあれば素早く特定できること

✓ 90日以上使われていない古いアクセスキーはないか?
✓ MFAなしでログインできるユーザーはいないか?
✓ 退職者のアカウントが残っていないか?
✓ 不審な時間帯にアクセスしたユーザーはいないか?

📊 レポートに含まれる情報(全21項目)

👤 ユーザー基本情報
  • user
    ユーザー名
  • arn
    ユーザーのARN
  • user_creation_time
    作成日時
🔐 パスワード情報
  • password_enabled
    パスワード有効化
  • password_last_used
    ⚠️ 最終使用日時
  • password_last_changed
    最終変更日時
  • password_next_rotation
    次回ローテーション
🔑 アクセスキー1
  • access_key_1_active
    キー1の有効/無効
  • access_key_1_last_rotated
    ⚠️ 最終ローテーション
  • access_key_1_last_used_date
    ⚠️ 最終使用日時
  • access_key_1_last_used_region
    使用リージョン
  • access_key_1_last_used_service
    使用サービス
🗝️ アクセスキー2
  • access_key_2_active
    キー2の有効/無効
  • access_key_2_last_rotated
    ⚠️ 最終ローテーション
  • access_key_2_last_used_date
    ⚠️ 最終使用日時
  • access_key_2_last_used_region
    使用リージョン
  • access_key_2_last_used_service
    使用サービス
📱 MFA/証明書
  • mfa_active
    ⚠️ MFA有効化状態
  • cert_1_active
    証明書1の状態
  • cert_2_active
    証明書2の状態

⚠️ マークは特にインシデント調査で重要な項目

✅ インシデント初動調査チェックリスト

🔴 緊急度:高

🚨
MFAが無効なユーザー mfa_active = false のユーザーを即座に特定
90日以上前のアクセスキー 古いキーは漏洩リスクが高い
👻
休眠アカウント 長期間使われていないユーザー

🟡 緊急度:中

🔄
キーローテーション未実施 定期的なキー更新がされていない
🌍
異常なリージョンからのアクセス 普段使わないリージョンでの利用
🔑
複数のアクティブキー 1ユーザーに2つのキーが有効

🟢 確認事項

📅
最終ログイン日時 インシデント発生時刻と照合
🛠️
使用されたサービス 通常と異なるサービスの利用
👥
rootユーザーの状態 rootのアクセスキーが有効になっていないか

💻 レポートの取得方法

1
レポートを生成
# レポート生成をリクエスト
aws iam generate-credential-report
{
  "State": "COMPLETE",
  "Description": "No report exists. Starting a new report generation task"
}
2
レポートをダウンロード
# Base64デコードしてCSVとして保存
aws iam get-credential-report \
  --query 'Content' \
  --output text | base64 --decode > credential_report.csv
3
危険なユーザーを即座に抽出
# MFAが無効なユーザーを抽出
cat credential_report.csv | grep "false" | grep "password_enabled"

# 90日以上古いアクセスキーを持つユーザーを確認
# (日付計算は別途スクリプトで処理)

⚠️ 発見項目別:危険度と対応

発見項目 危険度 想定リスク 推奨アクション
rootユーザーのアクセスキーが有効 🔴 高 アカウント全体の乗っ取り 即座にキーを無効化・削除
MFAなし + 管理者権限 🔴 高 不正アクセスによる権限昇格 MFA必須化、一時的にアクセス制限
180日以上未使用のアクセスキー 🔴 高 漏洩キーの悪用 キーの無効化・削除
90日以上ローテーションなし 🟡 中 長期間同じキーによるリスク増大 キーのローテーション実施
普段と異なるリージョンでの利用 🟡 中 キー漏洩の可能性 CloudTrailで詳細調査
2つのアクセスキーが両方アクティブ 🟢 低 管理の複雑化 不要なキーの削除を検討

🛡️ インシデント対応フロー

1

認証情報レポートを即座に生成

インシデント検知後、まずレポートを取得して現状を把握

⬇️
2

危険なユーザー/キーを特定

MFAなし、古いキー、休眠アカウントを洗い出し

⬇️
3

該当ユーザーのアクセスキーを無効化

被害拡大を防ぐため、疑わしいキーは一時停止

⬇️
4

CloudTrailで詳細な行動を追跡

認証情報レポートで特定したユーザーのAPI履歴を調査

⬇️
5

新しいキーの発行とMFA強制

安全な認証情報を再発行し、セキュリティを強化

❓ よくある質問

🤔 レポートはリアルタイムで更新される?
いいえ、4時間ごとの更新です。
レポートは最大4時間前のデータです。リアルタイムの認証情報確認が必要な場合は、 aws iam list-access-keysaws iam get-userを個別に実行してください。 インシデント発生時は両方を併用することをお勧めします。
🤔 IAMロールの情報も含まれる?
いいえ、IAMユーザーのみが対象です。
認証情報レポートにはIAMロールやフェデレーテッドユーザーの情報は含まれません。 ロールの利用状況を確認するには、CloudTrailやIAM Access Analyzerを使用してください。
🤔 rootユーザーの情報も取得できる?
はい、rootユーザーも含まれます。
レポートの最初の行は「<root_account>」として記載されます。 rootユーザーにアクセスキーが設定されていたり、MFAが無効だったりすると非常に危険なので、 真っ先に確認してください。
🤔 レポート生成に権限は必要?
はい、IAMの読み取り権限が必要です。
iam:GenerateCredentialReportiam:GetCredentialReportのアクションが許可されている必要があります。 緊急時に備えて、セキュリティ担当者にはこれらの権限を事前に付与しておきましょう。

🎓 まとめ

📋

全員の名簿

AWSアカウント内の
全IAMユーザーの
認証状態を一覧化

🔍

初動調査の必須ツール

インシデント発生時
真っ先に確認すべき
「捜査資料」

🎯

危険の早期発見

MFAなし・古いキー
休眠アカウントを
素早く特定

🏢 会社のセキュリティ事故調査と同じ!

🪪 全社員の社員証一覧 = IAMユーザー一覧
🚪 入退館記録 = パスワード/キーの最終使用日時
🔑 鍵の貸出記録 = アクセスキーの状態
🛡️ 二重認証の有無 = MFA有効化状態

インシデント発生時はまずIAM認証情報レポート
「誰が」「いつ」「どのキーで」を素早く把握しよう!🚀

Created by SSuzuki1063

AWS SAP Learning Resources