Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat integrasi untuk mencatat peristiwa dari luar AWS dengan AWS CLI
Bagian ini menjelaskan bagaimana Anda dapat menggunakan AWS CLI untuk membuat integrasi CloudTrail Lake untuk mencatat peristiwa dari luar AWS.
Dalam AWS CLI, Anda membuat integrasi dalam empat perintah (tiga jika Anda sudah memiliki penyimpanan data acara yang memenuhi kriteria). Penyimpanan data peristiwa yang Anda gunakan sebagai tujuan integrasi harus untuk satu Wilayah dan akun tunggal; mereka tidak dapat multi-wilayah, mereka tidak dapat mencatat peristiwa untuk organisasi AWS Organizations, dan mereka hanya dapat menyertakan peristiwa aktivitas. Jenis acara di konsol harus Peristiwa dari integrasi. DalamAPI, eventCategory
nilainya harusActivityAuditLog
. Untuk informasi selengkapnya tentang integrasi, lihatBuat integrasi dengan sumber acara di luar AWS.
-
Jalankan create-event-data-store
untuk membuat penyimpanan data acara, jika Anda belum memiliki satu atau lebih penyimpanan data acara yang dapat Anda gunakan untuk integrasi. AWS CLI Perintah contoh berikut membuat penyimpanan data peristiwa yang mencatat peristiwa dari luar AWS. Untuk peristiwa aktivitas, nilai pemilih
eventCategory
bidang adalahActivityAuditLog
. Penyimpanan data acara memiliki periode retensi 90 hari yang ditetapkan. Secara default, penyimpanan data acara mengumpulkan peristiwa dari semua Wilayah, tetapi karena ini mengumpulkan AWS non-peristiwa, atur ke satu Wilayah dengan menambahkan--no-multi-region-enabled
opsi. Perlindungan penghentian diaktifkan secara default, dan penyimpanan data acara tidak mengumpulkan peristiwa untuk akun di organisasi.aws cloudtrail create-event-data-store \ --name my-event-data-store \ --no-multi-region-enabled \ --retention-period 90 \ --advanced-event-selectors '[ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["ActivityAuditLog"] } ] } ]'
Berikut ini adalah contoh respons.
{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "AdvancedEventSelectors": [ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "ActivityAuditLog" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }
Anda memerlukan ID penyimpanan data peristiwa (akhiran dariARN, atau
EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE
dalam contoh respons sebelumnya) untuk melanjutkan ke langkah berikutnya dan membuat saluran Anda. -
Jalankan create-channel
perintah untuk membuat saluran yang memungkinkan mitra atau aplikasi sumber untuk mengirim acara ke penyimpanan data acara di CloudTrail. Saluran memiliki komponen-komponen berikut:
- Sumber
-
CloudTrail menggunakan informasi ini untuk menentukan mitra yang mengirimkan data acara atas nama Anda. CloudTrail Sumber diperlukan, dan dapat berupa
Custom
untuk semua AWS non-acara yang valid, atau nama sumber acara mitra. Maksimal satu saluran diperbolehkan per sumber.Untuk informasi tentang
Source
nilai untuk mitra yang tersedia, lihatInformasi tambahan tentang mitra integrasi. - Status konsumsi
-
Status saluran menunjukkan kapan peristiwa terakhir diterima dari sumber saluran.
- Destinasi
-
Tujuannya adalah penyimpanan data acara CloudTrail Danau yang menerima acara dari saluran. Anda dapat mengubah penyimpanan data acara tujuan untuk saluran.
Untuk berhenti menerima acara dari sumber, hapus saluran.
Anda memerlukan ID setidaknya satu penyimpanan data acara tujuan untuk menjalankan perintah ini. Jenis tujuan yang valid adalah
EVENT_DATA_STORE
. Anda dapat mengirim peristiwa yang dicerna ke lebih dari satu penyimpanan data acara. Contoh perintah berikut membuat saluran yang mengirimkan peristiwa ke dua penyimpanan data peristiwa, diwakili oleh mereka IDs dalamLocation
atribut--destinations
parameter. Diperlukan--destinations
--name
,, dan--source
parameter. Untuk menelan acara dari CloudTrail pasangan, tentukan nama mitra sebagai nilai.--source
Untuk menelan peristiwa dari aplikasi Anda sendiri di luar AWS, tentukanCustom
sebagai nilai.--source
aws cloudtrail create-channel \ --region us-east-1 \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]' --name my-partner-channel \ --source $partnerSourceName \
Dalam menanggapi create-channel perintah Anda, salin ARN saluran baru. Anda perlu ARN untuk menjalankan
put-audit-events
perintahput-resource-policy
dan di langkah berikutnya. -
Jalankan put-resource-policyperintah untuk melampirkan kebijakan sumber daya ke saluran. Kebijakan sumber daya adalah dokumen JSON kebijakan yang menentukan tindakan apa yang dapat dilakukan oleh prinsipal tertentu pada sumber daya dan dalam kondisi apa. Akun yang didefinisikan sebagai prinsipal dalam kebijakan sumber daya saluran dapat memanggil
PutAuditEvents
API untuk menyampaikan peristiwa.catatan
Jika Anda tidak membuat kebijakan sumber daya untuk saluran, hanya pemilik saluran yang dapat memanggil saluran tersebut.
PutAuditEvents
APIInformasi yang diperlukan untuk kebijakan ditentukan oleh jenis integrasi.
-
Untuk integrasi arah, CloudTrail mewajibkan kebijakan untuk memuat AWS akun mitraIDs, dan mengharuskan Anda memasukkan ID eksternal unik yang disediakan oleh mitra. CloudTrail secara otomatis menambahkan AWS akun mitra IDs ke kebijakan sumber daya saat Anda membuat integrasi menggunakan CloudTrail konsol. Lihat dokumentasi mitra untuk mempelajari cara mendapatkan nomor AWS akun yang diperlukan untuk kebijakan tersebut.
-
Untuk integrasi solusi, Anda harus menentukan setidaknya satu ID AWS akun sebagai prinsipal, dan secara opsional dapat memasukkan ID eksternal untuk mencegah wakil yang bingung.
Berikut ini adalah persyaratan untuk kebijakan sumber daya:
-
Sumber daya ARN yang ditentukan dalam kebijakan harus sesuai dengan ARN saluran yang dilampirkan kebijakan.
-
Kebijakan ini hanya berisi satu tindakan: cloudtrail-data: PutAuditEvents
-
Kebijakan tersebut berisi setidaknya satu pernyataan. Kebijakan tersebut dapat memiliki maksimal 20 pernyataan.
-
Setiap pernyataan berisi setidaknya satu prinsipal. Sebuah pernyataan dapat memiliki maksimal 50 kepala sekolah.
aws cloudtrail put-resource-policy \ --resource-arn "channelARN" \ --policy "{ "Version": "2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b", "Condition": { "StringEquals": { "cloudtrail:ExternalId": "UniqueExternalIDFromPartner" } } } ] }"
Untuk informasi selengkapnya tentang kebijakan sumber daya, lihatAWS CloudTrail contoh kebijakan berbasis sumber daya.
-
-
Jalankan
PutAuditEvents
APIuntuk menelan acara aktivitas Anda ke dalam CloudTrail. Anda memerlukan muatan acara yang CloudTrail ingin Anda tambahkan. Pastikan bahwa tidak ada informasi sensitif atau pengenal pribadi dalam muatan acara sebelum menelannya. CloudTrail Perhatikan bahwaPutAuditEvents
API menggunakancloudtrail-data
CLI titik akhir, bukan titikcloudtrail
akhir.Contoh berikut menunjukkan cara menggunakan put-audit-events CLI perintah. Parameter --audit-events dan --channel-arn diperlukan. --external-idParameter diperlukan jika ID eksternal didefinisikan dalam kebijakan sumber daya. Anda memerlukan ARN saluran yang Anda buat pada langkah sebelumnya. Nilai --audit-events adalah JSON array objek acara.
--audit-events
menyertakan ID yang diperlukan dari acara, muatan acara yang diperlukan sebagai nilaiEventData
, dan checksum opsional untuk membantu memvalidasi integritas acara setelah masuk ke dalam. CloudTrailaws cloudtrail-data put-audit-events \ --channel-arn $ChannelArn \ --external-id $UniqueExternalIDFromPartner \ --audit-events \ id="event_ID",eventData='"{event_payload}"' \ id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"
Berikut ini adalah contoh perintah dengan dua contoh acara.
aws cloudtrail-data put-audit-events \ --channel-arn arn:aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --external-id UniqueExternalIDFromPartner \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"
Contoh perintah berikut menambahkan
--cli-input-json
parameter untuk menentukan JSON file (custom-events.json
) dari payload acara.aws cloudtrail-data put-audit-events --channel-arn $channelArn --external-id $UniqueExternalIDFromPartner --cli-input-json file://custom-events.json --region us-east-1
Berikut ini adalah isi sampel dari JSON file contoh,
custom-events.json
.{ "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"12.34.56.78\",\"recipientAccountId\":\"152089810396\"}", "id": "1" } ] }
Anda dapat memverifikasi bahwa integrasi berfungsi, dan CloudTrail menelan peristiwa dari sumber dengan benar, dengan menjalankan get-channel
aws cloudtrail get-channel --channel arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE
(Opsional) Hitung nilai checksum
Checksum yang Anda tentukan sebagai nilai EventDataChecksum
dalam PutAuditEvents
permintaan membantu Anda memverifikasi bahwa CloudTrail menerima peristiwa yang cocok dengan checksum; ini membantu memverifikasi integritas peristiwa. Nilai checksum adalah SHA256 algoritma base64- yang Anda hitung dengan menjalankan perintah berikut.
printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"
source_IP_address
\", \"recipientAccountId\":\"recipient_account_ID
\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64
Perintah mengembalikan checksum. Berikut adalah contohnya.
EXAMPLEDHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=
Nilai checksum menjadi nilai EventDataChecksum
dalam PutAuditEvents
permintaan Anda. Jika checksum tidak cocok dengan checksum untuk acara yang disediakan, CloudTrail tolak acara dengan kesalahanInvalidChecksum
.