AWS Config + CloudTrail + IAM認証情報レポートによるセキュリティ監査 ── 包括的なリソース管理と認証情報の監視

目次

概要

AWSアカウントのセキュリティ監査とコンプライアンスを確保するには、単一のサービスだけでは不十分です。「すべてのAPI呼び出しとリソース変更が記録されているか」「アカウント内のリソースの状況を把握できるか」「認証情報やログインの状態を監査できるか」という3つの要件を同時に満たす必要があります。

AWSでは、この3つの要件にそれぞれ AWS CloudTrail、AWS Config、IAM認証情報レポート が対応します。CloudTrailはAPI呼び出しの記録、AWS Configはリソースの構成状態の追跡、IAM認証情報レポートはパスワード・アクセスキー・MFAの状態の監査を担います。本記事では、これら3つのサービスを組み合わせた包括的なセキュリティ監査を実践します。

個別サービスの詳細については、AWS Configによるリソース設定の監視、IAM Credential Reportsによる認証情報の監査、CloudTrailによるIAMアクセス権限変更の追跡をそれぞれ参照してください。

AWS CloudTrail(API呼び出し記録)、AWS Config(リソース構成管理)、IAM認証情報レポート(認証情報監査)の3サービスが連携してセキュリティ監査を実現する全体構成図
AWS CloudTrail(API呼び出し記録)、AWS Config(リソース構成管理)、IAM認証情報レポート(認証情報監査)の3サービスが連携してセキュリティ監査を実現する全体構成図

この記事のメリット

  • セキュリティ監査に必要な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つの要件に対して、各サービスがどのように対応するかを整理します。

要件CloudTrailConfigIAM認証情報レポート
API呼び出しの記録API呼び出しをイベントとして記録––
リソース変更の追跡API操作の履歴から変更を把握リソースの構成変更をタイムラインで追跡–
リソースのインベントリ管理–リソースの一覧と構成状態を把握–
認証情報の状態把握––パスワード・アクセスキー・MFAの状態を一覧化
ログイン活動の監査コンソールサインインイベントを記録–パスワードの最終使用日を確認
3サービスの役割分担を示す図(CloudTrail: API呼び出しの記録、Config: リソース構成の追跡、IAM認証情報レポート: 認証情報の状態監査)
3サービスの役割分担を示す図(CloudTrail: API呼び出しの記録、Config: リソース構成の追跡、IAM認証情報レポート: 認証情報の状態監査)

選択肢の比較

試験では、類似のサービスの組み合わせが選択肢として出題されます。各組み合わせの特徴を比較します。

組み合わせAPI呼び出しの記録リソース状況の把握認証情報の監査評価
Config + CloudTrail + IAM認証情報レポートCloudTrailで記録Configで把握認証情報レポートで監査3要件すべてを満たす
SNS + IAM認証情報レポート + CloudWatch記録できないメトリクス監視のみ認証情報レポートで監査API記録とリソース構成管理が欠落
CloudTrail + IAM認証情報レポート + InspectorCloudTrailで記録脆弱性評価のみ認証情報レポートで監査リソース構成の継続的な追跡が欠落
CloudTrail + IAM認証情報レポート + Systems ManagerCloudTrailで記録運用管理が主目的認証情報レポートで監査リソース構成の継続的な追跡が欠落

3つの要件をすべて満たすのは Config + CloudTrail + IAM認証情報レポート の組み合わせのみです。

混同しやすいサービスの整理

選択肢に含まれる他のサービスが、なぜ要件を満たさないかを整理します。

サービス主な役割セキュリティ監査での位置づけ
Amazon InspectorEC2インスタンスやコンテナイメージの脆弱性評価ソフトウェアの脆弱性を検出するサービスであり、リソース構成の継続的な追跡は行わない
Amazon SNSメッセージの配信(通知サービス)他のサービスからの通知を配信する仕組みであり、記録・監視機能は持たない
AWS Systems ManagerEC2インスタンスやオンプレミスサーバーの運用管理パッチ管理やパラメータストアなどの運用管理が主目的であり、リソース構成の変更追跡は行わない
Amazon CloudWatchメトリクスの収集・監視、ログの集約パフォーマンスメトリクスやアラームによる監視が主目的であり、リソース構成の履歴管理やインベントリ管理は行わない
フリーランス案件
クラウドおさる
クラウドキャリアフリーランス

AWS の実務経験があるなら、単価を上げにいく

AWS に特化したフリーランスエージェントです。以下は取り扱い案件の一例です。設計・SRE・セキュリティ・生成 AI の領域で、専門を掛け合わせるほど単価が上がります。

横にスクロールできます。掲載時点の情報のため、募集が終了している場合があります。条件の近い案件をご紹介しますので、お気軽にご相談ください。

実践

前提条件

  • 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 暗号化: デフォルトで「有効」にチェックが入っています。本手順ではチェックを外します
  • その他の項目はデフォルトのままにします
  • 「次へ」をクリックします

コンソールから作成する証跡は必ずマルチリージョンの証跡になります。作成したリージョンに関係なく全リージョンのイベントが記録されます。

CloudTrail証跡の作成画面 ── 証跡名・S3バケット・SSE-KMS暗号化の設定
CloudTrail証跡の作成画面 ── 証跡名・S3バケット・SSE-KMS暗号化の設定
  • 「ステップ 2: ログイベントの選択」で以下を確認します
  • イベントタイプ: 「管理イベント」にチェックが入っていること
  • API アクティビティ: 「読み取り」「書き込み」の両方にチェックが入っていること
  • その他の項目はデフォルトのままにします
  • 「次へ」をクリックし、「ステップ 3: 確認と作成」で「証跡の作成」をクリックします
CloudTrail証跡のログイベント選択画面 ── 管理イベントの読み取り・書き込みが有効な状態
CloudTrail証跡のログイベント選択画面 ── 管理イベントの読み取り・書き込みが有効な状態

証跡の確認

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

ステップ2: AWS Configを有効化する

AWS Configを有効化して、リソースの構成変更の記録を開始します。

  • 上部の検索バーに Config と入力し、表示された「Config」を選択します

AWS Configの初回セットアップがまだの場合は、以下の手順で設定します。すでにAWS Configが有効になっている場合は「記録対象の確認」に進んでください。

AWS Configの初回セットアップ

  • 「今すぐ始める」をクリックします
  • 「記録するリソースタイプ」で「このリージョンでサポートされているすべてのリソースを記録」を選択します
  • 「AWS Config ロール」で「AWS Config サービスにリンクされたロールを使用」を選択します
  • 「配信チャネル」で設定スナップショットの送信先S3バケットを指定します(新規バケットを作成するか、既存のバケットを指定します)
  • その他の項目はデフォルトのままにします
  • 「確認」をクリックし、設定内容を確認して「確認」をクリックします

記録対象の確認

すでにAWS Configが有効な場合、リソースの記録が行われていることを確認します。

  • AWS Configのコンソールで、左側ナビゲーションの「設定」を選択します
  • 「レコーダー」セクションで「記録はオン」と表示されていることを確認します
  • 「記録方法」の「記録戦略」で、どのリソースタイプを記録しているかを確認します
AWS Config の設定画面 ── レコーダーが「記録はオン」で、記録戦略が表示されている状態
AWS Config の設定画面 ── レコーダーが「記録はオン」で、記録戦略が表示されている状態

レコーダーの記録対象から除外されているリソースタイプは、後述のリソースインベントリやリソースタイムラインに現れません。IAMユーザーやIAMロールを追跡したい場合は、記録戦略でこれらのグローバルリソースタイプを記録対象に含める必要があります。

ステップ3: IAM認証情報レポートを生成・ダウンロードする

IAMの認証情報レポートを生成して、アカウント内のすべてのIAMユーザーの認証情報の状態を確認します。

  • 上部の検索バーに IAM と入力し、表示された「IAM」を選択します
  • 左側ナビゲーションの「アクセスレポート」→「認証情報レポート」を選択します
  • 「認証情報レポートをダウンロード」をクリックします

画面には「過去 4 時間でレポートは作成されていません。新しいレポートが作成されます。」と表示され、クリックすると新しいレポートが生成されてCSVファイルとしてダウンロードされます。レポートは作成後 4 時間保存されます。

IAM認証情報レポート画面 ── レポートのダウンロードボタンが表示されている状態
IAM認証情報レポート画面 ── レポートのダウンロードボタンが表示されている状態

ステップ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 などのイベントが記録されていることを確認します。

CloudTrailイベント履歴画面 ── イベントソースで iam.amazonaws.com をフィルターした結果
CloudTrailイベント履歴画面 ── イベントソースで iam.amazonaws.com をフィルターした結果

イベントの詳細を確認する

  • 任意のイベントをクリックして詳細を確認します(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操作を行ったか」を特定できます。

CloudTrailイベント詳細画面 ── イベントレコードのJSON(userIdentity、eventTime、requestParameters が確認できる状態)
CloudTrailイベント詳細画面 ── イベントレコードのJSON(userIdentity、eventTime、requestParameters が確認できる状態)

ステップ5: AWS Configでリソース設定変更のタイムラインを確認する

AWS Configを使って、リソースの構成変更履歴を確認します。ここではレコーダーが記録しているリソースタイプの中から AWS::KMS::Key を例に確認します(IAMユーザーを追跡したい場合は、ステップ2で触れたようにレコーダーの記録対象にIAMのリソースタイプを含めておく必要があります)。

  • 上部の検索バーに Config と入力し、表示された「Config」を選択します
  • 左側ナビゲーションの「リソース」を選択します
  • 「リソースタイプ」のドロップダウンに KMS と入力し、AWS KMS Key を選択して「適用」をクリックします

記録されているKMSキーが一覧で表示されます。

AWS Configリソース画面 ── リソースタイプで AWS KMS Key を選択し、キーの一覧が表示されている状態
AWS Configリソース画面 ── リソースタイプで AWS KMS Key を選択し、キーの一覧が表示されている状態

リソースタイムラインの確認

  • 任意のリソース識別子をクリックしてリソースの詳細画面を開きます
  • 「リソースタイムライン」をクリックします

リソースタイムラインには、そのリソースに関する記録が時系列で表示されます。「設定変更」はAWS Configが記録した構成の変化、「CloudTrail イベント」はその時刻に発生したAPI呼び出しです。

AWS Config リソースタイムライン画面 ── 構成変更とCloudTrailイベントが時系列で表示されている状態
AWS Config リソースタイムライン画面 ── 構成変更とCloudTrailイベントが時系列で表示されている状態
  • 「設定変更」をクリックすると、変更前後の構成をJSONの差分で比較できます
構成変更の詳細画面 ── 変更前後のJSON差分(追加された項目が緑色で表示されている状態)
構成変更の詳細画面 ── 変更前後の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列が表形式で表示されます。

CloudShellで認証情報レポートの主要な列を表示した画面
CloudShellで認証情報レポートの主要な列を表示した画面

確認ポイント1: MFA未設定のIAMユーザー

mfa_active カラムを確認します。

usermfa_activepassword_enabled
root_accounttruenot_supported
admin-usertruetrue
developer-afalsetrue
ci-botfalsefalse

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 の場合は、そのアクセスキーが一度も使われていないことを意味します。

useraccess_key_1_activeaccess_key_1_last_used_date
admin-usertrue2026-03-27T10:00:00+00:00
developer-atrue2025-06-15T08:00:00+00:00
ci-bottrue2026-03-28T01:00:00+00:00

アクセスキーが有効(active が true)であるにもかかわらず、長期間使用されていないキー(上記の例では developer-a のアクセスキー1が約9か月間未使用)は、不正利用のリスクがあるため無効化またはローテーションを検討します。

確認ポイント3: パスワードの最終変更日

password_last_changed カラムを確認し、パスワードが長期間変更されていないユーザーを特定します。組織のパスワードポリシー(例: 90日ごとの変更)に準拠しているかを確認します。

3サービスを組み合わせた監査フロー

実際のセキュリティ監査では、3つのサービスを以下のように組み合わせて使用します。

  1. IAM認証情報レポートで認証情報の状態を把握: MFA未設定ユーザー、未使用アクセスキー、古いパスワードを特定する
  2. AWS Configでリソースの構成変更を追跡: IAMポリシーやセキュリティグループの設定が意図通りであるかを確認する
  3. 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 の実務経験があるなら、単価を上げにいく

AWS に特化したフリーランスエージェントです。以下は取り扱い案件の一例です。設計・SRE・セキュリティ・生成 AI の領域で、専門を掛け合わせるほど単価が上がります。

横にスクロールできます。掲載時点の情報のため、募集が終了している場合があります。条件の近い案件をご紹介しますので、お気軽にご相談ください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次