記録のデータイベントのロギング - AWS CloudTrail

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

記録のデータイベントのロギング

デフォルトでは、証跡はデータイベントを記録しません。追加の変更がイベントデータに適用されます。詳細については、「AWS CloudTrail料金表」を参照してください。

注記

証跡によって記録されるイベントは、Amazon CloudWatch Events で使用することができます。たとえば、S3 オブジェクトのデータイベントを記録し、管理イベントを記録しないように証跡を設定した場合、証跡は指定された S3 オブジェクトのデータイベントのみを処理して記録します。これらの S3 オブジェクトのデータイベントを Amazon CloudWatch Events で使用することができます。詳細については、「」を参照してください。AWSAPI 呼び出しイベント()Amazon CloudWatch Events ユーザーガイド

データイベント

データイベントでは、リソース上またはリソース内で実行されたリソースオペレーションについて知ることができます。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。

次のデータ型が記録されます。

  • Amazon S3 オブジェクトレベルの API アクティビティ (例:GetObject,DeleteObject, およびPutObjectAPI オペレーション)

  • AWS Lambda 関数の実行アクティビティ (Invoke API)

  • テーブルでの Amazon DynamoDB オブジェクトレベルの API アクティビティ (例:PutItem,DeleteItem, およびUpdateItemAPI オペレーション)。

  • の S3 オブジェクトレベルの API アクティビティAWS Outposts。このデータ型は、高度なイベントセレクタでのみ使用できます。

  • Amazon Managed Blockchain JSON-RPC 呼び出しは、eth_getBalanceまたはeth_getBlockByNumber。このデータ型は、高度なイベントセレクタでのみ使用できます。

  • S3 Object Lambda アクセスポイントでの API アクティビティ(CompleteMultipartUploadおよびGetObject。このデータ型は、高度なイベントセレクタでのみ使用できます。

  • Amazon Elastic Block Store (EBS)などのダイレクト APIPutSnapshotBlock,GetSnapshotBlock, およびListChangedBlocksを Amazon EBS スナップショットに保存します。このデータ型は、高度なイベントセレクタでのみ使用できます。

証跡の作成時、デフォルトでは、データイベントは記録されません。CloudTrail データイベントを記録するには、証跡にアクティビティを収集する、サポート対象のリソースまたはリソースタイプを明示的に追加する必要があります。詳細については、「証跡の作成」を参照してください。

単一リージョンの証跡では、そのリージョンでアクセスできるリソースのデータイベントのみを記録できます。S3 バケットはグローバルですが、AWS Lambda関数と DynamoDB テーブルは、地域別です。

データイベントのログ記録には追加料金が適用されます。CloudTrail の料金については、AWS CloudTrail料金

データイベントをログに記録する手順は、トレイルで高度なイベントセレクタが有効になっているかどうかによって異なります。このセクションの手順を使用して、トレイルで有効にしたイベントセレクタの種類と一致します。

  1. を開く証跡ページに移動し、証跡名を選択します。

    注記

    既存の証跡を編集してログ記録データイベントを追加することもできますが、ベストプラクティスとして、ログ記録データイベント専用に別の証跡を作成することを検討してください。

  2. を使用する場合データイベント] で、編集

  3. Amazon S3 バケットの場合:

    1. を使用する場合データイベントソース] で、S3

    2. あなたは、ログに選択することができます現在および将来のすべての S3 バケットまたは、バケットまたは関数を個々に指定できます。デフォルトでは、現在および将来のすべての S3 バケットのデータイベントが記録されます。

      注記

      デフォルトを維持する現在および将来のすべての S3 バケットオプションにより、現時点のすべてのバケットのデータイベントのログ記録が有効になります。AWSアカウントと、証跡の作成が完了した後に作成したバケットをすべて選択します。このアクティビティが、別の AWS アカウントに属するバケットで実行されている場合でも、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も行うことができます。

      1 つのリージョンの軌跡を作成する場合 (AWS CLI) を選択し、アカウントの S3 バケットをすべて選択します。オプションを使用すると、同じリージョン内のすべてのバケット、およびそのリージョンで後で作成するバケットに対して、データイベントのログ記録が有効になります。他のリージョンの Amazon S3 バケットのデータイベントは記録されません。AWSアカウント.

    3. デフォルトのままにすると、現在および将来のすべての S3 バケットで、ログを選択しますReadイベントと書き込みイベント、またはその両方です。

    4. 個々のバケットを選択するには、Readおよび書き込み] チェックボックスをオフにします。現在および将来のすべての S3 バケット。Eclipse個々のバケット選択で、データイベントをログに記録するバケットを参照します。特定のバケットを検索するには、目的のバケットのバケットプレフィックスを入力します。このウィンドウで複数のバケットを選択できます。選択バケットの追加より多くのバケットのデータイベントをログに記録します。ログ記録を選択します。ReadイベントなどGetObject,書き込みイベントなどPutObjectか、または両方となります。

      この設定は、個別のバケットに設定した個々の設定よりも優先されます。たとえば、すべての S3 バケットにログ記録 [読み取り] イベントを指定し、データイベントログ記録に特定のバケットの追加を選択した場合、追加したバケットには既に [読み取り] が設定されています。選択を解除することはできません。[書き込み] のオプションしか設定することができません。

      ログ記録からバケットを削除するには、X

  4. データイベントをログに記録する別のデータ型を追加するには、データイベントタイプの追加

  5. Lambda 関数の場合:

    1. を使用する場合データイベントソース] で、Lambda

    2. EclipseLambda 関数] で、すべてのリージョンを使用してすべての Lambda 関数をログに記録するか、ARN としての入力関数特定の関数のデータイベントをログに記録します。

      すべての Lambda 関数のデータイベントをログに記録するにはAWSアカウント] を選択します。現在および将来のすべての関数をログに記録する。この設定は、関数に個々に設定した各設定よりも優先されます。すべての関数が表示されていなくても、関数はすべてログ記録されます。

      注記

      すべてのリージョンで証跡を作成している場合は、この選択によって、現在のAWSアカウントや、証跡作成後に任意のリージョンに作成する可能性のある Lambda 関数が含まれます。1 つのリージョンの軌跡を作成する場合 (AWS CLI)、この選択により、現在そのリージョンにあるすべての関数のデータイベントログが有効になります。AWSアカウント、およびトレイルの作成完了後にそのリージョンに作成できる Lambda 関数が含まれます。他のリージョンで作成された Lambda 関数のデータイベントのログ記録は有効になりません。

      このアクティビティが、その他の AWS アカウントに属する関数で実行されている場合でも、すべての関数のデータイベントのログ記録を行うと、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も有効になります。

    3. 選択した場合ARN としての入力関数に、Lambda 関数の ARN を入力します。

      注記

      15,000 を超える Lambda 関数がアカウントに存在する場合は、証跡作成時に CloudTrail コンソールですべての関数を表示または選択することはできません。表示されていない場合でも、すべての関数をログ記録するオプションを選択することができます。特定の関数のデータイベントをログ記録する場合、ARN が分かれば、関数を手動で追加することができます。コンソールで証跡を作成したら、AWS CLIとput-event-selectorsコマンドを使用して、特定の Lambda 関数のデータイベントログを設定します。詳細については、「による軌跡の管理AWS CLI」を参照してください。

  6. データイベントをログに記録する別のデータ型を追加するには、データイベントタイプの追加

  7. DynamoDB テーブルの場合:

    1. を使用する場合データイベントソース] で、DynamoDB

    2. EclipseDynamoDB テーブルの選択] で、参照をクリックしてテーブルを選択するか、アクセス権を持つ DynamoDB テーブルの ARN に貼り付けます。DynamoDB テーブル ARN は、次のような形式になります。

      arn:partition:dynamodb:region:account_ID:table/table_name

      別のテーブルを追加するには、行を追加をクリックし、テーブルを参照するか、アクセス権のあるテーブルの ARN に貼り付けます。

  8. 選択証跡を更新

左AWS Management Consoleでは、高度なイベントセレクターが有効になっている場合は、選択したリソース(Amazon S3 バケット、Lambda 関数、AWS Outposts、マネージドブロックチェーンノード用のEthereum、またはS3オブジェクトLambda アクセスポイント)。ログセレクタテンプレートを選択したら、最も表示したいデータイベントのみを含めるようにテンプレートをカスタマイズできます。高度なイベントセレクターの使用方法の詳細とヒントについては、高度なイベントセレクタを使用してイベントをログに記録するこのトピックでは、と指定します。

  1. リポジトリの []ダッシュボードまたは証跡ページで CloudTrail 名を選択して開きます。

  2. トレイルの詳細ページのデータイベント] で、編集

  3. まだデータイベントのログを記録していない場合は、データイベント] チェックボックスをオンにします。

  4. を使用する場合データイベントタイプで、データイベントをログに記録するリソースのタイプを選択します。

  5. ログ選択テンプレートを選択します。CloudTrail には、リソースタイプのすべてのデータイベントをログに記録する定義済みのテンプレートが含まれています。カスタムログセレクターテンプレートを作成するには、Custom

    注記

    S3 バケットの事前定義済みテンプレートを選択すると、現在AWSアカウントと、証跡の作成が完了した後に作成したバケットをすべて選択します。このアクティビティが、別の AWS アカウントに属するバケットで実行されている場合でも、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も行うことができます。

    証跡が 1 つのリージョンのみに適用される場合、すべての S3 バケットを記録する定義済みのテンプレートを選択すると、同じリージョン内のすべてのバケット、およびそのリージョンで後で作成するバケットに対して、データイベントのログ記録が証跡として有効になります。他のリージョンの Amazon S3 バケットのデータイベントは記録されません。AWSアカウント.

    すべてのリージョンで証跡を作成している場合は、Lambda 関数の定義済みテンプレートを選択すると、現在AWSアカウントや、証跡作成後に任意のリージョンに作成する可能性のある Lambda 関数が含まれます。1 つのリージョンの軌跡を作成する場合 (AWS CLI)、この選択により、現在そのリージョンにあるすべての関数のデータイベントログが有効になります。AWSアカウント、およびトレイルの作成完了後にそのリージョンに作成できる Lambda 関数が含まれます。他のリージョンで作成された Lambda 関数のデータイベントのログ記録は有効になりません。

    このアクティビティが、その他の AWS アカウントに属する関数で実行されている場合でも、すべての関数のデータイベントのログ記録を行うと、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も有効になります。

  6. 定義済みのログセレクターテンプレートを適用し、別のデータイベントリソースタイプを追加しない場合は、変更の保存。この手順の残りは従う必要はありません。カスタムログセレクタテンプレートを適用するには、次のステップに進みます。

  7. カスタムログセレクタテンプレートを作成するには、ログセレクタテンプレートドロップダウンリストから [] を選択します。Custom

  8. (オプション) カスタムログセレクタテンプレートの名前を入力します。

  9. Eclipse高度なイベントセレクターで、特定の S3 バケット、DynamoDBTables、S3 オブジェクトの式をAWS Outposts、Lambda アクセスポイントの S3 オブジェクト、マネージドブロックチェーンノード、またはデータイベントを収集する Lambda 関数です。

    1. 次のフィールドから選択します。配列(複数の値)を受け入れるフィールドの場合、CloudTrail は値の間に OR を追加します。

      • readOnly-readOnlyに設定できます。等号値として個格納できますtrueまたはfalse。読み取り専用データイベントは、リソースの状態を変更しないイベントです。たとえば、Get*またはDescribe*イベント. Write イベントは、リソース、属性、またはアーティファクトを追加、変更、または削除します。Put*,Delete*, またはWrite*イベント. 両方をログ記録するにはreadおよびwriteイベントを追加しないでください。readOnlyセレクタ。

      • eventName-eventNameは任意の演算子を使用できます。これを使用して、CloudTrail に記録されるデータイベント (PutBucket,GetItem, またはGetSnapshotBlock。このフィールドには、コンマで区切って複数の値を設定できます。

      • resources.type-コンソールでは、このフィールドは発生しません。これは、[データイベントタイプ選択します。左AWS CLIおよび SDK、resources.typeを使用できるのは、等号演算子を使用しており、値は次のいずれかを指定できます。AWS::S3::Object,AWS::S3Outposts::Object,AWS::Lambda::Function,AWS::DynamoDB::Table,AWS::ManagedBlockchain::Node,AWS::S3ObjectLambda::AccessPoint, またはAWS::EC2::Snapshot

      • resources.ARN-任意の演算子を使用することができますresources.ARNを使用する場合がありますが、等号または注目の場合、値は、テンプレートで指定したタイプの有効なリソースの ARN と正確に一致する必要があります。resources.type。たとえば、と指定します。resources.typeequalsAWS። S3። Objectでは、ARN は次の形式のいずれかである必要があります。特定の S3 バケットのすべてのオブジェクトのすべてのデータイベントをログ記録するには、StartsWith演算子を使用し、一致する値としてバケット ARN のみを含めます。

        末尾のスラッシュは意図的です。除外しないでください。

        arn:partition:s3:::bucket_name/ arn:partition:s3:::bucket_name/object_or_file_name/

        メトリックresources.typeequalsAWS። S3アウトポスト። オブジェクトに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:s3-outposts:region:account_ID:object_path

        メトリックresources.typeequalsAWS::Lambda::Functionに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:lambda:region:account_ID:function:function_name

        メトリックresources.typeequalsAWS::DynamoDB::Tableに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:dynamodb:region:account_ID:table/table_name

        メトリックresources.typeequalsAWS::ManagedBlockchain::Nodeに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:managedblockchain:region:account_ID:nodes/node_ID

        メトリックresources.typeequalsAWS። S3ObjectLambda። AccessPointに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name

        メトリックresources.typeequalsAWS::EC2::Snapshotに設定され、演算子は等号または注目では、ARN は次の形式になります。

        arn:partition:ec2:region::snapshot/snapshot_ID

      データイベントリソースの ARN 形式の詳細については、アクション、リソース、条件キー()AWS Identity and Access Managementユーザーガイド

    2. 各フィールドについて、+ 条件をクリックして、必要な数の条件を追加します。すべての条件に対して最大 500 個の指定値を指定できます。たとえば、証跡に記録されているデータイベントから 2 つの S3 バケットのデータイベントを除外するには、フィールドをリソース.arnの演算子を設定する場合は、注目を選択し、S3 バケット ARN に貼り付けるか、イベントをログに記録しない S3 バケットを参照します。

      2 番目の S3 バケットを追加するには、[+ 条件をクリックし、上記の手順を繰り返し、ARN に貼り付けたり、別のバケットをブラウズしたりします。

      注記

      証跡上のすべてのセレクタに対して、最大 500 個の値を設定できます。これには、セレクタの複数の値の配列が含まれます。eventName。すべてのセレクタに単一の値がある場合、セレクタに最大500個の条件を追加できます。

      15,000 を超える Lambda 関数がアカウントに存在する場合は、証跡作成時に CloudTrail コンソールですべての関数を表示または選択することはできません。表示されていない場合でも、定義済みのセレクタテンプレートを使用して、すべての関数をログ記録できます。特定の関数のデータイベントをログ記録する場合、ARN が分かれば、関数を手動で追加することができます。コンソールで証跡を作成したら、AWS CLIとput-event-selectorsコマンドを使用して、特定の Lambda 関数のデータイベントログを設定します。詳細については、「による軌跡の管理AWS CLI」を参照してください。

    3. 選択+ fields必要に応じてフィールドを追加します。エラーを回避するには、フィールドに競合する値や重複する値を設定しないでください。たとえば、あるセレクタで ARN を値に等しく指定しないでください。次に、ARN が別のセレクタで同じ値に等しくならないように指定します。

    4. カスタムセレクタテンプレートへの変更を保存するには、。別のログセレクタテンプレートを選択しないでください。また、このページを離れると、カスタムセレクタが失われます。

  10. データイベントをログに記録する別のデータ型を追加するには、データイベントタイプの追加。手順4からこの手順を繰り返して、データ・イベント・タイプの詳細イベント・セレクタを構成します。

  11. あなたが選択した後, でステップ 2: ログイベントを選択で、選択したログセレクターテンプレートのオプションを確認します。選択編集戻って変更するには、[] をクリックします。

  12. 選択内容を確認して確認したら、証跡を更新が既存の証跡の場合は証跡の作成新しい基準線を作成する場合。

例: Amazon S3 オブジェクトのデータイベントをログに記録する

S3 バケットのすべての S3 オブジェクトに対するデータイベントのログ記録

次の例では、bucket-1 という名前の S3 バケットにすべてのデータイベントのログ記録を設定する時の、ログ記録のしくみを示します。この例では、CloudTrail ユーザーが空のプレフィックスを指定し、さらにReadおよび書き込みデータイベント。

  1. ユーザーがオブジェクトを bucket-1 にアップロードします。

  2. PutObject API オペレーションは Amazon S3 オブジェクトレベルの API です。CloudTrail のデータイベントとして記録されます。CloudTrail ユーザーが空のプレフィックスとともに S3 バケットを指定したため、そのバケット内の任意のオブジェクトで発生したイベントがログに記録されます。証跡はイベントを処理してログに記録します。

  3. 別のユーザーがオブジェクトを bucket-2 にアップロードします。

  4. 証跡に指定されなかった S3 バケット内のオブジェクトで PutObject API オペレーションが発生しました。証跡はこのイベントをログに記録しません。

特定の S3 オブジェクトのデータイベントをログに記録する

次の例では、特定の S3 オブジェクトのイベントをログに記録するように証跡を設定するログ記録のしくみを示します。この例では、CloudTrail ユーザーは、という名前の S3 バケットを指定しましたバケット 3と指定します。プレフィックスとしてmy-ages、およびログのみを行うオプション書き込みデータイベント。

  1. ユーザーは、バケットの my-images プレフィックスで始まるオブジェクト (arn:aws:s3:::bucket-3/my-images/example.jpg など) を削除します。

  2. DeleteObject API オペレーションは Amazon S3 オブジェクトレベルの API です。それはとして記録されます書き込みCloudTrail のデータイベントを記録します。証跡で指定した S3 バケットとプレフィックスに一致するオブジェクトでイベントが発生しました。証跡はイベントを処理してログに記録します。

  3. 別のユーザーが S3 バケットで異なるプレフィックスのオブジェクト (arn:aws:s3:::bucket-3/my-videos/example.avi など) を削除します。

  4. 証跡で指定したプレフィックスに一致しないオブジェクトでイベントが発生しました。証跡はこのイベントをログに記録しません。

  5. ユーザーはオブジェクト arn:aws:s3:::bucket-3/my-images/example.jpg に対して GetObject API オペレーションを呼び出します。

  6. 証跡で指定したバケットとプレフィックスでイベントが発生しましたが、GetObject は読み取りタイプの Amazon S3 オブジェクトレベルの API です。それはとして記録されますReadCloudTrail のデータイベントが発生し、証跡はログ記録するようには設定されていませんReadイベント. 証跡はこのイベントをログに記録しません。

注記

特定の Amazon S3 バケットのデータイベントをログ記録する場合は、データイベントのセクションで指定したログファイルを受け取るために、データイベントをログ記録する Amazon S3 バケットを使用しないことをお勧めします。同じ Amazon S3 バケットを使用すると、証跡は、ログファイルが Amazon S3 バケットに配信されるたびにデータイベントをログに記録します。ログファイルは、間隔で配信される集約イベントのため、イベントとログファイルの比率は 1:1 になりません。イベントは、次回のログファイルに記録されます。たとえば、証跡がログを配信すると、PutObject イベントが S3 バケットで発生します。S3 バケットがデータイベントセクションでも指定されていると、証跡は PutObject イベントをデータイベントとして処理して記録します。このアクションは別の PutObject イベントであり、証跡はイベントを再び処理して記録します。詳細については、「CloudTrail の詳細」を参照してください。

すべての Amazon S3 データイベントをログ記録するよう証跡を設定するが、ログファイルを受け取る Amazon S3 バケットのデータイベントはログファイルをAWSアカウントの場合は、別の Amazon S3 バケットにログファイルを配信するよう設定します。AWSアカウント. 詳細については、「複数のアカウントからの CloudTrail ログファイルの受信 」を参照してください。

他の S3 オブジェクトのデータイベントをログに記録するAWSアカウント

データイベントをログに記録するように証跡を設定するとき、他の AWS アカウントに属している S3 オブジェクトを指定することもできます。指定したオブジェクトでイベントが発生すると、CloudTrail はイベントが各アカウントの証跡と一致するかどうかを評価します。イベントが証跡の設定と一致する場合、証跡はそのアカウントのイベントを処理してログに記録します。一般的に、API の呼び出し元とリソース所有者の両方がイベントを受け取ることができます。

自分が所有する S3 オブジェクトを証跡で指定すると、自分のアカウントのオブジェクトで発生したイベントが証跡によって記録されます。オブジェクトを所有しているため、他のアカウントがオブジェクトを呼び出したときも証跡はイベントを記録します。

あるアカウントのユーザーが自分の証跡で S3 オブジェクトを指定し、別のアカウントがそのオブジェクトを所有している場合は、自分のアカウントのそのオブジェクトで発生したイベントのみが記録されます。他のアカウントで発生したイベントは記録されません。

例: 2 つの S3 オブジェクトのデータイベントをログに記録するAWSアカウント

以下の例では、2 つのAWSアカウントは、同じ S3 オブジェクトのイベントをログに記録するように CloudTrail を設定します。

  1. ユーザー A は、owner-bucket という名前の S3 バケットのすべてのオブジェクトに対するデータイベントを記録します。A は S3 バケットと空のオブジェクトプレフィックスを指定して証跡を設定します。

  2. ユーザー B は、S3 バケットへのアクセスを許可されている別のアカウントを持っています。B も、同じ S3 バケット内のすべてのオブジェクトのデータイベントを記録しようとします。B は、自分の証跡を設定し、同じ S3 バケットと空のオブジェクトプレフィックスを指定します。

  3. B は、PutObject API オペレーションで S3 バケットにオブジェクトをアップロードします。

  4. このイベントは、B のアカウントで発生し、B の証跡の設定に一致します。B の証跡はイベントを処理してログに記録します。

  5. ユーザー A は S3 バケットを所有しており、イベントは A の証跡の設定と一致するので、A の証跡も同じイベントを処理して記録します。イベントのコピーが 2 つあるため(1 つはBob の証跡に記録され、もう 1 つは自分の証跡に記録されます)、CloudTrail はデータイベントの 2 つのコピーに対して課金します。

  6. A が S3 バケットにオブジェクトをアップロードします。

  7. このイベントは A のアカウントで発生し、A の証跡の設定と一致します。A の証跡はイベントを処理してログに記録します。

  8. このイベントは B のアカウントでは発生せず、B は S3 バケットを所有していないので、B の証跡はこのイベントを記録しません。CloudTrail は、このデータイベントのコピーを 1 つだけ課金します。

例: 2 つので使用される S3 バケットを含む、すべてのバケットのデータイベントのログ記録AWSアカウント

次の例では、ログインの動作を示しますアカウントの S3 バケットをすべて選択します。でデータイベントを収集するトレイルに対して有効になっているのは、AWSアカウント.

  1. ユーザー A は、アカウントですべての S3 バケットに対するデータイベントを記録します。トレイルを設定するには、Readイベントと書き込みイベント、または両方の現在および将来のすべての S3 バケットデータイベント

  2. ユーザー B は、アカウントの S3 バケットへのアクセスを許可されている別のアカウントを持っています。B は、B がアクセス権を持っているバケットのデータイベントを記録します。B は、すべての S3 バケットのデータイベントを取得するように証跡を設定します。

  3. B は、PutObject API オペレーションで S3 バケットにオブジェクトをアップロードします。

  4. このイベントは、B のアカウントで発生し、B の証跡の設定に一致します。B の証跡はイベントを処理してログに記録します。

  5. ユーザー A は S3 バケットを所有しており、イベントは A の証跡の設定と一致するので、A の証跡もそのイベントを処理して記録します。イベントのコピーが 2 つあるため(1 つはBob の証跡に記録され、もう 1 つは自分の記録に記録されます)、CloudTrail は各アカウントにデータイベントのコピーを請求します。

  6. A が S3 バケットにオブジェクトをアップロードします。

  7. このイベントは A のアカウントで発生し、A の証跡の設定と一致します。A の証跡はイベントを処理してログに記録します。

  8. このイベントは B のアカウントでは発生せず、B は S3 バケットを所有していないので、B の証跡はこのイベントを記録しません。CloudTrail は、アカウント内のこのデータイベントのコピーを 1 つだけ課金します。

  9. 3 番目のユーザー C は S3 バケットへのアクセス権を持ち、そのバケットで GetObject オペレーションを実行します。C は自分のアカウントのすべての S3 バケットでデータイベントを記録するように証跡を設定しています。API 呼び出し元であるため、CloudTrail はデータイベントをトレイルに記録します。B はバケットへのアクセス権を持っていますが、リソース所有者ではないため、今回は B の証跡にイベントは記録されません。リソース所有者として、あなたのトレイルでGetObjectメアリーが呼んだ操作。CloudTrail は、データイベントのコピーごとに、アカウントと Mary のアカウントに課金します。1 つは Mary の証跡に 1 つずつ、もう 1 つは Mary の証跡に課金されます。

読み取り専用イベントと書き込み専用イベント

データイベントと管理イベントをログに記録するように証跡を設定するときは、読み取り専用イベントまたは書き込み専用イベントのどちらか一方のみ、または両方を指定できます。

  • Read

    Readイベントには、リソースを読み込み、変更を行わない API オペレーションが含まれます。たとえば、Amazon EC2 の読み取り専用イベントにはDescribeSecurityGroupsおよびDescribeSubnetsAPI オペレーション。これらのオペレーションは、Amazon EC2 リソースに関する情報のみを返し、設定は変更しません。

  • Write

    書き込みイベントには、リソースを変更する (または変更する可能性がある) API オペレーションが含まれます。たとえば、Amazon EC2RunInstancesおよびTerminateInstancesAPI オペレーションによってインスタンスが変更されます。

例: 別々のトレイルの読み取りイベントと書き込みイベントのロギング

次の例では、アカウントに対するログアクティビティを異なる S3 バケットに分けるように証跡を設定する方法を示します。1 つのバケットは読み取り専用イベントを受け取り、もう 1 つのバケットは書き込み専用イベントを受け取ります。

  1. 証跡を作成し、ログファイルを受け取る read-only-bucket という名前の S3 バケットを選択します。次に、証跡を更新し、Read管理イベントとデータイベントを記録します。

  2. 第 2 の証跡を作成し、ログファイルを受け取る write-only-bucket という名前の S3 バケットを選択します。次に、証跡を更新し、書き込み管理イベントとデータイベントを記録します。

  3. Amazon EC2DescribeInstancesおよびTerminateInstancesAPI オペレーションがアカウントで発生します。

  4. DescribeInstances API オペレーションは読み取り専用イベントであり、1 番目の証跡の設定と一致します。証跡は、イベントをログに記録して read-only-bucket に配信します。

  5. TerminateInstances API オペレーションは書き込み専用イベントであり、2 番目の証跡の設定と一致します。証跡は、イベントをログに記録して write-only-bucket に配信します。

データイベントをAWS Command Line Interface

AWS CLI を使用して、管理イベントとデータイベントのログを記録するように証跡を設定できます。証跡が管理イベントとデータイベントをログに記録しているかどうかを確認するには、get-event-selectorsコマンド。

注記

アカウントが管理イベントのコピーを複数記録している場合は、料金が発生することに注意してください。データイベントのログ記録には常に料金が発生します。詳細については、AWS CloudTrail 料金を参照してください。

aws cloudtrail get-event-selectors --trail-name TrailName

このコマンドは、証跡のデフォルト設定を返します。

基本的なイベントセレクタを使用してイベントをログに記録する

結果の例は次のとおりです。get-event-selectorsコマンドで、基本的なイベントセレクターを表示します。デフォルトでは、[] を使用して証跡を作成すると、AWS CLIでは、証跡はすべての管理イベントを記録します。デフォルトでは、証跡はデータイベントを記録しません。

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

管理イベントとデータイベントをログに記録するように証跡を設定するには、put-event-selectors コマンドを実行します。

次の例では、2 つの S3 オブジェクトに対するすべての管理イベントとデータイベントを含めるように証跡を設定する方法を示します。1 つの証跡に 1 ~ 5 個のイベントセレクタを指定できます。1 つの証跡に 1 ~ 250 個のデータリソースを指定できます。

注記

基本イベントセレクタを使用してデータイベントを制限する場合は、S3 データリソースの最大数は 250 個です。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2"] }] }]'

このコマンドは、証跡用に設定されたイベントセレクタを返します。

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2", ], "Type": "AWS::S3::Object" } ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

高度なイベントセレクタを使用してイベントをログに記録する

高度なイベントセレクターを使用することを選択した場合、get-event-selectorsコマンドは、次のような結果を返します。デフォルトでは、証跡に対して高度なイベントセレクタは設定されていません。

{ "AdvancedEventSelectors": [], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

次の例では、高度なイベントセレクタを使用して、すべての管理イベント (readOnlyおよびwriteOnly)、PutObjectおよびDeleteObjectイベントを、同じ 2 つの S3 バケットプレフィックスに格納します。ここに示すように、高度なイベントセレクタを使用して、ARN による S3 プレフィックス名だけでなく、ログに記録する特定のイベントの名前も選択できます。トレールごとに、すべてのセレクタ値を含む高度なイベントセレクタに最大 500 個の条件を追加できます。1 つの証跡に 1 ~ 250 個のデータリソースを指定できます。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors '[ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log PutObject and DeleteObject events for two S3 prefixes", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "StartsWith": ["arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2"] } ] } ]'

結果は、証跡用に設定された高度なイベントセレクタを示しています。

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log PutObject and DeleteObject events for two S3 prefixes", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.ARN", "Equals": [], "StartsWith": [ "arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2" ], "EndsWith": [], "Equals": [], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

高度なイベントセレクターを使用して、バケットのすべての Amazon S3 イベントをログに記録する

次の例では、特定の S3 バケットのすべての Amazon S3 オブジェクトに対するすべてのデータイベントを含めるように証跡を設定する方法を示します。の S3 イベントの値resources.typefieldsAWS::S3::Object。S3 オブジェクトと S3 バケットの ARN 値はわずかに異なるため、StartsWithの演算子resources.ARNをクリックして、すべてのイベントをキャプチャします。

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::bucket_name/"] } ] } ]'

このコマンドでは、次のサンプルアウトプットが返されます。

{ "AdvancedEventSelectors": [ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:partition:s3:::bucket_name/" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName" }

Amazon S3 のログ記録AWS Outposts高度なイベントセレクターを使用したイベント

次の例では、アウトポスト内のすべての Amazon S3 on Outposts オブジェクトに対するすべてのデータイベントを含めるように証跡を設定する方法を示します。このリリースでは、[Outposts] イベントの S3 でサポートされる値resources.typefieldsAWS::S3Outposts::Object

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

このコマンドでは、次のサンプルアウトプットが返されます。

{ "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName" }

のデータイベントのログ記録AWS Configコンプライアンス

使用している場合AWS Configコンフォーマンスパックは、連邦リスクおよび承認管理プログラム (FedRAMP) やアメリカ国立標準技術研究所 (NIST) で必要とされる標準に準拠している企業を支援します。コンプライアンスフレームワークのコンフォーマンスパックでは、通常、データのログを記録する必要があります。イベントを、少なくとも Amazon S3 バケットに対して実行する必要があります。コンプライアンスフレームワークのコンフォーマンスパックには、マネージドルールと呼ばれるcloudtrail-s3-dataevents-enabledで、アカウントの S3 データイベントのログ記録をチェックします。コンプライアンスフレームワークに関連付けられていない多くのコンフォーマンスパックも、S3 データイベントログ記録を必要とします。次に、このルールを含む適合パックの例を示します。

サンプル適合パックの完全なリストについては、AWS Config「」を参照してください。コンフォーマンスパックサンプルテンプレート()AWS Config開発者ガイド の最初のリリースです。

によるイベントのログ記録AWSSDK

を実行GetEventSelectorsオペレーションを実行して、証跡がデータイベントをログに記録しているかどうかを確認します。データイベントをログに記録するように証跡を設定するには、PutEventSelectorsオペレーション. 詳細については、「AWS CloudTrail API リファレンス」を参照してください。

Amazon CloudWatch Logs へのイベントの送信

CloudTrail は、データイベントを CloudWatch Logs に送信できるようになりました。CloudWatch Logs グループにイベントを送信するように証跡を設定すると、CloudTrail は証跡で指定されているイベントだけを送信します。たとえば、データイベントのみを送信するように設定した場合、証跡はデータイベントのみを CloudWatch Logs ロググループに配信します。詳細については、Amazon CloudWatch Logs を使用した CloudTrail ログファイルのモニタリングを参照してください。