コンソールとのカスタム統合を作成する - AWS CloudTrail

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

コンソールとのカスタム統合を作成する

を使用して CloudTrail 、オンプレミスまたはクラウドでホストされている社内アプリケーションや SaaS アプリケーション、仮想マシン、コンテナなど、ハイブリッド環境の任意のソースからのユーザーアクティビティデータをログに記録して保存できます。 CloudTrail Lake コンソールでこの手順の前半を実行し、 PutAuditEventsAPIを呼び出してイベントを取り込んで、チャネルARNとイベントペイロードを指定します。を使用してアプリケーションアクティビティPutAuditEventsAPIを に取り込んだ後 CloudTrail、 CloudTrail Lake を使用してアプリケーションからログに記録されたデータを検索、クエリ、分析できます。

  1. にサインイン AWS Management Console し、 で CloudTrail コンソールを開きますhttps://console.aws.amazon.com/cloudtrail/

  2. ナビゲーションペインの [Lake] で、[統合] を選択します。

  3. [Add integration] (統合を追加) ページで、チャネルの名前を入力します。名前には 3~128 の文字数が使用できます。使用できるのは文字、数字、ピリオド、アンダースコア、ダッシュのみです。

  4. [My custom integration] (カスタム統合) を選択します。

  5. [Event delivery location] (イベントの配信場所) で、既存のイベントデータストアで以前と同じアクティビティイベントのログ記録を行うか、新しいイベントデータストアを作成するかを選択します。

    イベントデータストアを新規で作成する場合には、そのデータストアの名前を入力すると同時に、保持期間を日単位で指定します。イベントデータをイベントデータストアに保存できる期間は、[1 年間の延長可能な保存料金] オプションを選択した場合は最大 3,653 日 (約 10 年)、[7 年間の保存料金] オプションを選択した場合は最大 2,557 日 (約 7 年間) です。

    アクティビティイベントを、既存の (1 つ以上の) イベントデータストアにログ記録する場合は、対象となるイベントデータストアをリストから選択します。イベントデータストアに保存できるのは、アクティビティイベントのみです。コンソール内のイベントタイプは、[Events from integrations] (統合からのイベント) にする必要があります。ではAPI、eventCategory値は である必要がありますActivityAuditLog

  6. [Resource policy] (リソースポリシー) では、統合のチャネル用にリソースポリシーを設定します。リソースポリシーは、指定されたプリンシパルがリソースに対して実行できるアクションと条件を指定するJSONポリシードキュメントです。リソースポリシーでプリンシパルとして定義されたアカウントは、 を呼び出しPutAuditEventsAPIて、 チャネルにイベントを配信できます。

    注記

    チャンネルのリソースポリシーを作成しない場合、チャンネル所有者のみがチャンネルPutAuditEventsAPIの を呼び出すことができます。

    1. (オプション) さらに保護を強化するために、一意の外部 ID を入力します。混乱した代理問題を避けるため、外部 ID には、アカウント ID またはランダムに生成された値などによる、固有の文字列を使用します。

      注記

      リソースポリシーに外部 ID が含まれている場合、 へのすべての呼び出しに外部 ID が含まれているPutAuditEventsAPI必要があります。ただし、ポリシーで外部 ID が定義されていない場合でも、 を呼び出しPutAuditEventsAPIて externalIdパラメータを指定できます。

    2. アカウントの追加 AWS を選択して、チャネルのリソースポリシーでプリンシパルとして追加する各 AWS アカウント ID を指定します。

  7. (オプション) [Tag] (タグ) エリアでは、イベントデータストアおよびチャネルへのアクセスを特定、ソート、および制御できるようにするタグのキーと値のペアを最大 50 個追加することができます。IAM ポリシーを使用してタグに基づいてイベントデータストアへのアクセスを許可する方法の詳細については、「」を参照してください例: タグに基づいたイベントデータストアを作成または削除するためのアクセスの拒否。でタグを使用する方法の詳細については AWS、「」の「 AWS リソースのタグ付け」を参照してくださいAWS 全般のリファレンス

  8. 新しい統合を作成する準備ができたら、[Add integration] (統合を追加) を選択します。レビューページはありません。 は統合 CloudTrail を作成しますが、カスタムイベントを統合するには、PutAuditEventsリクエストARNでチャネルを指定する必要があります。

  9. を呼び出しPutAuditEventsAPIて、アクティビティイベントを に取り込みます CloudTrail。PutAuditEvents リクエストごとに最大 100 のアクティビティイベント (または最大 1 MB) を追加することが可能です。前のステップでARN作成したチャンネル、追加するイベントのペイロード、および外部 ID (リソースポリシー CloudTrail に指定されている場合) が必要です。に取り込む前に、イベントペイロードに機密情報や個人を特定できる情報がないことを確認してください CloudTrail。取り込むイベント CloudTrail は、 に従う必要がありますCloudTrail Lake 統合イベントスキーマ

    ヒント

    AWS CloudShell を使用して、最新の が実行されていることを確認します AWS APIs。

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

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

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

    aws cloudtrail-data put-audit-events \ --region us-east-1 \ --channel-arn arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --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"

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

    aws cloudtrail-data put-audit-events \ --channel-arn $channelArn \ --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\":\"source_IP_address\",\"recipientAccountId\":\"recipient_account_ID\"}", "id": "1" } ] }

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

PutAuditEvents リクエストEventDataChecksumで の値として指定するチェックサムは、 がチェックサムに一致するイベント CloudTrail を受信することを確認するのに役立ちます。また、イベントの整合性を検証するのに役立ちます。チェックサム値は、次のコマンドを実行して計算する 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

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

EXAMPLEHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

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