概要
AWSアカウントのセキュリティ監査とコンプライアンスを確保するには、単一のサービスだけでは不十分です。「すべてのAPI呼び出しとリソース変更が記録されているか」「アカウント内のリソースの状況を把握できるか」「認証情報やログインの状態を監査できるか」という3つの要件を同時に満たす必要があります。
AWSでは、この3つの要件にそれぞれ AWS CloudTrail、AWS Config、IAM認証情報レポート が対応します。CloudTrailはAPI呼び出しの記録、AWS Configはリソースの構成状態の追跡、IAM認証情報レポートはパスワード・アクセスキー・MFAの状態の監査を担います。本記事では、これら3つのサービスを組み合わせた包括的なセキュリティ監査を実践します。
個別サービスの詳細については、AWS Configによるリソース設定の監視、IAM Credential Reportsによる認証情報の監査、CloudTrailによるIAMアクセス権限変更の追跡をそれぞれ参照してください。

この記事のメリット
- セキュリティ監査に必要な3つの要件(API記録・リソース状況把握・認証情報監査)と、それぞれに対応するAWSサービスの対応関係を明確に理解できる
- AWS CloudTrail、AWS Config、IAM認証情報レポートの役割の違いと組み合わせ方を体系的に学べる
- 混同しやすいサービス(Inspector、SNS、Systems Manager、CloudWatch)との違いを整理し、正確な選択ができるようになる
- 3サービスを実際にコンソールで操作し、監査の一連の流れ(証跡の確認・リソース変更の追跡・認証情報の分析)を実践できる
- SCS試験で「IAMリソース管理に必要なサービスの組み合わせ」を問われた際に正確に判断できるようになる
執筆者とキャラクター紹介
執筆者:土肥(とひ)
株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

クラウドおさる
クラウドおさるはじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。



基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。



猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。
技術解説
セキュリティ監査に必要な3つの要件
AWSアカウントのIAMリソース管理において、包括的なセキュリティ監査を実現するには以下の3つの要件を満たす必要があります。
| 要件 | 内容 | 対応するサービス |
|---|---|---|
| API呼び出しとリソース変更の記録 | 誰が・いつ・どのAPIを呼び出し、どのリソースを変更したかを記録する | AWS CloudTrail |
| アカウント内のリソース状況の把握 | リソースの構成状態を継続的に監視し、設定変更の履歴を追跡する | AWS Config |
| 認証情報とログインの監査 | IAMユーザーのパスワード、アクセスキー、MFAデバイスの状態を一括で把握する | IAM認証情報レポート |
AWS CloudTrailの役割
AWS CloudTrailは、AWSアカウント内で行われたすべてのAPI呼び出しをイベントとして記録するサービスです。
- 記録対象: マネジメントコンソール、AWS CLI、AWS SDK、その他のAWSサービスからのAPI呼び出し
- 確認できる情報: 操作を実行したIAMプリンシパル(
userIdentity)、操作日時(eventTime)、ソースIPアドレス(sourceIPAddress)、操作内容(eventName) - デフォルト動作: アカウント作成時に管理イベントの記録が自動的に有効化され、過去90日間のイベント履歴を参照できる
- S3への配信: 証跡を作成することで、イベントログをS3バケットに長期保存できる
CloudTrailは「誰が・いつ・どこから・何をしたか」を記録するサービスであり、セキュリティインシデントの調査やコンプライアンス監査の基盤となります。
AWS Configの役割
AWS Configは、AWSリソースの構成状態を継続的に記録・評価するサービスです。
- 記録対象: EC2インスタンス、セキュリティグループ、IAMポリシー、S3バケットなど、対応するAWSリソースの構成情報
- 確認できる情報: リソースの設定値、設定変更のタイムライン、変更前後の差分
- コンプライアンス評価: マネージドルールやカスタムルールを使って、リソースの設定がポリシーに準拠しているかを自動的にチェックできる
- リソースインベントリ: アカウント内のリソースを一覧で把握し、リソース間の関係性も確認できる
AWS Configは「リソースがどのような状態か」「いつ・何が変わったか」を追跡するサービスであり、構成ドリフトの検出やコンプライアンス管理に活用します。
IAM認証情報レポートの役割
IAM認証情報レポート(Credential Report)は、AWSアカウント内のすべてのIAMユーザーの認証情報の状態をCSV形式で出力するレポートです。
- 対象: ルートアカウントを含むすべてのIAMユーザー
- 確認できる情報: パスワードの状態(有効/無効、最終使用日、最終変更日)、アクセスキーの状態(有効/無効、最終使用日、ローテーション日)、MFAデバイスの有効/無効
- 生成頻度: 4時間ごとに最大1回生成可能
- 出力形式: CSV形式(IAMコンソール、AWS CLI、AWS APIから取得可能)
IAM認証情報レポートは「認証情報がどのような状態か」を一括で把握するためのサービスであり、未使用アクセスキーの特定やMFA未設定ユーザーの洗い出しに活用します。
3サービスの要件マッピング
3つの要件に対して、各サービスがどのように対応するかを整理します。
| 要件 | CloudTrail | Config | IAM認証情報レポート |
|---|---|---|---|
| API呼び出しの記録 | API呼び出しをイベントとして記録 | – | – |
| リソース変更の追跡 | API操作の履歴から変更を把握 | リソースの構成変更をタイムラインで追跡 | – |
| リソースのインベントリ管理 | – | リソースの一覧と構成状態を把握 | – |
| 認証情報の状態把握 | – | – | パスワード・アクセスキー・MFAの状態を一覧化 |
| ログイン活動の監査 | コンソールサインインイベントを記録 | – | パスワードの最終使用日を確認 |


選択肢の比較
試験では、類似のサービスの組み合わせが選択肢として出題されます。各組み合わせの特徴を比較します。
| 組み合わせ | API呼び出しの記録 | リソース状況の把握 | 認証情報の監査 | 評価 |
|---|---|---|---|---|
| Config + CloudTrail + IAM認証情報レポート | CloudTrailで記録 | Configで把握 | 認証情報レポートで監査 | 3要件すべてを満たす |
| SNS + IAM認証情報レポート + CloudWatch | 記録できない | メトリクス監視のみ | 認証情報レポートで監査 | API記録とリソース構成管理が欠落 |
| CloudTrail + IAM認証情報レポート + Inspector | CloudTrailで記録 | 脆弱性評価のみ | 認証情報レポートで監査 | リソース構成の継続的な追跡が欠落 |
| CloudTrail + IAM認証情報レポート + Systems Manager | CloudTrailで記録 | 運用管理が主目的 | 認証情報レポートで監査 | リソース構成の継続的な追跡が欠落 |
3つの要件をすべて満たすのは Config + CloudTrail + IAM認証情報レポート の組み合わせのみです。
混同しやすいサービスの整理
選択肢に含まれる他のサービスが、なぜ要件を満たさないかを整理します。
| サービス | 主な役割 | セキュリティ監査での位置づけ |
|---|---|---|
| Amazon Inspector | EC2インスタンスやコンテナイメージの脆弱性評価 | ソフトウェアの脆弱性を検出するサービスであり、リソース構成の継続的な追跡は行わない |
| Amazon SNS | メッセージの配信(通知サービス) | 他のサービスからの通知を配信する仕組みであり、記録・監視機能は持たない |
| AWS Systems Manager | EC2インスタンスやオンプレミスサーバーの運用管理 | パッチ管理やパラメータストアなどの運用管理が主目的であり、リソース構成の変更追跡は行わない |
| Amazon CloudWatch | メトリクスの収集・監視、ログの集約 | パフォーマンスメトリクスやアラームによる監視が主目的であり、リソース構成の履歴管理やインベントリ管理は行わない |
実践
前提条件
- AWSマネジメントコンソールにログインできること
- リージョンは
ap-northeast-1(東京)を使用すること - IAMユーザーが1つ以上存在すること(認証情報レポートの確認用)
ステップ1: CloudTrailの証跡を確認する
CloudTrailが有効になっていることを確認し、API呼び出しの記録が行われていることを確認します。
- AWSマネジメントコンソールにログインし、リージョンが
ap-northeast-1(東京)であることを確認します - 上部の検索バーに
CloudTrailと入力し、表示された「CloudTrail」を選択します - 左側ナビゲーションの「証跡」を選択します
証跡が作成されていない場合は、以下の手順で証跡を作成します。すでに証跡が存在する場合は、証跡の設定を確認してステップ2に進んでください。
証跡の作成
- 「証跡の作成」をクリックします。証跡の作成は3ステップのウィザードで進みます
- 「ステップ 1: 証跡属性の選択」で以下を設定します
- 証跡名:
security-audit-trail - ストレージの場所: 「新しい S3 バケットを作成します」(デフォルト)
- 証跡ログバケットおよびフォルダ:
aws-cloudtrail-logs-<アカウントID>-<ランダム>が自動で入ります。そのままで構いません - ログファイルの SSE-KMS 暗号化: デフォルトで「有効」にチェックが入っています。本手順ではチェックを外します
- その他の項目はデフォルトのままにします
- 「次へ」をクリックします
コンソールから作成する証跡は必ずマルチリージョンの証跡になります。作成したリージョンに関係なく全リージョンのイベントが記録されます。


- 「ステップ 2: ログイベントの選択」で以下を確認します
- イベントタイプ: 「管理イベント」にチェックが入っていること
- API アクティビティ: 「読み取り」「書き込み」の両方にチェックが入っていること
- その他の項目はデフォルトのままにします
- 「次へ」をクリックし、「ステップ 3: 確認と作成」で「証跡の作成」をクリックします


証跡の確認
- 証跡一覧画面に戻り、作成した証跡が「ログ記録」が有効になっていることを確認します


ステップ2: AWS Configを有効化する
AWS Configを有効化して、リソースの構成変更の記録を開始します。
- 上部の検索バーに
Configと入力し、表示された「Config」を選択します
AWS Configの初回セットアップがまだの場合は、以下の手順で設定します。すでにAWS Configが有効になっている場合は「記録対象の確認」に進んでください。
AWS Configの初回セットアップ
- 「今すぐ始める」をクリックします
- 「記録するリソースタイプ」で「このリージョンでサポートされているすべてのリソースを記録」を選択します
- 「AWS Config ロール」で「AWS Config サービスにリンクされたロールを使用」を選択します
- 「配信チャネル」で設定スナップショットの送信先S3バケットを指定します(新規バケットを作成するか、既存のバケットを指定します)
- その他の項目はデフォルトのままにします
- 「確認」をクリックし、設定内容を確認して「確認」をクリックします
記録対象の確認
すでにAWS Configが有効な場合、リソースの記録が行われていることを確認します。
- AWS Configのコンソールで、左側ナビゲーションの「設定」を選択します
- 「レコーダー」セクションで「記録はオン」と表示されていることを確認します
- 「記録方法」の「記録戦略」で、どのリソースタイプを記録しているかを確認します


レコーダーの記録対象から除外されているリソースタイプは、後述のリソースインベントリやリソースタイムラインに現れません。IAMユーザーやIAMロールを追跡したい場合は、記録戦略でこれらのグローバルリソースタイプを記録対象に含める必要があります。
ステップ3: IAM認証情報レポートを生成・ダウンロードする
IAMの認証情報レポートを生成して、アカウント内のすべてのIAMユーザーの認証情報の状態を確認します。
- 上部の検索バーに
IAMと入力し、表示された「IAM」を選択します - 左側ナビゲーションの「アクセスレポート」→「認証情報レポート」を選択します
- 「認証情報レポートをダウンロード」をクリックします
画面には「過去 4 時間でレポートは作成されていません。新しいレポートが作成されます。」と表示され、クリックすると新しいレポートが生成されてCSVファイルとしてダウンロードされます。レポートは作成後 4 時間保存されます。


ステップ4: CloudTrailでAPI呼び出し履歴を確認する
CloudTrailのイベント履歴を使って、アカウント内で行われたAPI呼び出しを確認します。
- 上部の検索バーに
CloudTrailと入力し、表示された「CloudTrail」を選択します - 右上のリージョンを
us-east-1(バージニア北部)に切り替えます - 左側ナビゲーションの「イベント履歴」を選択します
IAMはグローバルサービスのため、IAMのAPI呼び出しは
us-east-1のイベント履歴に記録されます。東京リージョンのイベント履歴ではiam.amazonaws.comのイベントは見つかりません。
デフォルトでは過去90日間のイベントが表示されます。フィルターを使って特定のイベントを検索します。
IAM関連のAPI呼び出しを確認する
- 「ルックアップ属性」のドロップダウンで「イベントソース」を選択し、
iam.amazonaws.comと入力します
IAMに関するAPI呼び出しが一覧で表示されます。CreateUser、AttachUserPolicy、CreateAccessKey などのイベントが記録されていることを確認します。


イベントの詳細を確認する
- 任意のイベントをクリックして詳細を確認します(
CreateRoleやCreateUserのような書き込み系のイベントを選ぶと、リクエストの中身が確認できます)
イベントレコードには以下の情報が含まれています。
- userIdentity: 操作を実行したIAMプリンシパル
- eventTime: 操作が実行された日時(UTC)
- eventName: 呼び出されたAPI名
- sourceIPAddress: 操作元のIPアドレス
- requestParameters: リクエストに含まれたパラメータ
{
"eventVersion": "1.09",
"userIdentity": {
"type": "IAMUser",
"arn": "arn:aws:iam::123456789012:user/admin-user"
},
"eventTime": "2026-03-28T05:00:00Z",
"eventSource": "iam.amazonaws.com",
"eventName": "CreateUser",
"awsRegion": "us-east-1",
"sourceIPAddress": "203.0.113.10",
"requestParameters": {
"userName": "new-developer"
}
}このように、CloudTrailから「誰が・いつ・どこから・どのIAM操作を行ったか」を特定できます。


ステップ5: AWS Configでリソース設定変更のタイムラインを確認する
AWS Configを使って、リソースの構成変更履歴を確認します。ここではレコーダーが記録しているリソースタイプの中から AWS::KMS::Key を例に確認します(IAMユーザーを追跡したい場合は、ステップ2で触れたようにレコーダーの記録対象にIAMのリソースタイプを含めておく必要があります)。
- 上部の検索バーに
Configと入力し、表示された「Config」を選択します - 左側ナビゲーションの「リソース」を選択します
- 「リソースタイプ」のドロップダウンに
KMSと入力し、AWS KMS Keyを選択して「適用」をクリックします
記録されているKMSキーが一覧で表示されます。


リソースタイムラインの確認
- 任意のリソース識別子をクリックしてリソースの詳細画面を開きます
- 「リソースタイムライン」をクリックします
リソースタイムラインには、そのリソースに関する記録が時系列で表示されます。「設定変更」はAWS Configが記録した構成の変化、「CloudTrail イベント」はその時刻に発生したAPI呼び出しです。


- 「設定変更」をクリックすると、変更前後の構成をJSONの差分で比較できます


このように、AWS Configからリソースの「現在の構成」と「過去の変更履歴」を把握できます。CloudTrailのイベント履歴と照らし合わせることで、「何が変わったか」(Config)と「誰が変えたか」(CloudTrail)の両方を確認できます。
ステップ6: 認証情報レポートを分析する
ステップ3でダウンロードした認証情報レポート(CSVファイル)を分析し、セキュリティ上の問題がないかを確認します。スプレッドシートで開いてもよいですが、CloudShellから直接必要な列だけを表示することもできます。
- 上部の検索バーに
CloudShellと入力し、表示された「CloudShell」を選択します - 以下のコマンドを実行します
aws iam generate-credential-report > /dev/null
aws iam get-credential-report --query Content --output text \
| base64 -d \
| cut -d, -f1,4,6,8,9,11 \
| column -t -s,user、password_enabled、password_last_changed、mfa_active、access_key_1_active、access_key_1_last_used_date の6列が表形式で表示されます。


確認ポイント1: MFA未設定のIAMユーザー
mfa_active カラムを確認します。
| user | mfa_active | password_enabled |
|---|---|---|
| root_account | true | not_supported |
| admin-user | true | true |
| developer-a | false | true |
| ci-bot | false | false |
mfa_active が false で password_enabled が true のユーザー(上記の例では developer-a)は、コンソールログインが可能でありながらMFAが設定されていないため、セキュリティリスクが高い状態です。
確認ポイント2: 未使用のアクセスキー
access_key_1_active および access_key_1_last_used_date カラムを確認します。access_key_1_last_used_date が N/A の場合は、そのアクセスキーが一度も使われていないことを意味します。
| user | access_key_1_active | access_key_1_last_used_date |
|---|---|---|
| admin-user | true | 2026-03-27T10:00:00+00:00 |
| developer-a | true | 2025-06-15T08:00:00+00:00 |
| ci-bot | true | 2026-03-28T01:00:00+00:00 |
アクセスキーが有効(active が true)であるにもかかわらず、長期間使用されていないキー(上記の例では developer-a のアクセスキー1が約9か月間未使用)は、不正利用のリスクがあるため無効化またはローテーションを検討します。
確認ポイント3: パスワードの最終変更日
password_last_changed カラムを確認し、パスワードが長期間変更されていないユーザーを特定します。組織のパスワードポリシー(例: 90日ごとの変更)に準拠しているかを確認します。
3サービスを組み合わせた監査フロー
実際のセキュリティ監査では、3つのサービスを以下のように組み合わせて使用します。
- IAM認証情報レポートで認証情報の状態を把握: MFA未設定ユーザー、未使用アクセスキー、古いパスワードを特定する
- AWS Configでリソースの構成変更を追跡: IAMポリシーやセキュリティグループの設定が意図通りであるかを確認する
- CloudTrailでAPI呼び出しの履歴を調査: 問題のある変更が発見された場合、誰が・いつ・どこから操作したかを特定する
この組み合わせにより、「認証情報の状態」(認証情報レポート)、「リソースの構成」(Config)、「操作の履歴」(CloudTrail)の3つの観点から包括的なセキュリティ監査が実現できます。
まとめ
- AWS CloudTrail はAPI呼び出しを記録し、「誰が・いつ・どこから・何をしたか」を監査するサービスであり、すべてのAPI呼び出しとリソース変更の記録という要件を満たす
- AWS Config はリソースの構成状態を継続的に記録し、設定変更の履歴やインベントリを管理するサービスであり、アカウント内のリソース状況の把握という要件を満たす
- IAM認証情報レポート はすべてのIAMユーザーのパスワード・アクセスキー・MFAの状態をCSVで出力するレポートであり、認証情報とログインの監査という要件を満たす
- 3つのサービスを組み合わせることで、API操作・リソース構成・認証情報の3つの観点から包括的なセキュリティ監査を実現できる
- Amazon Inspector(脆弱性評価)、Amazon SNS(通知)、Systems Manager(運用管理)、CloudWatch(メトリクス監視)は、それぞれ別の目的のサービスであり、リソース構成の継続的な追跡やインベントリ管理の要件を満たさない
| 要件 | 対応サービス | 確認できる内容 |
|---|---|---|
| API呼び出しとリソース変更の記録 | AWS CloudTrail | 誰が・いつ・どのAPIを呼び出したか |
| アカウント内のリソース状況の把握 | AWS Config | リソースの構成状態、変更履歴、インベントリ |
| 認証情報とログインの監査 | IAM認証情報レポート | パスワード・アクセスキー・MFAの状態一覧 |
参照先
- AWS CloudTrail とは – AWS CloudTrail
- 証跡の作成 – AWS CloudTrail
- CloudTrail イベント履歴でのイベントの表示 – AWS CloudTrail
- AWS Config とは – AWS Config
- AWS Config のセットアップ – AWS Config
- リソースの表示 – AWS Config
- 認証情報レポートの取得 – AWS IAM
- IAM ユーザーの認証情報の監査 – AWS IAM












