📌 結論: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
aws iam generate-credential-report
{
"State": "COMPLETE",
"Description": "No report exists. Starting a new report generation task"
}
"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
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日以上古いアクセスキーを持つユーザーを確認
# (日付計算は別途スクリプトで処理)
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時間前のデータです。リアルタイムの認証情報確認が必要な場合は、
レポートは最大4時間前のデータです。リアルタイムの認証情報確認が必要な場合は、
aws iam list-access-keysやaws iam get-userを個別に実行してください。
インシデント発生時は両方を併用することをお勧めします。
🤔
IAMロールの情報も含まれる?
いいえ、IAMユーザーのみが対象です。
認証情報レポートにはIAMロールやフェデレーテッドユーザーの情報は含まれません。 ロールの利用状況を確認するには、CloudTrailやIAM Access Analyzerを使用してください。
認証情報レポートにはIAMロールやフェデレーテッドユーザーの情報は含まれません。 ロールの利用状況を確認するには、CloudTrailやIAM Access Analyzerを使用してください。
🤔
rootユーザーの情報も取得できる?
はい、rootユーザーも含まれます。
レポートの最初の行は「<root_account>」として記載されます。 rootユーザーにアクセスキーが設定されていたり、MFAが無効だったりすると非常に危険なので、 真っ先に確認してください。
レポートの最初の行は「<root_account>」として記載されます。 rootユーザーにアクセスキーが設定されていたり、MFAが無効だったりすると非常に危険なので、 真っ先に確認してください。
🤔
レポート生成に権限は必要?
はい、IAMの読み取り権限が必要です。
iam:GenerateCredentialReportとiam:GetCredentialReportのアクションが許可されている必要があります。
緊急時に備えて、セキュリティ担当者にはこれらの権限を事前に付与しておきましょう。
🎓 まとめ
全員の名簿
AWSアカウント内の
全IAMユーザーの
認証状態を一覧化
初動調査の必須ツール
インシデント発生時
真っ先に確認すべき
「捜査資料」
危険の早期発見
MFAなし・古いキー
休眠アカウントを
素早く特定