AWS CLI を使用して証跡を管理する - AWS CloudTrail

AWS CLI を使用して証跡を管理する

AWS CLI には、証跡の管理に役立つ他のコマンドがいくつか含まれています。これらのコマンドは、証跡へのタグの追加、証跡ステータスの取得、証跡に対するログ記録の開始と停止、および証跡の削除を行います。証跡が作成されたのと同じ AWS リージョン (そのホームリージョン) からこれらのコマンドを実行する必要があります。AWS CLI を使用するときは、コマンドは自分のプロファイル用に設定された AWS リージョンで実行されることを忘れないようにしてください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに --region パラメータを使用します。

証跡に 1 つ以上のタグを追加します。

既存の証跡に 1 つ以上のタグを追加するには、add-tags コマンドを実行します。

以下の例は、Owner という名前と Mary の値を持つタグを、米国東部 (オハイオ) リージョンの arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail の ARN を持つ証跡に追加します。

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail --tags-list Key=Owner,Value=Mary --region us-east-2

成功すると、このコマンドは何も返しません。

1 つ以上の証跡のリストのタグ

1 つ以上の既存の証跡に関連付けられているタグを表示するには、list-tags コマンドを使用します。

次の例では、Trail1Trail2のタグを一覧表示します。

aws cloudtrail list-tags --resource-id-list arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail2

正常に完了した場合、このコマンドは以下のような出力を返します。

{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "Name" }, { "Value": "Ohio", "Key": "Location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "Name" } ] } ] }

証跡から 1 つ以上のタグを削除します。

既存の証跡から 1 つ以上のタグを削除するには、remove-tags コマンドを実行します。

以下の例は、米国東部 (オハイオ) リージョンの arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail の ARN を持つ証跡から Location および Name という名前を持つタグを削除します。

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 --tags-list Key=Name Key=Location --region us-east-2

成功すると、このコマンドは何も返しません。

証跡の設定と証跡のステータスの取得

AWS リージョンの証跡に関する情報を取得するには、describe-trails コマンドを実行します。次の例では、米国東部 (オハイオ) リージョンに設定された証跡に関する情報を返します。

aws cloudtrail describe-trails --region us-east-2

コマンドが正常に完了した場合は、以下のような出力が表示されます。

{ "trailList": [ { "Name": "my-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-2" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": false, }, { "Name": "my-special-trail", "S3BucketName": "another-bucket", "S3KeyPrefix": "example-prefix", "IncludeGlobalServiceEvents": false, "IsMultiRegionTrail": false, "HomeRegion": "us-east-2", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-special-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": true, "IsOrganizationTrail": false }, { "Name": "my-org-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-1" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-org-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": true } ] }

特定の証跡に関する設定情報を取得するには、get-trail コマンドを実行します。次の使用例は、my-trail という名前の証跡の設定情報を返します。

aws cloudtrail get-trail - -name my-trail

正常に完了した場合、このコマンドは以下のような出力を返します。

{ "Trail": { "Name": "my-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-2" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": false, } }

証跡のステータスを取得するには get-trail-status コマンドを実行します。このコマンドを作成された AWS リージョン (ホームリージョン) から実行するか、--region パラメータを追加してそのリージョンを指定する必要があります。

注記

証跡が組織の証跡であり、お客様が AWS Organizations の組織のメンバーアカウントである場合は、名前だけでなく、その証跡の完全な ARN を提供する必要があります。

aws cloudtrail get-trail-status --name my-trail

コマンドが正常に完了した場合は、以下のような出力が表示されます。

{ "LatestDeliveryTime": 1441139757.497, "LatestDeliveryAttemptTime": "2015-09-01T20:35:57Z", "LatestNotificationAttemptSucceeded": "2015-09-01T20:35:57Z", "LatestDeliveryAttemptSucceeded": "2015-09-01T20:35:57Z", "IsLogging": true, "TimeLoggingStarted": "2015-09-01T00:54:02Z", "StartLoggingTime": 1441068842.76, "LatestDigestDeliveryTime": 1441140723.629, "LatestNotificationAttemptTime": "2015-09-01T20:35:57Z", "TimeLoggingStopped": "" }

前述の JSON コードに表示されているフィールドに加えて、Amazon SNS または Amazon S3 エラーがある場合はステータスに以下のフィールドが含まれます。

  • LatestNotificationError。トピックのサブスクリプションに失敗した場合に、Amazon SNS によって出力されたエラーが含まれています。

  • LatestDeliveryError。CloudTrail がバケットにログファイルを配信できない場合に、Amazon S3 によって出力されたエラーが含まれています。

CloudTrail Insights イベントセレクタの設定

put-insight-selectors を実行し、InsightType 属性の値として ApiCallRateInsightApiErrorRateInsight、またはその両方を指定して、証跡でInsights イベントを有効にします。証跡の Insights イベントセレクタの設定を表示するには、get-insight-selectors コマンドを実行します。証跡が作成された AWS リージョン (ホームリージョン) からこのコマンドを実行するか、--region パラメータをコマンドに追加してそのリージョンを指定する必要があります。

Insights イベントを記録する証跡例

次の例では、put-insight-selectors を使用して TrailName3 という名前の証跡の Insights イベントセレクタを作成します。これにより、TrailName3 証跡の Insights イベントコレクションが有効になります。Insightsイベントセレクターは、ApiErrorRateInsightApiCallRateInsight Insights の両方のイベントタイプをログに記録します。

aws cloudtrail put-insight-selectors --trail-name TrailName3 --insight-selectors '[{"InsightType": "ApiCallRateInsight"},{"InsightType": "ApiErrorRateInsight"}]'

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

{ "InsightSelectors": [ { "InsightType": "ApiErrorRateInsight" }, { "InsightType": "ApiCallRateInsight" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName3" }

例: 証跡の Insights イベントの収集をオフにする

次の例では、put-insight-selectors を使用して、TrailName3 という名前の証跡の Insights イベントセレクタを削除します。Insights セレクタの JSON 文字列をクリアすると、TrailName3 証跡の Insights イベントコレクションが無効になります。

aws cloudtrail put-insight-selectors --trail-name TrailName3 --insight-selectors '[]'

この例では、証跡用に設定された現在空の Insights イベントセレクタを返します。

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

イベントセレクタの設定

証跡のイベントセレクタの設定を表示するには、get-event-selectors コマンドを実行します。このコマンドを作成された AWS リージョン (ホームリージョン) から実行するか、--region パラメータを使用してそのリージョンを指定する必要があります。

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

証跡が組織の証跡であり、お客様が AWS Organizations の組織のメンバーアカウントである場合は、名前だけでなく、その証跡の完全な ARN を提供する必要があります。

次の例は、証跡のイベントセレクタのデフォルト設定を返します。

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

イベントセレクタを作成するには、put-event-selectors コマンドを実行します。アカウントでイベントが発生すると、CloudTrail によって証跡の設定が評価されます。イベントが証跡のいずれかのイベントセレクタと一致する場合は、証跡がイベントを処理し、ログに記録します。証跡あたり最大 5 つのイベントセレクタと、証跡あたり最大 250 の データリソースを設定できます。詳しくは、証跡のデータイベントの記録 を参照してください。

特定のイベントセレクタを使用した証跡例

以下の例では、読み取り専用管理イベントと書き込み専用管理イベント、2 つの Amazon S3 バケット/プレフィックスの組み合わせのデータイベント、単一の AWS Lambda 関数 (hello-world-python-function) のデータイベントを含めるように、TrailName という名前の証跡を作成します。

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"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'

例では、証跡に対して設定されているイベントセレクタを返します。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

すべての管理イベントとデータイベントを記録する証跡例

次の例では、すべてのイベントを含む、TrailName2 という名前の証跡のイベントセレクタを作成します。これには、読み取り専用および書き込み専用の管理イベント、および AWS アカウント内のすべての Amazon S3 バケットおよび AWS Lambda 関数、および Amazon DynamoDB テーブルのすべてのデータイベントが含まれます。この例では、基本的なイベントセレクタを使用しているため、AWS Outposts の S3 イベント、Ethereum ノード の Amazon Managed Blockchain JSON-RPC コール、または その他の高度なイベントセレクタリソースタイプの記録は設定できません。これらのリソースのデータイベントをログに記録するには、アドバンストイベントセレクタを使用する必要があります。詳しくは、アドバンストイベントセレクタの設定 を参照してください。

注記

証跡が 1 つのリージョンにのみ適用される場合、イベントセレクタのパラメータですべての Amazon S3 バケットと Lambda 関数が指定されていても、そのリージョン内のイベントのみがログに記録されます。イベントセレクタは、証跡が作成されたリージョンにのみ適用されます。

aws cloudtrail put-event-selectors --trail-name TrailName2 --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]},{"Type": "AWS::DynamoDB::Table","Values": ["arn:aws:dynamodb"]}]}]'

例では、証跡に対して設定されているイベントセレクタを返します。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda" ], "Type": "AWS::Lambda::Function" }, { "Values": [ "arn:aws:dynamodb" ], "Type": "AWS::DynamoDB::Table" } ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

AWS Key Management Service イベントを記録しない証跡例

次の例では、TrailName という名前の証跡のイベントセレクタを作成し、読み取り専用管理イベントと書き込み専用管理イベントを含めますが、AWS Key Management Service (AWS KMS) イベントを除外します。AWS KMS イベントは管理イベントとして扱われ、イベントは大量になる場合があるため、管理イベントをキャプチャする証跡が複数ある場合は、CloudTrail の請求に大きな影響を与える可能性があります。この例のユーザーは、1 つを除くすべての証跡から AWS KMS イベントを除外することを選択しました。イベントソースを除外するには、イベントセレクタに ExcludeManagementEventSources を追加し、文字列値でイベントソースを指定します。

管理イベントをログに記録しないように選択した場合は、AWS KMS イベントはログに記録されず、AWS KMS イベントログ設定は変更できません。

証跡への AWS KMS イベントの記録を再び開始するには、ExcludeManagementEventSources の値として空の配列を渡します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true]}]'

この例では、証跡に対して設定されているイベントセレクタを返します。

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

証跡への AWS KMS イベントの記録を再び開始するには、次のコマンドに示すように ExcludeManagementEventSources の値として空の配列を渡します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

関連する低容量 AWS Key Management Service イベントをログに記録する証跡例

次の例では、TrailName という名前の証跡のイベントセレクタを作成し、書き込み専用管理イベントと AWS KMS イベントを含めます。AWS KMS イベントは管理イベントとして扱われ、イベントは大量になる場合があるため、管理イベントをキャプチャする証跡が複数ある場合は、CloudTrail の請求に大きな影響を与える可能性があります。この例では、ユーザーが AWS KMS の [Write] (書き込み) イベントを含めることを選択しました。これには DisableDelete、および ScheduleKey が含まれますが、EncryptDecrypt、および GenerateDataKey などの大容量アクションは含まれなくなります (これらは [Read] (読み取り) イベントとして扱われます)。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

この例では、証跡に対して設定されているイベントセレクタを返します。これにより、AWS KMS イベントを含む書き込み専用の管理イベントがログに記録されます。

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

Amazon RDS データ API イベントを記録しない証跡例

次の例では、TrailName という名前の証跡のイベントセレクタを作成し、読み取り専用管理イベントと書き込み専用管理イベントを含めますが、Amazon RDS Data API イベントを除外します。Amazon RDS Data API イベントは管理イベントとして扱われ、イベントは大量になる場合があるため、管理イベントをキャプチャする証跡が複数ある場合は、CloudTrail の請求に大きな影響を与える可能性があります。この例のユーザーは、1 つを除くすべての証跡から Amazon RDS Data API イベントを除外することを選択しました。イベントソースを除外するには、イベントセレクタに ExcludeManagementEventSources を追加し、Amazon RDS Data API 文字列値でイベントソースを指定します: rdsdata.amazonaws.com

管理イベントをログに記録しないように選択した場合は、Amazon RDS Data API イベントはログに記録されず、 イベントログ設定は変更できません。

証跡への Amazon RDS Data API イベントの記録を再び開始するには、ExcludeManagementEventSources の値として空の配列を渡します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["rdsdata.amazonaws.com"],"IncludeManagementEvents": true]}]'

この例では、証跡に対して設定されているイベントセレクタを返します。

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

証跡への Amazon RDS Data API イベントの記録を再び開始するには、次のコマンドに示すように ExcludeManagementEventSources の値として空の配列を渡します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

アドバンストイベントセレクタの設定

基本的なイベントセレクタの代わりに、アドバンストイベントセレクタを使用してデータイベントを含めるか除外するには、証跡の詳細ページでアドバンストイベントセレクタを使用します。高度なイベントセレクタを使用すると、基本的なイベントセレクタよりも多くのリソースタイプでデータイベントをログに記録できます。基本セレクタは S3 オブジェクトアクティビティ、AWS Lambda 関数の実行アクティビティ、および DynamoDB テーブルをログに記録します。アドバンストイベントセレクタは、Amazon S3 on Outposts、Ethereum ノードでの Amazon Managed Blockchain の JSON-RPC コール、S3 Object Lambda アクセスポイント、EBS スナップショットでの Amazon EBS ダイレクト API、S3 アクセスポイント、 DynamoDB Streams、および AWS Glue テーブル。高度なイベントセレクタの詳細については、アドバンストイベントセレクタの設定 を参照してください。

証跡のアドバンストイベントセレクタの設定を表示するには、get-event-selectors コマンドを実行します。証跡が作成された AWS リージョン (ホームリージョン) からこのコマンドを実行するか、--region パラメータを追加してそのリージョンを指定する必要があります。

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

証跡が組織の証跡であり、お客様が AWS Organizations の組織のメンバーアカウントでサインインしている場合は、名前だけでなく、その証跡の完全な ARN を提供する必要があります。

次の例は、証跡のアドバンストイベントセレクタのデフォルト設定を返します。デフォルトでは、証跡用にはアドバンストイベントセレクタは設定されていません。

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

アドバンストイベントセレクタを作成するには、put-event-selectors コマンドを実行します。アカウントでデータイベントが発生すると、CloudTrail によって証跡の設定が評価されます。イベントが証跡のいずれかのアドバンストイベントセレクタと一致する場合は、証跡がイベントを処理し、ログに記録します。1 つの証跡に最大 500 の条件を設定できます。これには、証跡上のすべてのアドバンストイベントセレクタに指定されたすべての値が含まれます。詳しくは、証跡のデータイベントの記録 を参照してください。

特定のアドバンストイベントセレクタを使用した証跡例

次の例では、 (readOnly セレクタを除くことにより) 読み取りおよび書き込み管理イベントを含めるため、TrailName という名前の証跡のカスタムアドバンストイベントセレクタと、sample_bucket_name という名前のバケットおよび MyLambdaFunction という名前の関数 AWS Lambda のデータイベントを除く、すべての Amazon S3 バケット/プレフィックスの組み合わせの PutObject および DeleteObject データイベントを作成します。これらはカスタムアドバンストイベントセレクタであるため、セレクタの各セットにはわかりやすい名前をつけます。末尾のスラッシュは S3 バケットの ARN 値の一部であることに注意してください。

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 all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "NotEquals": ["arn:aws:s3:::sample_bucket_name/"] } ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction"] } ] } ]'

例は、証跡用に設定されたアドバンストイベントセレクタを返します。

{ "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 all but one bucket", "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": [], "EndsWith": [], "NotEquals": [ "arn:aws:s3:::sample_bucket_name/" ], "NotStartsWith": [], "NotEndsWith": [] }, ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventName", "Equals": [ "Invoke" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

カスタムアドバンストイベントセレクタを使用してすべての管理イベントとデータイベントをログに記録する証跡の例

次の例では、TrailName2 という名前の証跡の高度なイベントセレクターを作成します。 これには、すべてのイベント (読み取り専用および書き込み専用の管理イベントを含む) 、およびすべての S3 バケット、Lambda 関数、DynamoDB テーブル、AWS Outposts での S3 オブジェクトレベル API アクティビティ、Ethereumノードでの Amazon Managed Blockchain JSON-RPC コール)、S3 Object Lambda アクセスポイントでの API アクティビティ、AWS アカウントの Amazon EBS スナップショットでの Amazon EBS ダイレクト API アクティビティ)、S3 アクセスポイント、DynamoDB Streams、および AWS Glue テーブルが含まれます。

注記

証跡が 1 つのリージョンにのみ適用される場合、イベントセレクタのパラメータですべての Amazon S3 バケットと Lambda 関数が指定されていても、そのリージョン内のイベントのみがログに記録されます。単一のリージョン証跡では、イベントセレクタは、証跡が作成されたリージョンにのみ適用されます。

aws cloudtrail put-event-selectors --trail-name TrailName2 \ --advanced-event-selectors ' [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log all events for all buckets", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] } ] }, { "Name": "Log all events for Lambda functions", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] } ] }, { "Name": "Log all events for DynamoDB tables", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::DynamoDB::Table"] } ] }, { "Name": "Log all events for S3 on Outposts", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] }, { "Name": "Log all JSON-RPC calls for Ethereum nodes in Amazon Managed Blockchain", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::ManagedBlockchain::Node"] } ] }, { "Name": "Log all events for Amazon S3 Object Lambda access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3ObjectLambda::AccessPoint"] } ] }, { "Name": "Log all Amazon EBS direct API calls on snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] } ] }, { "Name": "Log all events for S3 access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::AccessPoint"] } ] }, { "Name": "Log all events for DynamoDB streams", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::DynamoDB::Stream"] } ] }, { "Name": "Log all events for AWS Glue streams", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Glue::Table"] } ] } ]'

例は、証跡用に設定されたアドバンストイベントセレクタを返します。

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for all buckets", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for Lambda functions", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for DynamoDB tables", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::DynamoDB::Table" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for S3 on Outposts", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all JSON-RPC call events for Ethereum on Managed Blockchain nodes", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::ManagedBlockchain::Node" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for Amazon S3 Object Lambda access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3ObjectLambda::AccessPoint" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all Amazon EBS direct API calls on snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::EC2::Snapshot" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for S3 access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::AccessPoint" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for DynamoDB streams", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::DynamoDB::Stream" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for AWS Glue tables", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Glue::Table" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

カスタムアドバンストイベントセレクタを使用して AWS Outposts データイベントの Amazon S3 をログに記録する証跡の例

次の例では、アウトポストの AWS Outposts オブジェクト上のすべての Amazon S3 のすべてのデータイベントを含めるよう、証跡を設定する方法を示します。このリリースでは、resources.type フィールドの AWS 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:123456789012:trail/TrailName" }

アドバンストイベントセレクタを使用して AWS Key Management Service イベントを除外する証跡の例

次の例では、TrailName という名前の証跡のアドバンストイベントセレクタを作成し、(readOnly セレクタを除くことにより) 読み取り専用管理イベントと書き込み専用管理イベントを含めますが、AWS Key Management Service (AWS KMS) イベントを除外します。AWS KMS イベントは管理イベントとして扱われ、イベントは大量になる場合があるため、管理イベントをキャプチャする証跡が複数ある場合は、CloudTrail の請求に大きな影響を与える可能性があります。このリリースでは、kms.amazonaws.com からイベントを除外できます。

管理イベントをログに記録しないように選択した場合は、AWS KMS イベントはログに記録されず、AWS KMS イベントログ設定は変更できません。

AWS KMS イベントの証跡へのログ記録を再開するには、eventSource セレクタを削除し、コマンドを再度実行します。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["kms.amazonaws.com"] } ] } ]'

例は、証跡用に設定されたアドバンストイベントセレクタを返します。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventSource", "Equals": [], "StartsWith": [], "EndsWith": [], "NotEquals": [ "kms.amazonaws.com" ], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

除外されたイベントの証跡へのログ記録を再開するには、次のコマンドに示されるように、eventSource セレクタを削除します。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

アドバンストイベントセレクタを使用して Amazon RDS データ API イベントを除外する証跡の例

次の例では、TrailName という名前の証跡のアドバンストイベントセレクタを作成し、(readOnly セレクタを除くことにより) 読み取り専用管理イベントと書き込み専用管理イベントを含めますが、Amazon RDS Data API イベントを除外します。Amazon RDS Data API イベントは管理イベントとして扱われ、イベントは大量になる場合があるため、管理イベントをキャプチャする証跡が複数ある場合は、CloudTrail の請求に大きな影響を与える可能性があります。Amazon RDS Data API イベントを除外するには、eventSource フィールド用の文字列値の Amazon RDS データ API イベントソースを指定します: rdsdata.amazonaws.com

管理イベントをログに記録しないように選択した場合は、Amazon RDS Data API イベントはログに記録されず、Amazon RDS Data API イベントログ設定は変更できません。

Amazon RDS Data API イベントの証跡へのログ記録を再開するには、eventSource セレクタを削除し、コマンドを再度実行します。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except Amazon RDS data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["rdsdata.amazonaws.com"] } ] } ]'

例は、証跡用に設定されたアドバンストイベントセレクタを返します。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except Amazon RDS data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventSource", "Equals": [], "StartsWith": [], "EndsWith": [], "NotEquals": [ "rdsdata.amazonaws.com" ], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

除外されたイベントの証跡へのログ記録を再開するには、次のコマンドに示されるように、eventSource セレクタを削除します。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

証跡のログ記録の停止と開始

次のコマンドは、CloudTrail のログ記録を開始および停止します。

aws cloudtrail start-logging --name awscloudtrail-example
aws cloudtrail stop-logging --name awscloudtrail-example
注記

バケットを削除する前に、stop-logging コマンドを実行してバケットへのイベントの配信を停止します。ログ記録を停止しない場合、CloudTrail は限られた期間、同じ名前のバケットにログファイルを配信しようとします。

ログ記録を停止するか証跡を削除すると、その証跡で CloudTrail Insights が無効になります。

証跡の削除

次のコマンドを使用して証跡を削除することができます。証跡は、それが作成されたリージョン (ホームリージョン) でのみ削除できます。

aws cloudtrail delete-trail --name awscloudtrail-example

証跡を削除しても、Amazon S3 バケットまたはそれに関連付けられている Amazon SNS トピックは削除されません。AWS Management Console、AWS CLI、またはサービス API を使用して、これらのリソースを個別に削除します。