CloudTrail とのLakeインテグレーションの作成、更新、管理 AWS CLI - AWS CloudTrail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudTrail とのLakeインテグレーションの作成、更新、管理 AWS CLI

を使用して CloudTrail Lake インテグレーションを作成、更新、管理できます。 AWS CLI を使用するときは AWS CLI、 AWS リージョン コマンドがプロファイルに設定されたで実行されることに注意してください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに --region パラメータを使用します。

CloudTrail Lake インテグレーションで使用できるコマンド

CloudTrail Lake でインテグレーションを作成、更新、管理するためのコマンドには以下が含まれます。

  • create-event-data-store外部のイベント用のイベントデータストアを作成するには。 AWS

  • delete-channelインテグレーションに使用したチャンネルを削除する。

  • delete-resource-policy CloudTrail Lake インテグレーションのチャンネルにアタッチされているリソースポリシーを削除します。

  • get-channel CloudTrail チャンネルに関する情報を返す。

  • get-resource-policyチャネルに添付されているリソースベースのポリシードキュメントの JSON テキストを取得します。 CloudTrail

  • list-channels現在のアカウントのチャンネルとそのソース名を一覧表示します。

  • put-audit-eventsアプリケーションイベントを CloudTrail Lake に取り込みます。必須パラメータはauditEvents、 CloudTrail 取り込みたいイベントの JSON レコード (ペイロードとも呼ばれる) を受け入れます。これらのイベントは、1 PutAuditEvents 回のリクエストあたり最大 100 個 (または 1 MB まで) 追加できます。

  • put-resource-policy CloudTrail 外部のイベントソースとの統合に使用されるチャネルに、リソースベースのアクセス権限ポリシーをアタッチすること。 AWSリソースベースのポリシーについて詳しくは、「リソースベースのポリシーの例」を参照してくださいAWS CloudTrail 。

  • update-channel必要なチャネル ARN または UUID で指定されたチャネルを更新します。

CloudTrail Lake イベントデータストアで使用できるコマンドのリストについては、を参照してください。イベントデータストアで使用できるコマンド

CloudTrail Lake クエリで使用できるコマンドのリストについては、を参照してください CloudTrail Lake クエリで使用できるコマンド

とのインテグレーションを作成して、 AWS 外部からのイベントをログに記録してください。 AWS CLI

では AWS CLI、外部からのイベントを 4 つのコマンド (条件を満たすイベントデータストアがすでにある場合は 3 つ) AWS で記録するインテグレーションを作成します。インテグレーションの宛先として使用するイベントデータストアは、1 つのリージョンと 1 つのアカウント用である必要があります。マルチリージョンにすることはできず、組織のイベントをログに記録することもできず AWS Organizations、アクティビティイベントのみを含めることができます。コンソール内のイベントタイプは、[Events from integrations] (統合からのイベント) にする必要があります。API 内での eventCategory 値は ActivityAuditLog にする必要があります。統合の詳細については、「の外部でイベントソースとの統合を作成する AWS」を参照してください。

  1. 統合に使用可能なイベントデータストアをまだ 1 つも作成していない場合は、create-event-data-store を実行してそれを作成します。

    AWS CLI 以下のコマンド例は、 AWS外部からのイベントを記録するイベントデータストアを作成します。アクティビティイベントの場合、eventCategory フィールドのセレクタ値は ActivityAuditLog です。このイベントデータストアでは、保持期間は 90 日に設定されています。デフォルトでは、イベントデータストアはすべてのリージョンからイベントを収集しますが、AWS 収集するのはイベントではないため、--no-multi-region-enabledオプションを追加して 1 つのリージョンに設定します。終了保護はデフォルトで有効化されます。また、このイベントデータストアでは、組織内のアカウントのためのイベント収集は行いません。

    aws cloudtrail create-event-data-store \ --name my-event-data-store \ --no-multi-region-enabled \ --retention-period 90 \ --advanced-event-selectors '[ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["ActivityAuditLog"] } ] } ]'

    以下に、応答の例を示します。

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "AdvancedEventSelectors": [ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "ActivityAuditLog" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

    次のステップに進みチャネルの作成を行うには、イベントデータストアの ID (ARN のサフィックス、または前出の応答例にある EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE) が必要になります。

  2. create-channelコマンドを実行して、 CloudTrailパートナーまたはソースアプリケーションが内のイベントデータストアにイベントを送信できるようにするチャネルを作成します。

    チャネルは、以下のコンポーネントを含みます。

    ソース

    CloudTrail この情報を使用して、 CloudTrail お客様に代わってイベントデータを送信するパートナーを特定します。ソースは必須で、AWS 以外のすべての有効なイベント用に Custom とするか、パートナーイベントソースの名前を使用するか、どちらかを選びます。ソースごとに最大 1 つのチャネルが許可されます。

    利用可能なパートナーの Source 値については、「統合パートナーに関する追加情報」を参照してください。

    取り込みステータス

    チャネルステータスでは、チャネルソースからの最後のイベントが、いつ受信されたかを知ることができます。

    送信先

    送信先は、チャネルからイベントを受信している CloudTrail Lake イベントデータストアです。チャネルのための送信先イベントデータストアは、変更することが可能です。

    ソースからのイベントの受信を停止するには、対象のチャネルを削除します。

    このコマンドを実行するには、送信先イベントデータストアの ID が少なくとも 1 つ必要です。送信先として有効な型は EVENT_DATA_STORE です。取り込んだイベントは、複数のイベントデータストアに送信することができます。次のコマンドの例では、--destinations パラメーターの Location 属性内にある ID で表される、2 つのイベントデータストアに対しイベントを送信するチャネルを作成します。--destinations--name、および --source パラメータが必要です。パートナーからイベントを取り込むには、 CloudTrail パートナーの名前をの値として指定します。--source外部にある独自のアプリケーションからイベントを取り込むには AWS、Customの値としてを指定します。--source

    aws cloudtrail create-channel \ --region us-east-1 \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]' --name my-partner-channel \ --source $partnerSourceName \

    create-channel コマンドに対する応答の中から、新しいチャネルの ARN をコピーします。以降の手順で put-resource-policy および put-audit-events コマンドを実行する際には、この ARN が必要になります。

  3. put-resource-policyコマンドを実行してリソースポリシーをチャネルにアタッチします。リソースポリシーとは、JSON によるポリシードキュメントです。このドキュメントでは、指定したプリンシパルが対象のリソースにおいて実行できるアクションの種類と、その際の条件を指定します。チャネルのリソースポリシーでプリンシパルとして定義されているアカウントは、PutAuditEvents API を呼び出してイベントを配信することができます。

    注記

    チャネルのリソースポリシーを作成しない場合は、そのチャネルの所有者だけが、チャネル内で PutAuditEvents API を呼び出すことができます。

    ポリシーに必要な情報は、統合タイプによって決まります。

    • CloudTrail ディレクション統合では、 AWS ポリシーにパートナーのアカウント ID を含める必要があり、パートナーから提供された固有の外部 ID を入力する必要があります。 CloudTrail CloudTrail コンソールを使用してインテグレーションを作成すると、 AWS パートナーのアカウント ID がリソースポリシーに自動的に追加されます。AWS ポリシーに必要なアカウント番号の取得方法については、パートナーのドキュメントを参照してください

    • ソリューション統合では、プリンシパルとして少なくとも 1 AWS つのアカウント ID を指定する必要があります。また、代理人の混乱を防ぐために任意で外部 ID を入力することもできます。

    リソースポリシーには、以下の要件があります。

    • ポリシーで定義されているリソース ARN は、ポリシーがアタッチされているチャネル ARN と一致する必要があります。

    • このポリシーには、cloudtrail-data という 1 つのアクションしか含まれていません。PutAuditEvents

    • ポリシーには、少なくとも 1 つのステートメントを含めます。ポリシーには、最大 20 個のステートメントを記述できます。

    • 各ステートメントには、少なくとも 1 つのプリンシパルを含めます。1 つのステートメントには、最大 50 個のプリンシパルを記述できます。

    aws cloudtrail put-resource-policy \ --resource-arn "channelARN" \ --policy "{ "Version": "2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b", "Condition": { "StringEquals": { "cloudtrail:ExternalId": "UniqueExternalIDFromPartner" } } } ] }"

    リソースポリシーの詳細については、「AWS CloudTrail リソースベースのポリシーの例」を参照してください。

  4. PutAuditEventsAPI を実行してアクティビティイベントを取り込みます。 CloudTrail追加するイベントのペイロードが必要です。 CloudTrail イベントペイロードに取り込む前に、機密情報や個人を特定できる情報がイベントペイロードに含まれていないことを確認してください。 CloudTrailPutAuditEvents API では、cloudtrail エンドポイントではなく cloudtrail-data CLI エンドポイントが使用されることに注意してください。

    次に、put-audit-events CLI コマンドの使用例を示します。--audit-events および --channel-arn パラメータが必要です。--external-id パラメータは、リソースポリシーで外部 ID が定義されている場合に必要です。前述のステップで作成したチャネルの ARN が必要です。の値はイベントオブジェクトの --audit-events JSON 配列です。 --audit-eventsイベントの必須 ID、の値として必要なイベントのペイロードEventDataおよびへの取り込み後のイベントの整合性の検証に役立つオプションのチェックサムが含まれます。 CloudTrail

    aws cloudtrail-data put-audit-events \ --channel-arn $ChannelArn \ --external-id $UniqueExternalIDFromPartner \ --audit-events \ id="event_ID",eventData='"{event_payload}"' \ id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"

    次に、2 つのイベントを処理するコマンドの例を示します。

    aws cloudtrail-data put-audit-events \ --channel-arn arn:aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --external-id UniqueExternalIDFromPartner \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"

    次のコマンドの例では、イベントペイロードの JSON ファイル (custom-events.json) を指定するための --cli-input-json パラメーターを追加しています。

    aws cloudtrail-data put-audit-events --channel-arn $channelArn --external-id $UniqueExternalIDFromPartner --cli-input-json file://custom-events.json --region us-east-1

    次は、JSON ファイル (custom-events.json) の内容の例です。

    { "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"12.34.56.78\",\"recipientAccountId\":\"152089810396\"}", "id": "1" } ] }

コマンドを実行すると、統合が機能していて、 CloudTrail ソースからイベントが正しく取り込まれていることを確認できます。get-channelの出力には、get-channel CloudTrailイベントを受信した最新のタイムスタンプが表示されます。

aws cloudtrail get-channel --channel arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE

(オプション) チェックサム値を計算する

PutAuditEventsリクエストの値として指定するチェックサムは、 CloudTrail チェックサムと一致するイベントを受信したかどうかを確認するのに役立ち、イベントの整合性を検証するのにも役立ちます。EventDataChecksumチェックサム値は、次のコマンドを実行することで、Base64-SHA256 アルゴリズムによって計算されます。

printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\", \"recipientAccountId\":\"recipient_account_ID\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64

このコマンドは、 チェックサムを返します。次に例を示します。

EXAMPLEDHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

このチェックサム値が、PutAuditEvents リクエストの EventDataChecksum 値になります。チェックサムが提供されたイベントのチェックサムと一致しない場合、 CloudTrail エラーでそのイベントを拒否します。InvalidChecksum

チャンネルを以下のように更新します。 AWS CLI

チャネルの名前、または送信先のイベントデータストアを更新するには、update-channel コマンドを実行します。--channel パラメータが必須です。チャネルのソースを更新することはできません。次に例を示します。

aws cloudtrail update-channel \ --channel aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --name "new-channel-name" \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]'

チャンネルを削除すると、とのインテグレーションが削除されます。 AWS CLI

外部でのパートナーイベントやその他のアクティビティイベントの取り込みを停止するには AWS、コマンドを実行してチャンネルを削除します。delete-channel削除するチャネルの ARN、またはチャネル ID (ARN のサフィックス) が必要です。次に例を示します。

aws cloudtrail delete-channel \ --channel EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE