Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用したCloudTrail の例 AWS CLI
次のコード例は、 AWS Command Line Interface CloudTrail を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
各例には、完全なソースコードへのリンクが含まれています。このリンクでは、コンテキストでコードを設定および実行する手順を確認できます。
トピック
アクション
次の例は、add-tags
を使用する方法を説明しています。
- AWS CLI
-
証跡にタグを追加するには
次の
add-tags
コマンドは、 のタグを追加しますTrail1
。aws cloudtrail add-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name,Value=Alice
Key=location,Value=us
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のAddTags
」を参照してください。
-
次の例は、create-subscription
を使用する方法を説明しています。
- AWS CLI
-
証跡の AWS リソースを作成および設定するには
次の
create-subscription
コマンドは、 の新しい S3 バケットと SNS トピックを作成しますTrail1
。aws cloudtrail create-subscription --name
Trail1
--s3-new-bucketmy-bucket
--sns-new-topicmy-topic
出力:
Setting up new S3 bucket my-bucket... Setting up new SNS topic my-topic... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "f39e51f6-c615-11e5-85bd-d35ca21ee3e2" } } Starting CloudTrail service... Logs will be delivered to my-bucket
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のCreateSubscription
」を参照してください。
-
次のコード例は、create-trail
を使用する方法を示しています。
- AWS CLI
-
証跡を作成するには
次の
create-trail
コマンドは、 という名前のマルチリージョン証跡を作成しTrail1
、S3 バケットを指定します。aws cloudtrail create-trail --name
Trail1
--s3-bucket-namemy-bucket
--is-multi-region-trail出力:
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のCreateTrail
」を参照してください。
-
次のコード例は、delete-trail
を使用する方法を示しています。
- AWS CLI
-
証跡を削除するには
次の
delete-trail
コマンドは、 という名前の証跡を削除しますTrail1
。aws cloudtrail delete-trail --name
Trail1
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のDeleteTrail
」を参照してください。
-
次の例は、describe-trails
を使用する方法を説明しています。
- AWS CLI
-
証跡を記述するには
次の
describe-trails
コマンドは、Trail1
と の設定を返しますTrail2
。aws cloudtrail describe-trails --trail-name-list
Trail1
Trail2
出力:
{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Role", "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:*", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" }, { "IncludeGlobalServiceEvents": true, "Name": "Trail2", "S3KeyPrefix": "my-prefix", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769", "HomeRegion": "us-east-1" } ] }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のDescribeTrails
」を参照してください。
-
次の例は、get-event-selectors
を使用する方法を説明しています。
- AWS CLI
-
証跡のイベントセレクタ設定を表示するには
次の
get-event-selectors
コマンドは、 の設定を返しますTrail1
。aws cloudtrail get-event-selectors --trail-name
Trail1
出力:
{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のGetEventSelectors
」を参照してください。
-
次の例は、get-trail-status
を使用する方法を説明しています。
- AWS CLI
-
証跡のステータスを取得するには
次の
get-trail-status
コマンドは、 の配信とログ記録の詳細を返しますTrail1
。aws cloudtrail get-trail-status --name
Trail1
出力:
{ "LatestNotificationTime": 1454022144.869, "LatestNotificationAttemptSucceeded": "2016-01-28T23:02:24Z", "LatestDeliveryAttemptTime": "2016-01-28T23:02:24Z", "LatestDeliveryTime": 1454022144.869, "TimeLoggingStarted": "2015-11-06T18:36:38Z", "LatestDeliveryAttemptSucceeded": "2016-01-28T23:02:24Z", "IsLogging": true, "LatestCloudWatchLogsDeliveryTime": 1454022144.918, "StartLoggingTime": 1446834998.695, "StopLoggingTime": 1446834996.933, "LatestNotificationAttemptTime": "2016-01-28T23:02:24Z", "TimeLoggingStopped": "2015-11-06T18:36:36Z" }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のGetTrailStatus
」を参照してください。
-
次のコード例は、list-public-keys
を使用する方法を示しています。
- AWS CLI
-
証跡のすべてのパブリックキーを一覧表示するには
次の
list-public-keys
コマンドは、プライベートキーが指定された時間範囲内でダイジェストファイルに署名するために使用されたすべてのパブリックキーを返します。aws cloudtrail list-public-keys --start-time
2016-01-01T20:30:00.000Z
出力:
{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のListPublicKeys
」を参照してください。
-
次の例は、list-tags
を使用する方法を説明しています。
- AWS CLI
-
証跡のタグを一覧表示するには
次の
list-tags
コマンドは、Trail1
と のタグを一覧表示しますTrail2
。aws cloudtrail list-tags --resource-id-list
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2
出力:
{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "name" }, { "Value": "us", "Key": "location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "name" } ] } ] }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のListTags
」を参照してください。
-
次の例は、lookup-events
を使用する方法を説明しています。
- AWS CLI
-
証跡のイベントを検索するには
次の
lookup-events
コマンドは、 属性 で API アクティビティイベントを検索しますEventName
。aws cloudtrail lookup-events --lookup-attributes
AttributeKey=EventName,AttributeValue=ConsoleLogin
出力:
{ "Events": [ { "EventId": "654ccbc0-ba0d-486a-9076-dbf7274677a7", "Username": "my-session-name", "EventTime": "2021-11-18T09:41:02-08:00", "CloudTrailEvent": "{\"eventVersion\":\"1.02\",\"userIdentity\":{\"type\":\"AssumedRole\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4:my-session-name\",\"arn\":\"arn:aws:sts::123456789012:assumed-role/my-role/my-session-name\",\"accountId\":\"123456789012\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2016-01-26T21:42:12Z\"},\"sessionIssuer\":{\"type\":\"Role\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4\",\"arn\":\"arn:aws:iam::123456789012:role/my-role\",\"accountId\":\"123456789012\",\"userName\":\"my-role\"}}},\"eventTime\":\"2016-01-26T21:42:12Z\",\"eventSource\":\"signin.amazonaws.com\",\"eventName\":\"ConsoleLogin\",\"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"72.21.198.70\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36\",\"requestParameters\":null,\"responseElements\":{\"ConsoleLogin\":\"Success\"},\"additionalEventData\":{\"MobileVersion\":\"No\",\"MFAUsed\":\"No\"},\"eventID\":\"654ccbc0-ba0d-486a-9076-dbf7274677a7\",\"eventType\":\"AwsConsoleSignIn\",\"recipientAccountId\":\"123456789012\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のLookupEvents
」を参照してください。
-
次のコード例は、put-event-selectors
を使用する方法を示しています。
- AWS CLI
-
例 1: アドバンストイベントセレクタを使用して、管理イベントとデータイベントを記録する証跡を設定する
アドバンストイベントセレクタとアドバンストイベントセレクタの条件を追加でき、証跡のすべての条件とセレクタに最大 500 個の値を追加できます。アドバンストイベントセレクタを使用して、使用可能なすべてのデータイベントタイプをログに記録することができます。高度なイベントセレクターまたは基本的なイベントセレクターのいずれかを使用できますが、両方を使用することはできません。高度なイベントセレクターを証跡に適用すると、既存の基本的なイベントセレクターは上書きされます。
次の例では、 という名前の証跡のアドバンストイベントセレクタを作成し、すべての管理イベントをログ
myTrail
に記録し、1 つの S3 バケットを除くすべての S3 PutObject および DeleteObject API Word呼び出しをログに記録し、 という名前の Lambda 関数の API 呼び出しのデータを記録しmyFunction
、 という名前の SNS トピックの API 呼び出しの発行を記録しますmyTopic
。aws cloudtrail put-event-selectors \ --trail-name
myTrail
\ --advanced-event-selectors '[{"Name": "Log all 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", "NotStartsWith": ["arn:aws:s3:::sample_bucket_name/"] }]},{"Name": "Log data events for a specific Lambda function","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:123456789012:function:myFunction"] }]},{"Name": "Log all Publish API calls on a specific SNS topic","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::SNS::Topic"] },{ "Field": "eventName", "Equals": ["Publish"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:sns:us-east-1:123456789012:myTopic.fifo"] }]}]
'出力:
{ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/myTrail", "AdvancedEventSelectors": [ { "Name": "Log all 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", "NotStartsWith": [ "arn:aws:s3:::sample_bucket_name/" ] } ] }, { "Name": "Log data events for a specific Lambda function", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-1:123456789012:function:myFunction" ] } ] }, { "Name": "Log all Publish API calls on a specific SNS topic", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::SNS::Topic" ] }, { "Field": "eventName", "Equals": [ "Publish" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:sns:us-east-1:123456789012:myTopic.fifo" ] } ] } ] }
詳細については、AWS CloudTrail ユーザーガイド」の「高度なイベントセレクタを使用してイベントをログに記録する」を参照してください。
例 2: すべての管理イベントとデータイベントを記録するように証跡のイベントセレクタを設定する
証跡あたり最大 5 つのイベントセレクタと、証跡あたり最大 250 の データリソースを設定できます。イベントセレクタは、基本的なイベントセレクタとも呼ばれます。イベントセレクタを使用して、S3 オブジェクト、Lambda 関数、および DynnamoDB テーブルの管理イベントとデータイベントを記録できます。他のリソースタイプのデータイベントを記録するには、アドバンストイベントセレクタを使用する必要があります。
次の例では、 という名前の証跡のイベントセレクタを作成し、すべての管理イベント、2 つの Amazon S3 バケット/プレフィックスの組み合わせのデータイベント、および という名前の単一の AWS Lambda 関数のデータイベント
TrailName
を含めますhello-world-python-function
。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": [ { "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" }
詳細については、AWS CloudTrail ユーザーガイド」の「基本的なイベントセレクタを使用してイベントをログに記録する」を参照してください。
例 3: 管理イベント、S3 オブジェクト上のすべての S3 データイベント、およびアカウントの関数上のすべての Lambda データイベントを記録する証跡のイベントセレクタを設定する
次の例では、アカウント内のすべての Amazon S3 バケットと AWS Lambda 関数のすべての管理イベントとすべてのデータイベント
TrailName2
を含む という名前の証跡のイベントセレクタを作成します AWS 。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"]}]}]
'出力:
{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }
詳細については、AWS CloudTrail ユーザーガイドの「基本的なイベントセレクタを使用してイベントをログに記録する」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のPutEventSelectors
」を参照してください。
-
次のコード例は、remove-tags
を使用する方法を示しています。
- AWS CLI
-
証跡のタグを削除するには
次の
remove-tags
コマンドは、 に指定されたタグを削除しますTrail1
。aws cloudtrail remove-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name
Key=location
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のRemoveTags
」を参照してください。
-
次の例は、start-logging
を使用する方法を説明しています。
- AWS CLI
-
証跡のログ記録を開始するには
次の
start-logging
コマンドは、 のログ記録を有効にしますTrail1
。aws cloudtrail start-logging --name
Trail1
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のStartLogging
」を参照してください。
-
次のコード例は、stop-logging
を使用する方法を示しています。
- AWS CLI
-
証跡のログ記録を停止するには
次の
stop-logging
コマンドは、 のログ記録をオフにしますTrail1
。aws cloudtrail stop-logging --name
Trail1
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のStopLogging
」を参照してください。
-
次の例は、update-subscription
を使用する方法を説明しています。
- AWS CLI
-
証跡の設定を更新するには
次の
update-subscription
コマンドは、証跡を更新して新しい S3 バケットと SNS トピックを指定します。aws cloudtrail update-subscription --name
Trail1
--s3-new-bucketmy-bucket-new
--sns-new-topicmy-topic-new
出力:
Setting up new S3 bucket my-bucket-new... Setting up new SNS topic my-topic-new... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket-new", "SnsTopicName": "my-topic-new", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879" } }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdateSubscription
」を参照してください。
-
次のコード例は、update-trail
を使用する方法を示しています。
- AWS CLI
-
証跡を更新するには
次の
update-trail
コマンドは、ログ配信に既存のバケットを使用するように証跡を更新します。aws cloudtrail update-trail --name
Trail1
--s3-bucket-namemy-bucket
出力:
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdateTrail
」を参照してください。
-
次の例は、validate-logs
を使用する方法を説明しています。
- AWS CLI
-
ログファイルを検証するには
次の
validate-logs
コマンドは、 のログを検証しますTrail1
。aws cloudtrail validate-logs --trail-arn
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--start-time20160129T19:00:00Z
出力:
Validating log files for trail arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 between 2016-01-29T19:00:00Z and 2016-01-29T22:15:43Z Results requested for 2016-01-29T19:00:00Z to 2016-01-29T22:15:43Z Results found for 2016-01-29T19:24:57Z to 2016-01-29T21:24:57Z: 3/3 digest files valid 15/15 log files valid
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のValidateLogs
」を参照してください。
-