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 Log mengenkripsi hasil tersimpan dari kueri Wawasan CloudWatch Log Anda menggunakan metode enkripsi sisi server CloudWatch Log default. Anda dapat memilih untuk menggunakan AWS KMS kunci untuk mengenkripsi hasil ini sebagai gantinya. Jika Anda mengaitkan AWS KMS kunci dengan hasil enkripsi Anda, maka CloudWatch Log menggunakan kunci tersebut untuk mengenkripsi hasil yang disimpan dari semua kueri di akun.
Jika nanti Anda memisahkan 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 kemudian dinonaktifkan, maka CloudWatch Log tidak dapat membaca hasil kueri yang dienkripsi dengan kunci itu.
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
, dankms:PutKeyPolicy
. -
Setelah Anda mengaitkan atau memisahkan kunci dari hasil kueri Anda, diperlukan waktu hingga lima menit agar operasi diterapkan.
-
Jika Anda mencabut akses CloudWatch Log ke kunci terkait atau menghapus kunci KMS terkait, data terenkripsi Anda di CloudWatch Log tidak dapat diambil lagi.
-
Anda tidak dapat menggunakan CloudWatch konsol untuk mengaitkan kunci, Anda harus menggunakan AWS CLI atau CloudWatch Logs API.
Langkah 1: Buat AWS KMS key
Untuk membuat kunci KMS gunakan perintah create-key berikut:
aws kms create-key
Output berisi ID kunci dan Amazon Resource Name (ARN) dari kunci. 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 tombol 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 Log untuk menggunakan kunci. Prinsipal layanan ini harus berada di AWS Wilayah yang sama di mana 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 seperti policy.json
menggunakan get-key-policyperintah 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.
Condition
Bagian dalam contoh ini membatasi penggunaan AWS KMS kunci untuk hasil kueri Wawasan CloudWatch Log di akun yang ditentukan.
{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account_ID
: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:region
:account_ID
:query-result:*" }, "StringEquals": { "aws:SourceAccount": "Your_account_ID
" } } } ] }
Terakhir, tambahkan kebijakan yang diperbarui menggunakan put-key-policyperintah berikut:
aws kms put-key-policy --key-id
key-id
--policy-name default --policy file://policy.json
Langkah 3: Kaitkan kunci KMS dengan hasil kueri Anda
Untuk mengaitkan kunci KMS dengan hasil kueri di akun
Gunakan disassociate-kms-keyperintah 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 berikut: disassociate-kms-key
aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:
region
:account-id
:query-result:*"