Memvalidasi integritas file CloudTrail log dengan AWS CLI - AWS CloudTrail

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

Memvalidasi integritas file CloudTrail log dengan AWS CLI

Untuk memvalidasi log dengan AWS Command Line Interface, gunakan CloudTrail validate-logs perintah. Perintah menggunakan file intisari yang dikirimkan ke bucket Amazon S3 Anda untuk melakukan validasi. Untuk informasi tentang file digest, lihatCloudTrail struktur file digest.

AWS CLI Ini memungkinkan Anda mendeteksi jenis perubahan berikut:

  • Modifikasi atau penghapusan file log CloudTrail

  • Modifikasi atau penghapusan file digest CloudTrail

  • Modifikasi atau penghapusan kedua hal di atas

catatan

AWS CLI Memvalidasi hanya file log yang direferensikan oleh file digest. Untuk informasi selengkapnya, lihat Memeriksa apakah file tertentu dikirim oleh CloudTrail.

Prasyarat

Untuk memvalidasi integritas file log dengan AWS CLI, kondisi berikut harus dipenuhi:

  • Anda harus memiliki konektivitas online untuk AWS.

  • Anda harus memiliki akses baca ke bucket Amazon S3 yang berisi file intisari dan log.

  • File intisari dan log tidak boleh dipindahkan dari lokasi Amazon S3 asli CloudTrail tempat mengirimkannya.

catatan

File log yang telah diunduh ke disk lokal tidak dapat divalidasi dengan file. AWS CLI Untuk panduan tentang membuat alat Anda sendiri untuk validasi, lihatImplementasi kustom validasi integritas file CloudTrail log.

validasi-log

Sintaks

Berikut ini adalah sintaks untukvalidate-logs. Parameter opsional ditampilkan dalam tanda kurung.

aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <DOC-EXAMPLE-BUCKET>] [--s3-prefix <prefix>] [--account-id <account-id>] [--verbose]

catatan

validate-logsPerintahnya spesifik Wilayah. Anda harus menentukan opsi --region global untuk memvalidasi log untuk spesifik Wilayah AWS.

Opsi

Berikut ini adalah opsi baris perintah untuk. validate-logs --start-timePilihan --trail-arn dan diperlukan. --account-idOpsi ini juga diperlukan untuk jalur organisasi.

--start-time

Menentukan bahwa file log dikirim pada atau setelah nilai timestamp UTC tertentu akan divalidasi. Contoh:2015-01-08T05:21:42Z.

--end-time

Secara opsional menentukan bahwa file log yang dikirimkan pada atau sebelum nilai stempel waktu UTC yang ditentukan akan divalidasi. Nilai default adalah waktu UTC saat ini (Date.now()). Contoh:2015-01-08T12:31:41Z.

catatan

Untuk rentang waktu yang ditentukan, validate-logs perintah hanya memeriksa file log yang direferensikan dalam file intisari yang sesuai. Tidak ada file log lain di bucket Amazon S3 yang diperiksa. Untuk informasi selengkapnya, lihat Memeriksa apakah file tertentu dikirim oleh CloudTrail.

--s3-bucket

Secara opsional menentukan bucket Amazon S3 tempat file digest disimpan. Jika nama bucket tidak ditentukan, AWS CLI maka akan mengambilnya dengan meneleponDescribeTrails().

--s3-prefix

Secara opsional menentukan awalan Amazon S3 tempat file intisari disimpan. Jika tidak ditentukan, AWS CLI akan mengambilnya dengan meneleponDescribeTrails().

catatan

Anda harus menggunakan opsi ini hanya jika awalan Anda saat ini berbeda dari awalan yang digunakan selama rentang waktu yang Anda tentukan.

--account-id

Opsional menentukan akun untuk memvalidasi log. Parameter ini diperlukan untuk jejak organisasi untuk memvalidasi log untuk akun tertentu di dalam organisasi.

--trail-arn

Menentukan Nama Sumber Daya Amazon (ARN) dari jejak yang akan divalidasi. Format jejak ARN berikut.

arn:aws:cloudtrail:us-east-2:111111111111:trail/MyTrailName
catatan

Untuk mendapatkan jejak ARN untuk jejak, Anda dapat menggunakan describe-trails perintah sebelum menjalankan. validate-logs

Anda mungkin ingin menentukan nama bucket dan awalan selain jejak ARN jika file log telah dikirim ke lebih dari satu bucket dalam rentang waktu yang Anda tentukan, dan Anda ingin membatasi validasi ke file log hanya di salah satu bucket.

--verbose

Secara opsional mengeluarkan informasi validasi untuk setiap file log atau digest dalam rentang waktu yang ditentukan. Output menunjukkan apakah file tetap tidak berubah atau telah dimodifikasi atau dihapus. Dalam mode non-verbose (default), informasi dikembalikan hanya untuk kasus-kasus di mana ada kegagalan validasi.

Contoh

Contoh berikut memvalidasi file log dari waktu mulai yang ditentukan hingga saat ini, menggunakan bucket Amazon S3 yang dikonfigurasi untuk jejak saat ini dan menentukan keluaran verbose.

aws cloudtrail validate-logs --start-time 2015-08-27T00:00:00Z --end-time 2015-08-28T00:00:00Z --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/my-trail-name --verbose

Cara kerja validate-logs

validate-logsPerintah dimulai dengan memvalidasi file intisari terbaru dalam rentang waktu yang ditentukan. Pertama, ini memverifikasi bahwa file intisari telah diunduh dari lokasi yang diklaimnya. Dengan kata lain, jika CLI mengunduh file digest df1 dari lokasi S3, validate-logs akan p1 memverifikasinya. p1 == df1.digestS3Bucket + '/' + df1.digestS3Object

Jika tanda tangan file intisari valid, ia memeriksa nilai hash dari masing-masing log yang direferensikan dalam file intisari. Perintah kemudian kembali ke masa lalu, memvalidasi file intisari sebelumnya dan file log yang direferensikan secara berurutan. Ini berlanjut sampai nilai yang ditentukan untuk start-time tercapai, atau sampai rantai digest berakhir. Jika file intisari hilang atau tidak valid, rentang waktu yang tidak dapat divalidasi ditunjukkan dalam output.

Hasil validasi

Hasil validasi dimulai dengan header ringkasan dalam format berikut:

Validating log files for trail trail_ARN between time_stamp and time_stamp

Setiap baris output utama berisi hasil validasi untuk satu intisari atau file log dalam format berikut:

<Digest file | Log file> <S3 path> <Validation Message>

Tabel berikut menjelaskan kemungkinan pesan validasi untuk file log dan digest.

Jenis File Pesan Validasi Deskripsi
Digest file valid Tanda tangan file digest valid. File log yang direferensikannya dapat diperiksa. Pesan ini hanya disertakan dalam mode verbose.
Digest file INVALID: has been moved from its original location Bucket S3 atau objek S3 tempat file digest diambil tidak cocok dengan bucket S3 atau lokasi objek S3 yang direkam dalam file digest itu sendiri.
Digest file INVALID: invalid format Format file digest tidak valid. File log yang sesuai dengan rentang waktu yang diwakili oleh file intisari tidak dapat divalidasi.
Digest file INVALID: not found File digest tidak ditemukan. File log yang sesuai dengan rentang waktu yang diwakili oleh file intisari tidak dapat divalidasi.
Digest file INVALID: public key not found for fingerprint sidik jari Kunci publik yang sesuai dengan sidik jari yang direkam dalam file intisari tidak ditemukan. File digest tidak dapat divalidasi.
Digest file INVALID: signature verification failed Tanda tangan file digest tidak valid. Karena file digest tidak valid, file log yang direferensikannya tidak dapat divalidasi, dan tidak ada pernyataan yang dapat dibuat tentang aktivitas API di dalamnya.
Digest file INVALID: Unable to load PKCS #1 key with fingerprintsidik jari Karena kunci publik yang dikodekan DER dalam format PKCS #1 yang memiliki sidik jari yang ditentukan tidak dapat dimuat, file intisari tidak dapat divalidasi.
Log file valid File log telah divalidasi dan belum dimodifikasi sejak saat pengiriman. Pesan ini hanya disertakan dalam mode verbose.
Log file INVALID: hash value doesn't match Hash untuk file log tidak cocok. File log telah dimodifikasi setelah pengiriman oleh CloudTrail.
Log file INVALID: invalid format Format file log tidak valid. File log tidak dapat divalidasi.
Log file INVALID: not found File log tidak ditemukan dan tidak dapat divalidasi.

Output mencakup informasi ringkasan tentang hasil yang dikembalikan.

Contoh output

Verbose

Contoh validate-logs perintah berikut menggunakan --verbose bendera dan menghasilkan output sampel yang mengikuti. [...]menunjukkan output sampel telah disingkat.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z --verbose
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T201728Z.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1925Z_WZZw1RymnjCRjxXc.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_POuvV87nu6pfAV2W.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1930Z_l2QgXhAKVm1QXiIA.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_eQJteBBrfpBCqOqw.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1950Z_9g5A6qlR2B5KaRdq.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_i4DNCC12BuXd6Ru7.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_Sg5caf2RH6Jdx0EJ.json.gz valid Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T191728Z.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1910Z_YYSFiuFQk4nrtnEW.json.gz valid [...] Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1055Z_0Sfy6m9f6iBzmoPF.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1040Z_lLa3QzVLpOed7igR.json.gz valid Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Digest file s3://DOC-EXAMPLE-BUCKETAWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T091728Z.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T0830Z_eaFvO3dwHo4NCqqc.json.gz valid Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T081728Z.json.gz valid Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T071728Z.json.gz valid [...] Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2245Z_mbJkEO5kNcDnVhGh.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2225Z_IQ6kXy8sKU03RSPr.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2230Z_eRPVRTxHQ5498ROA.json.gz valid Log file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2255Z_IlWawYZGvTWB5vYN.json.gz valid Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/08/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150831T221728Z.json.gz valid Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

Tidak bertele-tele

Contoh validate-logs perintah berikut tidak menggunakan --verbose bendera. Dalam output sampel berikut, satu kesalahan ditemukan. Hanya informasi header, kesalahan, dan ringkasan yang dikembalikan.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://DOC-EXAMPLE-BUCKET/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

Memeriksa apakah file tertentu dikirim oleh CloudTrail

Untuk memeriksa apakah file tertentu dalam bucket Anda dikirimkan oleh CloudTrail, jalankan validate-logs dalam mode verbose untuk periode waktu yang menyertakan file tersebut. Jika file muncul di outputvalidate-logs, maka file tersebut dikirim oleh CloudTrail.