

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

# コンソールを使用してカスタム統合を作成する
<a name="query-event-data-store-integration-custom"></a>

CloudTrail を使用すると、オンプレミスやクラウドでホストされている社内アプリケーションや SaaS アプリケーション、仮想マシン、コンテナなど、ハイブリッド環境にある任意のソースから、ユーザーアクティビティデータのログを作成して保存できます。CloudTrail Lake コンソールでこの手順の前半を実行してから、[https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html) API を呼び出してイベントを取り込み、チャネル ARN とイベントペイロードを提供します。`PutAuditEvents` API を使用してアプリケーションアクティビティを CloudTrail に取り込んだ後は、CloudTrail Lake を使用してアプリケーションがログ記録したデータを検索、クエリ、分析できます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) で CloudTrail コンソールを開きます。

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

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

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

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

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

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

1. **[Resource policy]** (リソースポリシー) では、統合のチャネル用にリソースポリシーを設定します。リソースポリシーとは、JSON によるポリシードキュメントです。このドキュメントでは、指定したプリンシパルが対象のリソースにおいて実行できるアクションの種類と、その際の条件を指定します。リソースポリシーでプリンシパルとして定義されているアカウントは、`PutAuditEvents` API を呼び出してイベントをチャネルに配信することができます。
**注記**  
チャネルのリソースポリシーを作成しない場合は、そのチャネルの所有者だけが、チャネル内で `PutAuditEvents` API を呼び出すことができます。

   1. (オプション) さらに保護を強化するために、一意の外部 ID を入力します。混乱した代理問題を避けるため、外部 ID には、アカウント ID またはランダムに生成された値などによる、固有の文字列を使用します。
**注記**  
リソースポリシーに外部 ID が含まれているのであれば、`PutAuditEvents` API に対するすべての呼び出しに、この外部 ID を含める必要があります。ただし、ポリシーで外部 ID が定義されていない場合でも、`PutAuditEvents` API を呼び出して `externalId` パラメータを指定することが可能です。

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

1. (オプション) **[Tag]** (タグ) エリアでは、イベントデータストアおよびチャネルへのアクセスを特定、ソート、および制御できるようにするタグのキーと値のペアを最大 50 個追加することができます。タグに基づいてイベントデータストアへのアクセスを認可するために IAM ポリシーを使用する方法の詳細については、「[例: タグに基づいたイベントデータストアを作成または削除するためのアクセスの拒否](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-eds-tags)」を参照してください。でタグを使用する方法の詳細については AWS、の「 [AWS リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)」を参照してください*AWS 全般のリファレンス*。

1. 新しい統合を作成する準備ができたら、**[Add integration]** (統合を追加) を選択します。確認のためのページは表示されません。統合は CloudTrail によって作成されます。ただし、カスタムイベントを統合するには、[https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html) リクエストでチャネル ARN を指定する必要があります。

1. `PutAuditEvents` API を呼び出して、アクティビティイベントを CloudTrail に取り込みます。`PutAuditEvents` リクエストごとに最大 100 のアクティビティイベント (または最大 1 MB) を追加することが可能です。前述の手順で作成したチャネル ARN、CloudTrail に追加させるイベントのペイロード、および外部 ID (リソースポリシーで指定されている場合) が必要となります。CloudTrail に取り込む前の段階では、イベントペイロードに機密情報や個人を特定できる情報が含まれることはない点に注意してください。CloudTrail に取り込むイベントは、[CloudTrail Lake 統合のイベントスキーマ](query-integration-event-schema.md) に従う必要があります。
**ヒント**  
を使用して[AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)、最新の AWS APIsが実行されていることを確認します。

   次に、**put-audit-events** CLI コマンドの使用例を示します。**--audit-events** および **--channel-arn** パラメータが必要です。前述の手順で作成したチャネルの ARN が必要です。これは、統合の詳細ページからコピーできます。**--audit-events** の値は、イベントオブジェクトで構成された JSON 形式の配列です。`--audit-events` には、イベントからの必須 ID、`EventData` の値として必要なイベントのペイロード、CloudTrail に取り込んだ後のイベントの整合性を検証するのに役立つ[オプションのチェックサム](#event-data-store-integration-custom-checksum)が含まれます。

   ```
   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"
   ```

   次のコマンドの例では、イベントペイロードの JSON ファイル (`custom-events.json`) を指定するための `--cli-input-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"
         }
      ]
   }
   ```

## (オプション) チェックサム値を計算する
<a name="event-data-store-integration-custom-checksum"></a>

`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` 値になります。このチェックサムと受け取ったイベントのチェックサム値とが一致しない場合、CloudTrail は `InvalidChecksum` エラーによりそのイベントを拒否します。