CloudTrail contoh menggunakan AWS CLI - AWS SDKContoh Kode

Ada lebih banyak AWS SDK contoh yang tersedia di GitHub repo SDKContoh AWS Dokumen.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CloudTrail contoh menggunakan AWS CLI

Contoh kode berikut menunjukkan cara melakukan tindakan dan mengimplementasikan skenario umum dengan menggunakan AWS Command Line Interface with CloudTrail.

Tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan dalam konteks. Sementara tindakan menunjukkan cara memanggil fungsi layanan individual, Anda dapat melihat tindakan dalam konteks dalam skenario terkait.

Setiap contoh menyertakan tautan ke kode sumber lengkap, di mana Anda dapat menemukan instruksi tentang cara mengatur dan menjalankan kode dalam konteks.

Tindakan

Contoh kode berikut menunjukkan cara menggunakanadd-tags.

AWS CLI

Untuk menambahkan tag ke jejak

add-tagsPerintah berikut menambahkan tag untukTrail1:

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name,Value=Alice Key=location,Value=us
  • Untuk API detailnya, lihat AddTagsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakancreate-subscription.

AWS CLI

Untuk membuat dan mengonfigurasi AWS sumber daya untuk jejak

create-subscriptionPerintah berikut membuat bucket dan SNS topik S3 baru untukTrail1:

aws cloudtrail create-subscription --name Trail1 --s3-new-bucket my-bucket --sns-new-topic my-topic

Output:

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

Contoh kode berikut menunjukkan cara menggunakancreate-trail.

AWS CLI

Untuk membuat jejak

create-trailPerintah berikut membuat jejak multi-wilayah bernama Trail1 dan menentukan bucket S3:

aws cloudtrail create-trail --name Trail1 --s3-bucket-name my-bucket --is-multi-region-trail

Output:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
  • Untuk API detailnya, lihat CreateTraildi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandelete-trail.

AWS CLI

Untuk menghapus jejak

delete-trailPerintah berikut menghapus jejak bernamaTrail1:

aws cloudtrail delete-trail --name Trail1
  • Untuk API detailnya, lihat DeleteTraildi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandescribe-trails.

AWS CLI

Untuk menggambarkan jejak

describe-trailsPerintah berikut mengembalikan pengaturan untuk Trail1 danTrail2:

aws cloudtrail describe-trails --trail-name-list Trail1 Trail2

Output:

{ "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" } ] }
  • Untuk API detailnya, lihat DescribeTrailsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanget-event-selectors.

AWS CLI

Untuk melihat setelan pemilih acara untuk jejak

get-event-selectorsPerintah berikut mengembalikan pengaturan untukTrail1:

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakanget-trail-status.

AWS CLI

Untuk mendapatkan status jejak

get-trail-statusPerintah berikut mengembalikan detail pengiriman dan pencatatan untukTrail1:

aws cloudtrail get-trail-status --name Trail1

Output:

{ "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" }
  • Untuk API detailnya, lihat GetTrailStatusdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-public-keys.

AWS CLI

Untuk membuat daftar semua kunci publik untuk jejak

list-public-keysPerintah berikut mengembalikan semua kunci publik yang kunci pribadinya digunakan untuk menandatangani file intisari dalam rentang waktu yang ditentukan:

aws cloudtrail list-public-keys --start-time 2016-01-01T20:30:00.000Z

Output:

{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
  • Untuk API detailnya, lihat ListPublicKeysdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-tags.

AWS CLI

Untuk membuat daftar tag untuk jejak

list-tagsPerintah berikut mencantumkan tag untuk Trail1 danTrail2:

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

Output:

{ "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" } ] } ] }
  • Untuk API detailnya, lihat ListTagsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlookup-events.

AWS CLI

Untuk mencari acara untuk jejak

lookup-eventsPerintah berikut mencari peristiwa API aktivitas berdasarkan atributEventName:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin

Output:

{ "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": [] } ] }
  • Untuk API detailnya, lihat LookupEventsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanput-event-selectors.

AWS CLI

Contoh 1: Konfigurasikan jejak untuk mencatat peristiwa manajemen dan peristiwa data dengan menggunakan pemilih acara lanjutan

Anda dapat menambahkan pemilih acara lanjutan, dan kondisi untuk pemilih acara lanjutan Anda, hingga maksimum 500 nilai untuk semua kondisi dan penyeleksi di jalur. Anda dapat menggunakan pemilih acara lanjutan untuk mencatat semua jenis peristiwa data yang tersedia. Anda dapat menggunakan penyeleksi acara lanjutan atau pemilih acara dasar, tetapi tidak keduanya. Jika Anda menerapkan penyeleksi acara lanjutan ke jejak, pemilih acara dasar apa pun yang ada akan ditimpa.

Contoh berikut membuat pemilih peristiwa lanjutan untuk jejak bernama myTrail untuk mencatat semua peristiwa manajemen, log S3 PutObject dan DeleteObject API panggilan untuk semua kecuali satu bucket S3, API panggilan data log untuk fungsi Lambda bernamamyFunction, dan log Publish API panggilan pada topik bernama. SNS 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"] }]}]'

Output:

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

Untuk informasi selengkapnya, lihat Log peristiwa menggunakan pemilih peristiwa lanjutan di Panduan AWS CloudTrail Pengguna.

Contoh 2: Konfigurasikan penyeleksi acara untuk jejak untuk mencatat semua peristiwa manajemen dan peristiwa data

Anda dapat mengonfigurasi hingga 5 penyeleksi acara untuk jejak dan hingga 250 sumber daya data untuk jejak. Penyeleksi acara juga disebut sebagai pemilih acara dasar. Anda dapat menggunakan pemilih peristiwa untuk mencatat peristiwa manajemen dan peristiwa data untuk objek S3, fungsi Lambda, dan tabel DynnamoDB. Untuk mencatat peristiwa data untuk jenis sumber daya lainnya, Anda harus menggunakan pemilih acara lanjutan.

Contoh berikut membuat pemilih peristiwa untuk jejak bernama untuk menyertakan semua peristiwa manajemen, peristiwa data TrailName untuk dua kombinasi bucket/awalan Amazon S3, dan peristiwa data untuk satu fungsi Lambda bernama. AWS 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"]}]}]'

Output:

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

Untuk informasi selengkapnya, lihat Log peristiwa menggunakan pemilih acara dasar di Panduan AWS CloudTrail Pengguna.

Contoh 3: Konfigurasikan penyeleksi peristiwa untuk jejak untuk mencatat peristiwa manajemen, semua peristiwa data S3 pada objek S3, dan semua peristiwa data Lambda pada fungsi di akun Anda

Contoh berikut membuat pemilih peristiwa untuk jejak bernama TrailName2 yang mencakup semua peristiwa manajemen, dan semua peristiwa data untuk semua bucket Amazon S3 AWS dan fungsi Lambda di akun. 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"]}]}]'

Output:

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

Untuk informasi selengkapnya, lihat Log peristiwa menggunakan pemilih acara dasar di Panduan AWS CloudTrail Pengguna.

Contoh kode berikut menunjukkan cara menggunakanremove-tags.

AWS CLI

Untuk menghapus tag untuk jejak

remove-tagsPerintah berikut menghapus tag yang ditentukan untukTrail1:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • Untuk API detailnya, lihat RemoveTagsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanstart-logging.

AWS CLI

Untuk memulai pencatatan untuk jalan setapak

start-loggingPerintah berikut mengaktifkan logging untukTrail1:

aws cloudtrail start-logging --name Trail1
  • Untuk API detailnya, lihat StartLoggingdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanstop-logging.

AWS CLI

Untuk berhenti mencatat jejak

stop-loggingPerintah berikut mematikan logging untukTrail1:

aws cloudtrail stop-logging --name Trail1
  • Untuk API detailnya, lihat StopLoggingdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanupdate-subscription.

AWS CLI

Untuk memperbarui pengaturan konfigurasi untuk jejak

update-subscriptionPerintah berikut memperbarui jejak untuk menentukan bucket dan SNS topik S3 baru:

aws cloudtrail update-subscription --name Trail1 --s3-new-bucket my-bucket-new --sns-new-topic my-topic-new

Output:

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

Contoh kode berikut menunjukkan cara menggunakanupdate-trail.

AWS CLI

Untuk memperbarui jejak

update-trailPerintah berikut memperbarui jejak untuk menggunakan bucket yang ada untuk pengiriman log:

aws cloudtrail update-trail --name Trail1 --s3-bucket-name my-bucket

Output:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
  • Untuk API detailnya, lihat UpdateTraildi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanvalidate-logs.

AWS CLI

Untuk memvalidasi file log

validate-logsPerintah berikut memvalidasi log untukTrail1:

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --start-time 20160129T19:00:00Z

Output:

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
  • Untuk API detailnya, lihat ValidateLogsdi Referensi AWS CLI Perintah.