View a markdown version of this page

Enkripsi hasil kueri dengan AWS Key Management Service - CloudWatch Log Amazon

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

Enkripsi hasil kueri dengan AWS Key Management Service

Secara default, CloudWatch Logs mengenkripsi hasil yang disimpan dari kueri CloudWatch Logs Insights menggunakan metode enkripsi sisi server CloudWatch Logs default. Anda dapat memilih untuk menggunakan AWS KMS kunci untuk mengenkripsi hasil ini sebagai gantinya. Jika Anda mengait AWS KMS kan kunci dengan hasil enkripsi, CloudWatch Logs menggunakan kunci tersebut untuk mengenkripsi hasil yang disimpan dari semua kueri di akun.

Jika nanti Anda melepaskan kunci dari hasil kueri, CloudWatch Log akan kembali ke metode enkripsi default untuk kueri selanjutnya. Tetapi kueri yang berjalan saat kunci dikaitkan masih dienkripsi dengan kunci itu. CloudWatch Log masih dapat mengembalikan hasil tersebut setelah kunci KMS dipisahkan, karena CloudWatch Log masih dapat terus mereferensikan kunci. Namun, jika kunci nantinya dinonaktifkan, maka CloudWatch Logs tidak dapat membaca hasil kueri yang dienkripsi dengan kunci tersebut.

penting

CloudWatch Log hanya mendukung kunci KMS simetris. Jangan gunakan kunci asimetris untuk mengenkripsi hasil kueri Anda. Untuk informasi selengkapnya, lihat Menggunakan Kunci Simetris dan Asimetris.

Batas

  • Untuk melakukan langkah-langkah berikut, Anda harus memiliki izin berikut: kms:CreateKey, kms:GetKeyPolicy, dan kms:PutKeyPolicy.

  • Setelah Anda mengaitkan atau memisahkan kunci dari hasil kueri Anda, operasi dapat berlangsung hingga lima menit.

  • Jika Anda mencabut akses CloudWatch Log ke kunci terkait atau menghapus kunci KMS terkait, data terenkripsi Anda di CloudWatch Log tidak dapat lagi diambil.

  • Anda tidak dapat menggunakan CloudWatch konsol untuk mengaitkan kunci, Anda harus menggunakan API AWS CLI atau CloudWatch Logs.

Langkah 1: Buat AWS KMS key

Untuk membuat kunci KMS gunakan perintah create- key berikut:

aws kms create-key

Output berisi ID kunci dan Nama Sumber Daya Amazon (ARN) dari kunci tersebut. Berikut ini adalah output contoh:

{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Langkah 2: Tetapkan izin pada kunci KMS

Secara default, semua kunci KMS bersifat pribadi. Hanya pemilik sumber daya yang dapat menggunakannya untuk mengenkripsi dan mendekripsi data. Namun, pemilik sumber daya dapat memberikan izin untuk mengakses kunci ke pengguna dan sumber daya lain. Dengan langkah ini, Anda memberikan izin utama layanan CloudWatch Logs untuk menggunakan kunci. Prinsip layanan ini harus berada di Wil AWS ayah yang sama tempat kunci disimpan.

Sebagai praktik terbaik, kami menyarankan Anda membatasi penggunaan kunci hanya untuk AWS akun yang Anda tentukan.

Pertama, simpan kebijakan default untuk kunci KMS Anda dengan policy.json menggunakan perintah get- key-policy berikut:

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

Buka file policy.json di editor teks dan tambahkan bagian dalam huruf tebal dari salah satu pernyataan berikut. Pisahkan pernyataan yang ada dari pernyataan baru dengan koma. Pernyataan ini menggunakan Condition bagian untuk meningkatkan keamanan AWS KMS kunci. Untuk informasi selengkapnya, lihat AWS KMS kunci dan konteks enkripsi.

ConditionBagian dalam contoh ini membatasi penggunaan AWS KMS kunci untuk hasil kueri Log CloudWatch s Insights di akun yang ditentukan.

JSON
{ "Version":"2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:logs:us-east-1:111122223333:query-result:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

Terakhir, tambahkan kebijakan yang sudah diperbarui menggunakan perintah put-key-policy berikut:

aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json

Langkah 3: Mengaitkan kunci KMS dengan hasil kueri Anda

Untuk mengaitkan kunci KMS dengan hasil kueri di akun

Gunakan perintah disassociate-kms- key sebagai berikut:

aws logs associate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*" --kms-key-id "key-arn"

Langkah 4: Lepaskan kunci dari hasil kueri di akun

Untuk memisahkan kunci KMS yang terkait dengan hasil kueri, gunakan perintah disassociate-kms-key berikut ini:

aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*"