Konfigurasikan kebijakan AWS KMS utama untuk CloudTrail - AWS CloudTrail

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

Konfigurasikan kebijakan AWS KMS utama untuk CloudTrail

Anda dapat membuat AWS KMS key dalam tiga cara:

  • CloudTrail Konsol

  • Konsol AWS Manajemen

  • The AWS CLI

catatan

Jika Anda membuat KMS kunci di CloudTrail konsol, CloudTrail tambahkan kebijakan KMS kunci yang diperlukan untuk Anda. Anda tidak perlu menambahkan pernyataan kebijakan secara manual. Lihat Kebijakan KMS kunci default dibuat di CloudTrail konsol.

Jika Anda membuat KMS kunci di AWS Manajemen atau AWS CLI, Anda harus menambahkan bagian kebijakan ke kunci sehingga Anda dapat menggunakannya CloudTrail. Kebijakan harus mengizinkan penggunaan kunci CloudTrail untuk mengenkripsi file log dan penyimpanan data peristiwa, dan memungkinkan pengguna yang Anda tentukan untuk membaca file log dalam bentuk yang tidak terenkripsi.

Lihat sumber daya berikut:

Bagian kebijakan KMS utama yang diperlukan untuk digunakan dengan CloudTrail

Jika Anda membuat KMS kunci dengan konsol AWS Manajemen atau AWS CLI, maka Anda harus, setidaknya, menambahkan pernyataan berikut ke kebijakan KMS kunci Anda agar dapat berfungsi CloudTrail.

Elemen kebijakan KMS kunci yang diperlukan untuk jalur

  1. Aktifkan izin enkripsi CloudTrail log. Lihat Memberikan izin enkripsi.

  2. Aktifkan CloudTrail izin dekripsi log. Lihat Memberikan izin dekripsi. Jika Anda menggunakan bucket S3 yang sudah ada dengan Kunci Bucket S3, kms:Decrypt izin diperlukan untuk membuat atau memperbarui jejak dengan SSE - KMS enkripsi diaktifkan.

  3. Aktifkan CloudTrail untuk menggambarkan properti KMS kunci. Lihat Aktifkan CloudTrail untuk menggambarkan properti KMS kunci.

Sebagai praktik terbaik keamanan, tambahkan kunci aws:SourceArn kondisi ke kebijakan KMS kunci. Kunci kondisi IAM global aws:SourceArn membantu memastikan bahwa CloudTrail menggunakan KMS kunci hanya untuk jalur atau jalur tertentu. Nilai aws:SourceArn selalu jejak ARN (atau array jejakARNs) yang menggunakan KMS kunci. Pastikan untuk menambahkan kunci aws:SourceArn kondisi ke kebijakan KMS utama untuk jalur yang ada.

Kunci aws:SourceAccount kondisi juga didukung, tetapi tidak disarankan. Nilai aws:SourceAccount adalah ID akun pemilik jejak, atau untuk jalur organisasi, ID akun manajemen.

penting

Saat Anda menambahkan bagian baru ke kebijakan KMS utama Anda, jangan mengubah bagian yang ada dalam kebijakan.

Jika enkripsi diaktifkan pada jejak, dan KMS kunci dinonaktifkan, atau kebijakan KMS kunci tidak dikonfigurasi dengan benar CloudTrail, CloudTrail tidak dapat mengirimkan log.

Elemen kebijakan KMS kunci yang diperlukan untuk penyimpanan data acara

  1. Aktifkan izin enkripsi CloudTrail log. Lihat Memberikan izin enkripsi.

  2. Aktifkan CloudTrail izin dekripsi log. Lihat Memberikan izin dekripsi.

  3. Berikan izin kepada pengguna dan peran untuk mengenkripsi dan mendekripsi data penyimpanan data peristiwa dengan kunci. KMS

    Saat Anda membuat penyimpanan data peristiwa dan mengenkripsi dengan KMS kunci, atau menjalankan kueri pada penyimpanan data peristiwa yang Anda enkripsi dengan KMS kunci, Anda harus memiliki akses tulis ke kunci. KMS Kebijakan KMS kunci harus memiliki akses ke CloudTrail, dan KMS kunci harus dapat dikelola oleh pengguna yang menjalankan operasi (seperti kueri) di penyimpanan data peristiwa.

  4. Aktifkan CloudTrail untuk menggambarkan properti KMS kunci. Lihat Aktifkan CloudTrail untuk menggambarkan properti KMS kunci.

Kunci aws:SourceArn dan aws:SourceAccount kondisi tidak didukung dalam kebijakan KMS utama untuk penyimpanan data peristiwa.

penting

Saat Anda menambahkan bagian baru ke kebijakan KMS utama Anda, jangan mengubah bagian yang ada dalam kebijakan.

Jika enkripsi diaktifkan pada penyimpanan data peristiwa, dan KMS kunci dinonaktifkan atau dihapus, atau kebijakan KMS kunci tidak dikonfigurasi dengan benar CloudTrail, CloudTrail tidak dapat mengirimkan peristiwa ke penyimpanan data acara Anda.

Memberikan izin enkripsi

contoh Izinkan CloudTrail untuk mengenkripsi log atas nama akun tertentu

CloudTrail memerlukan izin eksplisit untuk menggunakan KMS kunci untuk mengenkripsi log atas nama akun tertentu. Untuk menentukan akun, tambahkan pernyataan wajib berikut ke kebijakan KMS kunci Anda dan ganti account-id, region, dan trailName dengan nilai yang sesuai untuk konfigurasi Anda. Anda dapat menambahkan akun tambahan IDs ke EncryptionContext bagian untuk memungkinkan akun-akun tersebut digunakan CloudTrail untuk menggunakan KMS kunci Anda untuk mengenkripsi file log.

Sebagai praktik terbaik keamanan, tambahkan kunci aws:SourceArn kondisi ke kebijakan KMS kunci untuk jejak. Kunci kondisi IAM global aws:SourceArn membantu memastikan bahwa CloudTrail menggunakan KMS kunci hanya untuk jalur atau jalur tertentu.

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

Kebijakan untuk KMS kunci yang digunakan untuk mengenkripsi log penyimpanan data peristiwa CloudTrail Lake tidak dapat menggunakan kunci kondisi aws:SourceArn atauaws:SourceAccount. Berikut ini adalah contoh kebijakan KMS kunci untuk penyimpanan data peristiwa.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

Contoh pernyataan kebijakan berikut menggambarkan bagaimana akun lain dapat menggunakan KMS kunci Anda untuk mengenkripsi log CloudTrail .

Skenario
  • KMSKunci Anda ada di akun 111111111111.

  • Baik Anda dan akun 222222222222 akan mengenkripsi log.

Dalam kebijakan, Anda menambahkan satu atau beberapa akun yang mengenkripsi dengan kunci Anda ke akun. CloudTrail EncryptionContext Ini membatasi CloudTrail penggunaan kunci Anda untuk mengenkripsi log hanya untuk akun yang Anda tentukan. Saat Anda memberikan root akun 222222222222 izin untuk mengenkripsi log, itu mendelegasikan izin ke administrator akun untuk mengenkripsi izin yang diperlukan untuk pengguna lain di akun itu. Administrator akun melakukan ini dengan mengubah kebijakan yang terkait dengan IAM pengguna tersebut.

Sebagai praktik terbaik keamanan, tambahkan kunci aws:SourceArn kondisi ke kebijakan KMS kunci. Kunci kondisi IAM global aws:SourceArn membantu memastikan bahwa CloudTrail menggunakan KMS kunci hanya untuk jalur yang ditentukan. Kondisi ini tidak didukung dalam kebijakan KMS utama untuk penyimpanan data peristiwa.

KMSpernyataan kebijakan utama:

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

Untuk informasi selengkapnya tentang mengedit kebijakan KMS kunci untuk digunakan CloudTrail, lihat Mengedit kebijakan kunci di Panduan AWS Key Management Service Pengembang.

Memberikan izin dekripsi

Sebelum Anda menambahkan KMS kunci ke CloudTrail konfigurasi Anda, penting untuk memberikan izin dekripsi kepada semua pengguna yang membutuhkannya. Pengguna yang memiliki izin enkripsi tetapi tidak memiliki izin dekripsi tidak dapat membaca log terenkripsi. Jika Anda menggunakan bucket S3 yang sudah ada dengan Kunci Bucket S3, kms:Decrypt izin diperlukan untuk membuat atau memperbarui jejak dengan SSE - KMS enkripsi diaktifkan.

Aktifkan CloudTrail izin dekripsi log

Pengguna kunci Anda harus diberikan izin eksplisit untuk membaca file log yang CloudTrail telah dienkripsi. Untuk memungkinkan pengguna membaca log terenkripsi, tambahkan pernyataan wajib berikut ke kebijakan KMS kunci Anda, modifikasi Principal bagian untuk menambahkan baris untuk setiap prinsipal yang ingin Anda dekripsi dengan menggunakan kunci Anda. KMS

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

Berikut ini adalah contoh kebijakan yang diperlukan untuk mengizinkan kepala CloudTrail layanan mendekripsi log jejak.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Kebijakan dekripsi untuk KMS kunci yang digunakan dengan penyimpanan data peristiwa CloudTrail Lake mirip dengan yang berikut ini. Pengguna atau peran ARNs yang ditentukan sebagai nilai untuk Principal perlu mendekripsi izin untuk membuat atau memperbarui penyimpanan data peristiwa, menjalankan kueri, atau mendapatkan hasil kueri.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Berikut ini adalah contoh kebijakan yang diperlukan untuk mengizinkan kepala CloudTrail layanan mendekripsi log penyimpanan data peristiwa.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Izinkan pengguna di akun Anda untuk mendekripsi log jejak dengan kunci Anda KMS

Contoh

Pernyataan kebijakan ini menggambarkan cara mengizinkan pengguna atau peran di akun Anda menggunakan kunci Anda untuk membaca log terenkripsi di bucket S3 akun Anda.

contoh Skenario
  • KMSKunci Anda, ember S3, dan IAM pengguna Bob ada di akun111111111111.

  • Anda memberi izin kepada IAM pengguna Bob untuk mendekripsi CloudTrail log di bucket S3.

Dalam kebijakan kunci, Anda mengaktifkan izin dekripsi CloudTrail log untuk IAM pengguna Bob.

KMSpernyataan kebijakan utama:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
Topik

    Izinkan pengguna di akun lain untuk mendekripsi log jejak dengan kunci Anda KMS

    Anda dapat mengizinkan pengguna di akun lain untuk menggunakan KMS kunci Anda untuk mendekripsi log jejak, tetapi bukan log penyimpanan data peristiwa. Perubahan yang diperlukan pada kebijakan utama Anda bergantung pada apakah bucket S3 ada di akun Anda atau di akun lain.

    Izinkan pengguna bucket di akun lain untuk mendekripsi log

    Contoh

    Pernyataan kebijakan ini menggambarkan cara mengizinkan IAM pengguna atau peran di akun lain menggunakan kunci Anda untuk membaca log terenkripsi dari bucket S3 di akun lain.

    Skenario
    • KMSKunci Anda ada di akun111111111111.

    • IAMPengguna Alice dan S3 bucket ada di akun. 222222222222

    Dalam hal ini, Anda memberikan CloudTrail izin untuk mendekripsi log di bawah akun222222222222, dan Anda memberikan izin kebijakan IAM pengguna Alice untuk menggunakan kunci AndaKeyA, yang ada di akun. 111111111111

    KMSpernyataan kebijakan utama:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Pernyataan kebijakan IAM pengguna Alice:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    Izinkan pengguna di akun lain untuk mendekripsi log jejak dari bucket Anda

    contoh

    Kebijakan ini menggambarkan bagaimana akun lain dapat menggunakan kunci Anda untuk membaca log terenkripsi dari bucket S3 Anda.

    contoh Skenario
    • KMSKunci dan ember S3 Anda ada di akun111111111111.

    • Pengguna yang membaca log dari bucket Anda ada di akun222222222222.

    Untuk mengaktifkan skenario ini, Anda mengaktifkan izin dekripsi untuk IAM peran CloudTrailReadRoledi akun Anda, lalu berikan izin akun lain untuk mengambil peran tersebut.

    KMSpernyataan kebijakan utama:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    CloudTrailReadRolepernyataan kebijakan entitas kepercayaan:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    Untuk informasi tentang mengedit kebijakan KMS kunci untuk digunakan CloudTrail, lihat Mengedit Kebijakan Kunci di Panduan AWS Key Management Service Pengembang.

    Aktifkan CloudTrail untuk menggambarkan properti KMS kunci

    CloudTrail membutuhkan kemampuan untuk menggambarkan sifat-sifat KMS kunci. Untuk mengaktifkan fungsionalitas ini, tambahkan pernyataan wajib berikut sebagaimana adanya ke kebijakan KMS utama Anda. Pernyataan ini tidak memberikan izin CloudTrail apa pun di luar izin lain yang Anda tentukan.

    Sebagai praktik terbaik keamanan, tambahkan kunci aws:SourceArn kondisi ke kebijakan KMS kunci. Kunci kondisi IAM global aws:SourceArn membantu memastikan bahwa CloudTrail menggunakan KMS kunci hanya untuk jalur atau jalur tertentu.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    Untuk informasi selengkapnya tentang mengedit kebijakan KMS utama, lihat Mengedit Kebijakan Kunci di Panduan AWS Key Management Service Pengembang.