AWS AppConfigを使用したAWS CloudTrailAPI コールのログ記録 - AWS AppConfig

AWS AppConfigを使用したAWS CloudTrailAPI コールのログ記録

AWS AppConfig は、ユーザー、ロール、または AWS のサービス によって実行されたアクションの記録を提供するサービスである AWS CloudTrail と統合されています。CloudTrail は、AWS AppConfig のすべての API コールをイベントとしてキャプチャします。キャプチャされたコールには、AWS AppConfig コンソールのコールと、AWS AppConfig API オペレーションへのコードのコールが含まれます。CloudTrail で収集された情報を使用して、AWS AppConfig に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。

  • ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか。

  • リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

  • リクエストが、別の AWS のサービス によって送信されたかどうか。

アカウントを作成すると、AWS アカウント で CloudTrail がアクティブになり、自動的に CloudTrail の[イベント履歴] にアクセスできるようになります。CloudTrail の [イベント履歴] では、AWS リージョン で過去 90 日間に記録された 管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。詳細については、「AWS CloudTrail ユーザーガイド」の「CloudTrail イベント履歴の使用」を参照してください。[イベント履歴] の閲覧には CloudTrail の料金はかかりません。

AWS アカウント で過去 90 日間のイベントを継続的に記録するには、証跡または CloudTrail Lake イベントデータストアを作成します。

CloudTrail 証跡

証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。AWS マネジメントコンソール を使用して作成した証跡はマルチリージョンです。AWS CLI を使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウント内のすべて AWS リージョン でアクティビティを把握するため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョン に記録されたイベントのみを表示できます。証跡の詳細については、「AWS CloudTrail ユーザーガイド」の「AWS アカウント の証跡の作成」および「組織の証跡の作成」を参照してください。

証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。Amazon S3 の料金に関する詳細については、「Amazon S3 の料金」を参照してください。

CloudTrail Lake イベントデータストア

[CloudTrail Lake] を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを Apache ORC 形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントは、イベントデータストアに集約されます。イベントデータストアは、高度なイベントセレクタを適用することによって選択する条件に基づいた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、「AWS CloudTrail ユーザーガイド」の「AWS CloudTrail Lake の使用」を参照してください。

CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する料金オプションを選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。

CloudTrail の AWS AppConfig データイベント

データイベントは、リソース上でまたはリソース内で実行されたリソースオペレーションに関する情報を提供します (例えば、GetLatestConfiguration を呼び出して最新のデプロイされた設定を取得するなど)。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail [イベント履歴] にはデータイベントは記録されません。

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。

CloudTrail コンソール、AWS CLI、または CloudTrail API オペレーションを使用して、AWS AppConfig リソースタイプのデータイベントをログ記録できます。このセクションのテーブルは、AWS AppConfig で使用できるリソースタイプを示しています。

  • CloudTrail コンソールを使用してデータイベントを記録するには、データイベントをログに記録する証跡またはイベントデータストアを作成するか、既存の証跡またはイベントデータストアを更新してデータイベントをログに記録します。

    1. データイベントをログに記録するには、[データイベント] を選択します。

    2. [データイベントタイプ] リストから、[AWS AppConfig] を選択します。

    3. 使用するログセレクタテンプレートを選択します。リソースタイプのすべてのデータイベントをログに記録したり、すべての readOnly イベントをログに記録したり、すべての writeOnly イベントをログに記録したり、カスタムログセレクタテンプレートを作成して readOnlyeventNameresources.ARN フィールドでフィルタリングしたりできます。

    4. [セレクタ名]AppConfigDataEvents と入力します。データイベント証跡で Amazon CloudWatch Logs を有効にする方法については、「AWS AppConfig データプレーン呼び出しのメトリクスのログ記録」を参照してください。

  • AWS CLI を使用してデータイベントをログ記録するには、--advanced-event-selectors パラメータを設定して、eventCategory フィールドを Data に等しく、resources.type フィールドをリソースタイプ値に等しくします (テーブルを参照)。条件を追加して、readOnlyeventName および resources.ARN フィールドの値でフィルタリングできます。

以下の表に示しているのは、AWS AppConfig リソースタイプです。データイベントタイプ (コンソール) 列には、CloudTrail コンソールの [データイベントタイプ] リストから選択する値が表示されます。resources.type 値列には、AWS CLI または CloudTrail API を使用して高度なイベントセレクタを設定するときに指定する resources.type 値が表示されます。CloudTrail に記録されたデータ API 列には、リソース タイプの CloudTrail にログ記録された API コールが表示されます。

データイベントタイプ (コンソール) resources.type 値 CloudTrail* にログ記録されたデータ API
AWS AppConfig AWS::AppConfig::Configuration

*eventNamereadOnly、および resources.ARN フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。フィールドの詳細については、「AdvancedFieldSelector」を参照してください。

CloudTrail の AWS AppConfig 管理イベント

AWS AppConfig は、すべての AWS AppConfig コントロールプレーンオペレーションを管理イベントとして記録します。AWS AppConfig が CloudTrail にログ記録する AWS AppConfig コントロールプレーンオペレーションのリストについては、「AWS AppConfig API リファレンス」を参照してください。

AWS AppConfig イベントの例

各イベントは任意の送信元からの単一のリクエストを表し、リクエストされた API オペレーション、オペレーションの日時、リクエストパラメータなどに関する情報を含みます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、イベントは特定の順序で表示されません。

次の例は、StartConfigurationSession オペレーションを示す CloudTrail イベントを示しています。

{ "eventVersion": "1.09", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Administrator", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": {}, "attributes": { "creationDate": "2024-01-11T14:37:02Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-01-11T14:45:15Z", "eventSource": "appconfig.amazonaws.com", "eventName": "StartConfigurationSession", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.0", "userAgent": "Boto3/1.34.11 md/Botocore#1.34.11 ua/2.0 os/macos#22.6.0 md/arch#x86_64 lang/python#3.11.4 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.11", "requestParameters": { "applicationIdentifier": "rrfexample", "environmentIdentifier": "mexampleqe0", "configurationProfileIdentifier": "3eexampleu1" }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", "eventID": "a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE", "readOnly": false, "resources": [ { "accountId": "123456789012", "type": "AWS::AppConfig::Configuration", "ARN": "arn:aws:appconfig:us-east-1:123456789012:application/rrfexample/environment/mexampleqe0/configuration/3eexampleu1" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "appconfigdata.us-east-1.amazonaws.com" } }

CloudTrail レコードの内容については、「AWS CloudTrail ユーザーガイド」の「CloudTrail record contents」を参照してください。