AWS 外のイベントソースとの統合を作成する - AWS CloudTrail

AWS 外のイベントソースとの統合を作成する

注記

統合は、現在 CloudTrail Lake がサポートしているすべての商用 AWS リージョン (me-central-1 は除く) で利用が可能です。CloudTrail Lake がサポートされているリージョンについては、「CloudTrail Lake でサポートされるリージョン」を参照してください。

CloudTrail を使用すると、オンプレミスやクラウドでホストされている社内アプリケーションや SaaS アプリケーション、仮想マシン、コンテナなど、ハイブリッド環境にある任意のソースから、ユーザーアクティビティデータのログを作成して保存できます。ログ集計やレポート用のツールを複数使用しなくても、このデータを保存、アクセス、分析、トラブルシューティングし、必要なアクションを実行できます。

AWS 以外のソースからのアクティビティイベントは、CloudTrail と連携する外部パートナー、または独自のソースからのイベントを、チャネルを使用して CloudTrail Lake に取り込むことで機能します。チャネルを作成するときは、チャネルソースから送信されるイベントを保存するイベントデータストアを 1 つまたは複数選択します。eventCategory="ActivityAuditLog" イベントをログ記録するように送信先イベントデータストアが設定されているのであれば、必要に応じて、チャネルの送信先をそれらのストアに変更することが可能です。外部パートナーからのイベント用のチャネルを作成するときは、パートナーまたはソースアプリケーションにチャネル ARN を提供します。チャネルにアタッチされたリソースポリシーにより、ソースはチャネルを介してイベントを送信できます。チャネルにリソースポリシーがない場合、チャネルの PutAuditEvents API を呼び出せるのは、そのチャネルの所有者のみです。

CloudTrail は、Okta や LaunchDarkly など、多くのイベントソースプロバイダーと提携しています。AWS 外のイベントソースとの統合を作成する場合は、これらのパートナーのいずれかをイベントソースとして選択するか、[My custom integration] (カスタム統合) を選択して、独自のソースからのイベントを CloudTrail に統合できます。ソースごとに最大 1 つのチャネルが許可されます。

統合のタイプには、直接とソリューションの 2 種類が存在します。直接統合では、パートナーが PutAuditEvents API を呼び出して、お客様の AWS アカウントにおけるイベントをイベントデータストアに配信します。ソリューション統合では、お客様の AWS アカウントで実行されるアプリケーションが PutAuditEvents API を呼び出すことで、イベントをお客様の AWS アカウント用のイベントデータストアに対し配信します。

[Integrations] (統合) ページで、[Available sources] (利用可能なソース) タブを開くと、パートナーの [Integration type] (統合タイプ) を表示できます。


            パートナーの統合タイプ

使用を開始するには、CloudTrail コンソールを使用して、パートナーや他のアプリケーションソースからのイベントをログに記録するための統合を作成します。

CloudTrail パートナーとの統合を作成する

注記

統合は、現在 CloudTrail Lake がサポートしているすべての商用 AWS リージョン (me-central-1 は除く) で利用が可能です。CloudTrail Lake がサポートされているリージョンについては、「CloudTrail Lake でサポートされるリージョン」を参照してください。

AWS 外にあるイベントソースとの統合を作成する場合、これらのパートナーのいずれかをイベントソースとして選択します。CloudTrail でパートナーアプリケーションとの統合を作成する場合、パートナーは CloudTrail にイベントを送信するために、このワークフローで作成したチャネルの Amazon リソースネーム (ARN) を必要とします。統合を作成した後は、パートナーからの指示に従い必要なチャネル ARN を提供することで、その統合の設定を完了します。統合のチャネルの PutAuditEvents をパートナーが呼び出すと、その統合は、パートナーイベントの CloudTrail に対する取り込みを開始します。

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

  2. ナビゲーションペインから [Lake] サブメニューを開き、[Integrations] (統合) を選択します。

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

  4. イベントの取得元である、パートナーアプリケーションソースを選択します。オンプレミスまたはクラウドでホストされている、独自のアプリケーションからのイベントと統合する場合は、[My custom integration] (カスタム統合) を選択します。

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

    イベントデータストアを新規で作成する場合には、そのデータストアの名前を入力すると同時に、保持期間を日単位で指定します。保持期間として有効な値は、整数で 7 日から 2557 日 (7 年) までです。イベントデータストアは指定された日数分、イベントデータを保存します。デフォルトでは、イベントデータストアは 2557 日間保持されます。

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

  6. [Resource policy] (リソースポリシー) では、統合のチャネル用にリソースポリシーを設定します。リソースポリシーとは、JSON によるポリシードキュメントです。このドキュメントでは、指定したプリンシパルが対象のリソースにおいて実行できるアクションの種類と、その際の条件を指定します。リソースポリシーでプリンシパルとして定義されているアカウントは、PutAuditEvents API を呼び出してイベントをチャネルに配信することができます。IAM ポリシーで cloudtrail-data:PutAuditEvents アクションが許可されている場合、リソース所有者はリソースに暗黙的にアクセスできます。

    ポリシーに必要な情報は、統合タイプによって決まります。直接統合の場合、パートナーの AWS アカウント ID が CloudTrail により自動的に追加されます。ユーザーは、このパートナーから提供された一意の外部 ID を入力する必要があります。ソリューション統合では、少なくとも 1 つの AWS アカウント ID をプリンシパルとして指定する必要があります。また、混乱した代理問題を防ぐために、オプションの外部 ID を入力することもできます。

    注記

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

    1. 直接統合の場合には、パートナーから提供された外部 ID を入力します。統合パートナーは、一意の外部 ID (アカウント ID やランダムに生成された文字列など) を統合のために提供し、混乱した代理問題を防ぎます。パートナーが一意の外部 ID の作成と提供を責任もって行います。

      [How to find this?] (これを見つけるには?) を選択すると、外部 ID を検索する方法が記載された、パートナー提供のドキュメントを表示できます。

      
                                    外部 ID に関するパートナードキュメント
      注記

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

    2. ソリューション統合では、[AWS アカウントの追加] を選択し、ポリシーのプリンシパルとして追加する AWS アカウントの ID を指定します。

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

  8. 新しい統合を作成する準備ができたら、[Add integration] (統合を追加) を選択します。確認のためのページは表示されません。統合は CloudTrail によって作成されますが、チャネルの Amazon リソースネーム (ARN) は、お客様がパートナーアプリケーションに対し指定する必要があります。チャネル ARN をパートナーアプリケーションに対し指定するための手順は、パートナードキュメントのウェブサイトで確認できます。詳細を参照するには、[Integrations] (統合) ページの [Available sources] (利用可能なソース) タブで、パートナーの [Learn more] (詳細はこちら) リンクを選択し AWS Marketplace 内のパートナーページを開きます。

統合のセットアップを完了するために、パートナーまたはソースアプリケーションに対し、チャネルの ARN を指定します。統合のタイプに応じて、お客様、パートナー、またはアプリケーションが PutAuditEvents API を実行し、お客様の AWS アカウントにあるイベントデータストアに対し、アクティビティイベントを配信します。アクティビティイベントが配信されたら、アプリケーションからログ記録されたデータを検索、クエリ、分析するために、CloudTrail Lake を使用できます。イベントデータには、CloudTrail イベントのペイロード (eventVersioneventSource、および userIdentity など) と一致するフィールドが含まれます。

カスタム統合を作成する

注記

統合は、現在 CloudTrail Lake がサポートしているすべての商用 AWS リージョン (me-central-1 は除く) で利用が可能です。CloudTrail Lake がサポートされているリージョンについては、「CloudTrail Lake でサポートされるリージョン」を参照してください。

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

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

  2. ナビゲーションペインから [Lake] サブメニューを開き、[Integrations] (統合) を選択します。

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

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

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

    イベントデータストアを新規で作成する場合には、そのデータストアの名前を入力すると同時に、保持期間を日単位で指定します。保持期間として有効な値は、整数で 7 日から 2557 日 (7 年) までです。イベントデータストアは指定された日数分、イベントデータを保存します。デフォルトでは、イベントデータストアは 2557 日間保持されます。

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

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

    注記

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

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

      注記

      リソースポリシーに外部 ID が含まれているのであれば、PutAuditEvents API に対するすべての呼び出しに、この外部 ID を含める必要があります。ただし、ポリシーで外部 ID が定義されていない場合でも、PutAuditEvents API を呼び出して externalId パラメータを指定することが可能です。

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

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

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

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

    ヒント

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

    次に、put-audit-events CLI コマンドの使用例を示します。--audit-events および --channel-arn パラメータが必要です。前述の手順で作成したチャネルの ARN が必要です。これは、統合の詳細ページからコピーできます。--audit-events の値は、イベントオブジェクトで構成された JSON 形式の配列です。--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"

    次のコマンドの例では、イベントペイロードの 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" } ] }

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

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 エラーによりそのイベントを拒否します。

統合パートナーに関する追加情報

このセクションの表は、各統合パートナーのソース名と、それぞれの統合タイプ (直接またはソリューション) を示しています。

[Source name] (ソース名) 列の情報は、CreateChannel API を呼び出す際に必要となります。ソース名は、Source パラメータの値として指定します。

パートナー名 (コンソール) ソース名 (API) 統合タイプ
My custom integration Custom solution
Cloud Storage Security CloudStorageSecurityConsole solution
Clumio Clumio direct
CrowdStrike CrowdStrike solution
CyberArk CyberArk solution
GitHub GitHub solution
Kong Inc KongGatewayEnterprise solution
LaunchDarkly LaunchDarkly direct
Netskope NetskopeCloudExchange solution
Nordcloud (IBM 傘下) IBMMulticloud direct
MontyCloud MontyCloud direct
Okta OktaSystemLogEvents solution
One Identity OneLogin solution
Shoreline.io Shoreline solution
Snyk.io Snyk direct
Wiz WizAuditLogs solution

パートナードキュメントの表示

パートナーと CloudTrail Lake の統合の詳細については、パートナーのドキュメントで確認できます。

パートナードキュメントを表示するには

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

  2. ナビゲーションペインから [Lake] サブメニューを開き、[Integrations] (統合) を選択します。

  3. [Integrations] (統合) ページで [Available sources] (利用可能なソース) を選択した後で、ドキュメントを表示したいパートナーの [Learn more] (詳細はこちら) を選択します。