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

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

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

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

注記

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

データイベント

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

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

  • Amazon S3 オブジェクトレベルの API アクティビティ (例: GetObjectDeleteObjectPutObject API オペレーション)

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

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

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

データイベントのログ記録には追加料金が適用されます。CloudTrail の料金については、「AWS CloudTrail 料金表」を参照してください。

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

  1. コンソールの [証跡] ページを開き、証跡名を選択します。CloudTrail

    注記

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

  2. [Data events] で、[Edit] を選択します。

  3. Amazon S3 バケットで、以下のように行います。

    1. [Data event source] で、[S3] を選択します。

    2. [All current and future S3 buckets (現在および将来のすべての S3 バケット)] をログに記録するか、個別のバケットまたは関数を指定するかを選択できます。デフォルトでは、現在および将来のすべての S3 バケットのデータイベントが記録されます。

      注記

      デフォルトの [All current and future S3 buckets (現在および将来のすべての S3 バケット)] オプションを維持すると、現在ご使用の AWS アカウント内のすべてのバケット、および証跡作成後に作成するすべてのバケットで、データイベントのログ記録が有効になります。このアクティビティが、別の AWS アカウントに属するバケットで実行されている場合でも、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も行うことができます。

      単一リージョンで証跡を作成する場合 (AWS CLI を使用して実行)、[Select all S3 buckets in your account (アカウント内のすべての S3 バケットを選択)] オプションを選択すると、証跡と同じリージョン内のすべてのバケットおよびそのリージョンで作成する任意のバケットに対して、データイベントのログ記録が有効になります。AWS アカウント内の他のリージョンの Amazon S3 バケットのデータイベントは記録されません。

    3. デフォルトの [All current and future S3 buckets (現在および将来のすべての S3 バケット)] のままにした場合、[Read (読み取り)] イベント、[Write (書き込み)] イベント、またはその両方を記録することを選択します。

    4. 個々のバケットを選択するには、[All current and future S3 buckets] の [Read] および [Write] チェックボックスをオフにします。[Individual bucket selection (個々のバケットの選択)] で、データイベントを記録するバケットを参照します。特定のバケットを検索するには、目的のバケットのバケットプレフィックスを入力します。このウィンドウでは、複数のバケットを選択できます。他のバケットのデータイベントを記録するには、[Add bucket (バケットの追加)] を選択します。[読み取り] イベント (例: GetObject) か、[書き込み] イベント (例: PutObject)、または両方を記録します。

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

      ログ記録からバケットを削除するには、[X] を選択します。

  4. データイベントをログに記録する別のデータ型を追加するには、[Add data event type] を選択します。

  5. Lambda 関数で、以下のように行います。

    1. [Data event source] で、[Lambda] を選択します。

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

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

      注記

      すべてのリージョンで証跡を作成している場合は、この選択によって、AWS アカウントの現時点のすべての関数や、証跡作成後に任意のリージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。単一リージョンで証跡を作成している場合 (AWS CLI を使用して行います)、この選択により、AWS アカウントのリージョンに現在存在するすべての関数、および証跡作成後に対象リージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。他のリージョンで作成された Lambda 関数のデータイベントのログ記録は有効になりません。

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

    3. [Input function as ARN] を選択した場合は、Lambda 関数の ARN を入力します。

      注記

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

  6. [Update trail (証跡の更新)] を選択します。

では、高度なイベントセレクタが有効になっている場合、選択したリソース (AWS マネジメントコンソール バケットまたは Amazon S3 関数) にすべてのデータイベントをログ記録する事前定義されたテンプレートから選択できます。Lambdaログセレクタテンプレートを選択したら、最も表示するデータイベントのみを含めるようにテンプレートをカスタマイズできます。

  1. コンソールの [ダッシュボード] ページまたは [証跡] ページで、証跡名を選択して開きます。CloudTrail

  2. 証跡の詳細ページの [Data events] で、[Edit] を選択します。

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

  4. [Data event type (データイベントタイプ)] で、ログ記録するデータイベントリソースタイプ (S3 バケット、AWS Outposts の S3 オブジェクト、または Lambda 関数) を選択します。

  5. ログセレクタテンプレートを選択します。CloudTrail には、リソースタイプのすべてのデータイベントを記録する事前定義されたテンプレートが含まれています。カスタムログセレクタテンプレートを構築するには、[カスタム] を選択します。

    注記

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

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

    すべてのリージョンで証跡を作成している場合は、Lambda 関数の事前定義されたテンプレートを選択すると、AWS アカウントの現時点のすべての関数や、証跡作成後に任意のリージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。単一リージョンで証跡を作成している場合 (AWS CLI を使用して行います)、この選択により、AWS アカウントの対象リージョンの現時点のすべての関数や、証跡作成後に対象リージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。他のリージョンで作成された Lambda 関数のデータイベントのログ記録は有効になりません。

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

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

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

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

  9. [Advanced event selectors (高度なイベントセレクタ)] で、データイベントを収集する特定の S3 バケット、AWS Outposts の S3 オブジェクト、または Lambda 関数用の式を構築します。

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

      • [readOnly] - は、readOnly または の値を [Equalstrue] に設定できます。false 読み取り専用のデータイベントは、Get*Describe* イベントなど、リソースの状態を変更しないイベントです。書き込みイベントは、Put*Delete*、または Write* イベントなどのリソース、属性、またはアーティファクトを追加、変更、または削除します。

      • eventName - では任意の演算子を使用できます。eventNameや CloudTrail など、PutBucket に記録されたデータイベントを含めるか除外するために使用できます。GetItem このフィールドには、複数の値をカンマで区切って含めることができます。

      • resources.type - このフィールドは必須です。resources.type は [Equals (等号)] 演算子のみを使用することができ、値は以下のいずれかになります。AWS::S3::ObjectAWS::S3Outposts::Object、または AWS::Lambda::Function

      • resources.ARN - では任意の演算子を使用できますが、[resources.ARNEquals] または [NotEquals] を使用する場合、値はテンプレートで の値として指定したタイプの有効なリソースの ARN と完全に一致する必要があります。resources.type たとえば、resources.typeAWS::S3::Object と等しい場合、ARN は以下のいずれかの形式である必要があります。末尾のスラッシュは意図的なものです。除外しないでください。

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

        resources.typeAWS::S3Outposts::Object と等しく、演算子が [Equals] または [NotEquals] に設定されている場合、ARN は次の形式である必要があります。

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

        resources.typeAWS::Lambda::Function と等しく、演算子が [Equals] または [NotEquals] に設定されている場合、ARN は次の形式である必要があります。

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

      データイベントリソースの ARN 形式の詳細については、 ユーザーガイドAmazon S3の「 で定義されるリソースタイプ」および「AWS Lambda で定義されるリソースタイプ」を参照してください。AWS Identity and Access Management

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

      2 つ目の S3 バケットを追加するには、[+ Conditions] を選択し、上記の手順を繰り返します。その際、別のバケットの ARN を貼り付けるか参照します。

      注記

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

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

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

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

  10. データイベントをログに記録する別のデータ型を追加するには、[Add data event type] を選択します。データイベントタイプの高度なイベントセレクタを設定するには、ステップ 4 からこのステップを繰り返します。

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

  12. 選択を確認して検証したら、これが既存の証跡の場合は [Update trail (証跡の更新)] を選択し、新しい証跡を作成する場合は [Create trail (証跡の作成)] を選択します。

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

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

次の例では、 という名前の S3 バケットにすべてのデータイベントのログ記録を設定する際の、ログ記録のしくみを示します。bucket-1。 この例では、CloudTrail ユーザーは空のプレフィックスと、[読み取り] と [書き込み] データイベントの両方のログを記録するオプションを指定しました。

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

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

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

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

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

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

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

  2. DeleteObject API オペレーションは Amazon S3 オブジェクトレベルの API です。これは、 内に [WriteCloudTrail] データイベントとして記録されます。証跡で指定した 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 です。これは 内で [読み込みCloudTrail] データイベントとして保存されますが、証跡は [読み取り] イベントをログ記録するようには設定されていません。証跡はこのイベントをログに記録しません。

注記

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

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

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

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

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

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

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

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

  1. アカウントで、owner-bucket という名前の S3 バケット内のすべてのオブジェクトのデータイベントを証跡で記録する必要があります。 S3 バケットと空のオブジェクトプレフィックスを指定して、証跡を設定します。

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

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

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

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

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

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

  8. イベントは B のアカウントでは発生せず、B は S3 バケットを所有していないため、B の証跡ではイベントが記録されません。CloudTrail では、このデータイベントの 1 つのコピーのみに対して料金が発生します。

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

次の例は、 アカウントのデータイベントを収集する証跡に対して [Select all S3 buckets in your account (アカウント内のすべての S3 バケットを選択)AWS] が有効になっている場合のログ記録の動作を示しています。

  1. ユーザー A は、アカウントですべての S3 バケットに対するデータイベントを記録します。[Data events (データイベント)] の [All current and future S3 buckets (現在および将来のすべての S3 バケット)] で、[Read (読み取り)] イベント、[Write (書き込み)] イベント、またはその両方を選択して証跡を設定します。

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

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

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

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

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

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

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

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

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

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

  • Read

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

  • 書き込み

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

例: 個別の証跡の読み込みイベントと書き込みイベントのログ記録

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

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

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

  3. Amazon EC2 の DescribeInstances および TerminateInstances API オペレーションがアカウントで発生します。

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

以下の例では、高度なイベントセレクタを使用してすべての管理イベント (readOnlywriteOnly の両方) をログに記録し、S3 オブジェクトに対する PutObjectDeleteObject イベントを同じ 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": "readOnly", "Equals": ["false"] }, { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log PutObject and DeleteObject events for two S3 prefixes", "FieldSelectors": [ { "Field": "readOnly", "Equals": ["false"] }, { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2"] } ] } ]'

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

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "readOnly", "Equals": [ false ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log PutObject and DeleteObject events for two S3 prefixes", "FieldSelectors": [ { "Field": "readOnly", "Equals": [ false ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "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": [], "EndsWith": [], "Equals": [ "arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2" ], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

高度なイベントセレクタを使用して Amazon S3 イベントを AWS Outposts に記録する

次の例は、Outposts にあるすべての Amazon S3 のすべてのデータイベントを含めるように証跡を設定する方法を示しています。このリリースでは、resources.type フィールドの Outposts イベントで S3 に対してサポートされている値は AWS::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 を使用したイベントのログ記録SDKs

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

にイベントを送信するAmazon CloudWatch Logs

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