AWS CLI を使用して証跡を管理する
AWS CLI には、証跡の管理に役立つ他のコマンドがいくつか含まれています。これらのコマンドは、証跡へのタグの追加、証跡ステータスの取得、証跡に対するログ記録の開始と停止、および証跡の削除を行います。証跡が作成されたのと同じ AWS リージョン (そのホームリージョン) からこれらのコマンドを実行する必要があります。AWS CLI を使用するときは、コマンドは自分のプロファイル用に設定された AWS リージョンで実行されることを忘れないようにしてください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに --region パラメータを使用します。
トピック
証跡に 1 つ以上のタグを追加します。
既存の証跡に 1 つ以上のタグを追加するには、add-tags コマンドを実行します。
以下の例は、Owner
という名前と Mary
の値を持つタグを、米国東部 (オハイオ) リージョンの arn:aws:cloudtrail:
の ARN を持つ証跡に追加します。us-east-2
:123456789012
:trail/my-trail
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 コマンドを使用します。
次の例では、Trail1
と Trail2
のタグを一覧表示します。
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:
の ARN を持つ証跡から us-east-2
:123456789012
:trail/my-trail
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
属性の値として ApiCallRateInsight
、ApiErrorRateInsight
、またはその両方を指定して、証跡でInsights イベントを有効にします。証跡の Insights イベントセレクタの設定を表示するには、get-insight-selectors
コマンドを実行します。証跡が作成された AWS リージョン (ホームリージョン) からこのコマンドを実行するか、--region パラメータをコマンドに追加してそのリージョンを指定する必要があります。
注記
ApiCallRateInsight
の Insights イベントを記録するには、証跡は write
の管理イベントを記録している必要があります。ApiErrorRateInsight
の Insights イベントを記録するには、証跡は read
または write
の管理イベントを記録している必要があります。
Insights イベントを記録する証跡例
次の例では、put-insight-selectors を使用して TrailName3
という名前の証跡の Insights イベントセレクタを作成します。これにより、TrailName3
証跡の Insights イベントコレクションが有効になります。Insightsイベントセレクタは、ApiErrorRateInsight
と ApiCallRateInsight
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
コマンドを実行します。証跡で Insights イベントを記録する場合は、イベントセレクターで、証跡を設定したい Insights タイプのロギングが有効になっていることを確認してください。Insights イベントのログ記録に関する詳細については、「証跡の Insights イベントの記録」を参照してください。
アカウントでイベントが発生すると、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] (書き込み) イベントを含めることを選択しました。これには Disable
、Delete
、および ScheduleKey
が含まれますが、Encrypt
、Decrypt
、および 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 テーブルをログに記録します。
[高度なイベントセレクタ] で式を作成し、以下に対するデータイベントを収集できます: 特定の S3 バケット、AWS Lambda 関数、CloudTrail Lake チャネル上の PutAuditEvents
呼び出し、DynamoDB テーブル、Outposts 上の Amazon S3、Ethereum ノード上の Amazon Managed Blockchain JSON-RPC 呼び出し、S3 Object Lambda アクセスポイント、EBS スナップショット上の Amazon EBS 直接 API、S3 アクセスポイント、DynamoDB ストリーム、Lake Formation が作成した AWS Glue テーブル、Amazon FinSpace 環境、Amazon SageMaker メトリクス実験トライアルコンポーネント、および Amazon SageMaker Feature Store、Amazon Kendra リスコア実行プラン、Amazon Cognito アイデンティティプール、Amazon GuardDuty 検出器に対するアクティビティ
高度なイベントセレクタの詳細については、アドバンストイベントセレクタの設定 を参照してください。
証跡のアドバンストイベントセレクタの設定を表示するには、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 テーブル、CloudTrail Lake チャネルでの PutAuditEvents 呼び出し、AWS Outposts での S3 オブジェクトレベル API アクティビティ、Ethereum ノードでの Amazon Managed Blockchain JSON-RPC 呼び出し、S3 Object Lambda アクセスポイントでの API アクティビティ、AWS アカウントの Amazon EBS スナップショットでの Amazon EBS ダイレクト API アクティビティ、S3 アクセスポイント、DynamoDB ストリーム、Lake Formation が作成した AWS Glue テーブル、Amazon FinSpace 環境、Amazon SageMaker メトリクス実験トライアルコンポーネント、Amazon SageMaker Feature Store、Amazon Kendra のリスコア実行プラン、Amazon Cognito アイデンティティプール、Amazon GuardDuty 検出器の API アクティビティ
注記
証跡が 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 Amazon S3 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 CloudTrail PutAuditEvents activity on a CloudTrail Lake channel, "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::CloudTrail::Channel"] } ] }, { "Name": "Log all events for Amazon 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 Amazon 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 tables created by Lake Formation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Glue::Table"] } ] }, { "Name": "Log all events for FinSpace environments", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::FinSpace::Environment"] } ] }, { "Name": "Log all events for SageMaker metrics experiment trial components", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::ExperimentTrialComponent"] } ] }, { "Name": "Log all events for SageMaker feature stores", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::FeatureGroup"] } ] }, { "Name": "Log all events for Amazon Kendra Intelligent Ranking rescore execution plans", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::KendraRanking::ExecutionPlan"] } ] }, { "Name": "Log all events for Amazon Cognito identity pools", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Cognito::IdentityPool"] } ] }, { "Name": "Log events for an Amazon GuardDuty detector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::GuardDuty::Detector"] } ] } ]'
例は、証跡用に設定されたアドバンストイベントセレクタを返します。
{ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/
TrailName2
", "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] }, { "Name": "Log all events for all Amazon S3 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 CloudTrail PutAuditEvents activity on a CloudTrail Lake channel", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::CloudTrail::Channel" ] } ] }, { "Name": "Log all events for Amazon 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 Amazon 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 tables created by Lake Formation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Glue::Table" ] } ] }, { "Name": "Log all events for FinSpace environments", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::FinSpace::Environment" ] } ] }, { "Name": "Log all events for SageMaker metrics experiment trial components", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::SageMaker::ExperimentTrialComponent" ] } ] }, { "Name": "Log all events for SageMaker feature stores", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::SageMaker::FeatureGroup" ] } ] }, { "Name": "Log all events for Amazon Kendra Intelligent Ranking rescore execution plans", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::KendraRanking::ExecutionPlan" ] } ] }, { "Name": "Log all events for Amazon Cognito identity pools", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Cognito::IdentityPool" ] } ] }, { "Name": "Log events for an Amazon GuardDuty detector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::GuardDuty::Detector" ] } ] } ] }
カスタムアドバンストイベントセレクタを使用して AWS Outposts データイベントの Amazon S3 をログに記録する証跡の例
次の例では、アウトポストの AWS Outposts オブジェクト上のすべての Amazon S3 のすべてのデータイベントを含めるよう、証跡を設定する方法を示します。このリリースでは、resources.type
フィールドの AWS Outposts イベント上の S3 でサポートされる値は AWS::S3Outposts::Object
です。
aws cloudtrail put-event-selectors --trail-name
TrailName
--regionregion
\ --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 を使用して、これらのリソースを個別に削除します。