View a markdown version of this page

Enkripsi saat diam untuk OpenTelemetry metrik - Amazon CloudWatch

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

Enkripsi saat diam untuk OpenTelemetry metrik

Apa itu CloudWatch Dataset

OpenTelemetry Metrik (oTel) yang Anda kirim ke Amazon CloudWatch disimpan dalam sumber daya yang disebut Dataset. Setiap Akun AWS memiliki default kumpulan data di setiap Wilayah tempat semua metrik oTEL berada. defaultDataset adalah satu-satunya dataset yang didukung — Anda tidak dapat membuat kumpulan data tambahan.

Kumpulan data dapat dienkripsi dan ditandai seperti AWS sumber daya lainnya. Dataset ARN memiliki format sebagai berikut:

arn:{partition}:cloudwatch:{region}:{account-id}:dataset/default

Untuk melihat konfigurasi enkripsi dataset Anda saat ini, gunakan GetDataset API:

aws cloudwatch get-dataset \ --dataset-identifier default

Jika kunci yang dikelola pelanggan dikaitkan dengan dataset, respons mencakup kunci ARN. Jika tidak ada kunci yang dikelola pelanggan yang dikaitkan, dataset dienkripsi dengan kunci yang AWS dimiliki.

Opsi untuk enkripsi saat istirahat

CloudWatch selalu mengenkripsi data Dataset saat istirahat. Secara default, CloudWatch mengenkripsi semua data saat istirahat menggunakan kunci yang AWS dimiliki. Anda tidak perlu mengambil tindakan apa pun untuk melindungi data Anda menggunakan kunci AWS yang dimiliki. Untuk informasi selengkapnya, lihat kunci yang AWS dimiliki di Panduan AWS Key Management Service Pengembang.

Jika Anda ingin mengelola kunci yang digunakan untuk mengenkripsi data Dataset Anda, Anda dapat menggunakan kunci yang dikelola pelanggan di AWS Key Management Service (AWS KMS). Untuk informasi selengkapnya, lihat Kunci yang dikelola pelanggan di Panduan AWS Key Management Service Pengembang.

Saat Anda menggunakan kunci yang dikelola pelanggan, AWS KMS dikenakan biaya. Untuk informasi selengkapnya tentang harga, silakan lihat harga AWS Key Management Service.

Cara CloudWatch menggunakan kunci yang dikelola pelanggan untuk enkripsi Dataset

penting

Enkripsi kunci yang dikelola pelanggan berlaku untuk default dataset. defaultDataset adalah satu-satunya dataset yang didukung — Anda tidak dapat membuat kumpulan data tambahan.

Saat Anda mengaitkan kunci yang dikelola pelanggan dengan default dataset, gunakan kunci CloudWatch tersebut untuk mengenkripsi semua data metrik oTel yang disimpan dalam kumpulan data tersebut.

CloudWatch menggunakan service principal (cloudwatch.amazonaws.com) secara langsung dengan izin kebijakan utama. CloudWatch tidak menggunakan hibah atau peran IAM untuk mengakses AWS KMS kunci Anda.

CloudWatch tidak menyimpan kunci data. Namun CloudWatch , menyimpan kms:Decrypt respons hingga 15 menit. Perubahan pada kebijakan utama mungkin memerlukan waktu hingga 15 menit untuk berlaku.

CloudWatch menggunakan konteks enkripsi berikut untuk semua operasi AWS KMS kriptografi:

  • Kunci: aws:cloudwatch:arn

  • Nilai: arn:{partition}:cloudwatch:{region}:{account-id}:dataset/default

Mengkonfigurasi kunci yang dikelola pelanggan untuk Dataset

K AWS KMS unci yang Anda gunakan dengan CloudWatch Dataset harus memenuhi persyaratan berikut:

  • Kunci harus berupa kunci enkripsi simetris (SYMMETRIC_DEFAULT) dengan penggunaan kunci ENCRYPT_DECRYPT. Tombol asimetris tidak didukung.

  • Multi-Region kunci tidak didukung.

  • Kuncinya harus Wilayah AWS sama dengan Dataset.

  • Anda harus menentukan kunci sebagai kunci yang sepenuhnya memenuhi syarat ARN. Alias kunci dan ID kunci tidak didukung.

Mengkonfigurasi izin kebijakan utama

Untuk menggunakan kunci yang dikelola pelanggan dengan CloudWatch Dataset, kebijakan kunci harus memberikan CloudWatch izin untuk menggunakan kunci tersebut. Contoh kebijakan utama berikut memberikan izin CloudWatch yang diperlukan dan mencakup perlindungan wakil yang membingungkan.

Penelepon yang mengaitkan atau menggunakan Dataset harus memiliki kms:Decrypt izin, dicakup oleh konteks CloudWatch ViaService dan enkripsi seperti yang ditunjukkan dalam AllowCallerDecrypt pernyataan di bawah ini. Ganti YourApplicationRole dengan peran IAM yang digunakan untuk memanggil CloudWatch Dataset API.

contoh Kebijakan kunci untuk enkripsi CloudWatch Dataset
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudWatchDatasetDescribeKey", "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:region:account-id:dataset/default" } } }, { "Sid": "AllowCloudWatchDatasetEncryption", "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id", "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:region:account-id:dataset/default" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:region:account-id:dataset/default" } } }, { "Sid": "AllowCallerDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/YourApplicationRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cloudwatch.region.amazonaws.com", "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:region:account-id:dataset/default" } } } ] }

Ganti account-id dan region dengan nilai-nilai Anda sendiri.

Untuk informasi selengkapnya tentang kebijakan utama, lihat Kebijakan utama AWS KMS di Panduan Peng AWS Key Management Service embang.

Untuk mengaitkan kunci yang dikelola pelanggan dengan Dataset

Gunakan AssociateDatasetKmsKey API untuk mengaitkan kunci yang dikelola pelanggan dengan Dataset. Anda harus menentukan default sebagai pengidentifikasi dataset.

Untuk mengaitkan kunci yang dikelola pelanggan dengan menggunakan AWS CLI, jalankan perintah berikut:

aws cloudwatch associate-dataset-kms-key \ --dataset-name default \ --kms-key-arn arn:aws:kms:region:account-id:key/key-id

Mengubah atau menghapus konfigurasi enkripsi

Anda dapat mengubah atau menghapus kunci yang dikelola pelanggan yang mengenkripsi data Dataset Anda.

Untuk mengubah kunci yang dikelola pelanggan

Untuk mengganti kunci yang dikelola pelanggan, hubungi AssociateDatasetKmsKey lagi dengan kunci baru ARN. Penelepon harus memiliki kms:Decrypt izin pada kunci saat ini dan kunci baru. CloudWatch mulai menggunakan kunci baru untuk operasi enkripsi berikutnya.

catatan

Jika kunci terkait saat ini telah dihapus, dijadwalkan untuk dihapus, sedang menunggu impor, tidak tersedia, atau telah dinonaktifkan, CloudWatch tidak memerlukan kms:Decrypt izin pada kunci saat ini dan rotasi berlanjut. Jika kunci hanya dinonaktifkan, pertimbangkan untuk mengaktifkannya kembali daripada memutar, karena mengaktifkan kembali memungkinkan CloudWatch untuk melanjutkan dekripsi data metrik yang ada yang dienkripsi dengan kunci tersebut.

Untuk menghapus kunci yang dikelola pelanggan

Untuk menghapus kunci yang dikelola pelanggan dan kembali ke enkripsi kunci yang AWS dimiliki, hubungiDisassociateDatasetKmsKey. Penelepon harus memiliki kms:Decrypt izin pada kunci yang saat ini terkait.

aws cloudwatch disassociate-dataset-kms-key \ --dataset-name default
catatan

Jika kunci terkait saat ini telah dihapus, dijadwalkan untuk dihapus, sedang menunggu impor, tidak tersedia, atau telah dinonaktifkan, CloudWatch tidak memerlukan kms:Decrypt izin pada kunci tersebut dan pemisahan berlanjut. Jika kunci hanya dinonaktifkan, pertimbangkan untuk mengaktifkannya kembali alih-alih memutuskan hubungan, karena mengaktifkan kembali memungkinkan CloudWatch untuk melanjutkan dekripsi data metrik yang ada.

penting

Setelah Anda memutuskan hubungan kunci yang dikelola pelanggan, ada jendela penegakan 3 jam yang CloudWatch masih memerlukan kms:Decrypt izin pada kunci yang sebelumnya terkait. Jangan menonaktifkan atau menghapus kunci selama jendela ini.

Memulihkan dari kunci KMS yang dihapus atau tidak dapat digunakan

Jika kunci KMS yang dikelola pelanggan yang terkait dengan kumpulan data Anda dihapus, dijadwalkan untuk dihapus, atau menjadi tidak tersedia, dataset Anda memasuki status terdegradasi:

  • CloudWatch tidak dapat mengenkripsi data metrik baru yang Anda publikasikan ke dataset, dan penyerapan gagal.

  • CloudWatch tidak dapat mendekripsi data yang ada yang dienkripsi dengan kunci yang tidak dapat digunakan, sehingga operasi kueri gagal.

Opsi pemulihan Anda tergantung pada status kunci:

  • Kunci dinonaktifkan - Re-enable kunci masuk AWS KMS. Ini adalah jalur pemulihan yang disukai karena CloudWatch dapat melanjutkan dekripsi data metrik Anda yang ada setelah kunci aktif kembali.

  • Kunci sedang menunggu penghapusan — Batalkan penghapusan kunci AWS KMS sebelum masa tunggu berakhir. Setelah kunci kembali ke status diaktifkan, CloudWatch melanjutkan operasi normal.

  • Kunci telah dihapus secara permanen atau tidak dapat dipulihkan — Hapus asosiasi basi atau putar ke kunci baru (lihat di bawah). Perhatikan bahwa data yang ada yang dienkripsi dengan kunci yang dihapus tidak dapat dibaca secara permanen.

Jika kunci dihapus secara permanen atau tidak dapat dipulihkan, Anda dapat menghapus asosiasi atau memutar ke kunci baru tanpa memerlukan akses ke kunci lama:

Hapus asosiasi kunci basi

Panggil DisassociateDatasetKmsKey untuk menghapus asosiasi dengan kunci yang tidak dapat digunakan. CloudWatch kembali ke enkripsi kunci yang AWS dimiliki untuk data baru. Data yang ada yang dienkripsi dengan kunci yang dihapus tidak lagi dapat dibaca.

aws cloudwatch disassociate-dataset-kms-key \ --dataset-name default

Putar ke kunci baru

Panggil AssociateDatasetKmsKey dengan kunci KMS baru yang valid ARN. CloudWatchmemvalidasi kunci baru dan mengaitkannya dengan dataset Anda. Akses ke kunci yang sebelumnya terkait tidak diperlukan. Data yang ada yang dienkripsi dengan kunci yang dihapus tidak lagi dapat dibaca, tetapi data baru dienkripsi dengan kunci baru.

aws cloudwatch associate-dataset-kms-key \ --dataset-name default \ --kms-key-arn arn:aws:kms:region:account-id:key/new-key-id

Respons kesalahan untuk kunci yang tidak dapat digunakan

Ketika Anda memang DisassociateDatasetKmsKey gil atau AssociateDatasetKmsKey (jalur rotasi) dan kunci yang saat ini terkait CloudWatch tidak dapat diakses, tidak memerlukan akses ke kunci itu dan operasi berjalan secara normal. Ini berlaku ketika:

  • Kunci telah dihapus (pengembalian KMSNotFoundException).

  • Kuncinya ada diPendingDeletion,PendingImport, atau Unavailable negara.

  • Kuncinya telah dinonaktifkan.

Jika Anda memanggil operasi ini ketika kunci dapat diakses tetapi pemanggil tidak memiliki kms:Decrypt izin, operasi gagal dengan salah satu kesalahan berikut. Setiap pesan kesalahan menyertakan ID permintaan KMS untuk pemecahan masalah.

ResourceNotFoundException

Kunci KMS yang ditentukan tidak ada. Format pesan: KMS key key-arn does not exist. KMS request id: request-id.

ValidationException

Kunci KMS yang ditentukan berada dalam keadaan tidak dapat digunakan yang tidak dapat ditoleransi pada jalur kode ini. Format pesan: KMS key key-arn is in an unusable state: state-description. KMS request id: request-id.

AccessDeniedException

Kunci KMS yang ditentukan dinonaktifkan, atau penelepon tidak memiliki izin. Format pesan: KMS key key-arn is disabled. KMS request id: request-id.

Untuk informasi selengkapnya tentang status kunci KMS, lihat Status kunci AWS KMS kunci di Panduan Peng AWS Key Management Service embang.

Mencakup akses kebijakan utama

Anda dapat menggunakan kondisi dalam kebijakan utama untuk membatasi akses ke AWS KMS kunci Anda.

Kondisi konteks enkripsi

Gunakan kunci kms:EncryptionContext:aws:cloudwatch:arn kondisi untuk membatasi penggunaan kunci ke default Dataset Anda.

"Condition": { "StringEquals": { "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:region:account-id:dataset/default" } }
Perlindungan wakil yang bingung

Gunakan aws:SourceAccount kondisi aws:SourceArn dan untuk mencegah serangan wakil yang membingungkan lintas akun.

"Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:region:account-id:dataset/default" } }
kms: kondisi ViaService

Gunakan kunci kms:ViaService kondisi untuk membatasi penggunaan kunci untuk permintaan yang berasal dari CloudWatch.

"Condition": { "StringEquals": { "kms:ViaService": "cloudwatch.region.amazonaws.com" } }

Memantau CloudWatch interaksi dengan AWS KMS

Anda dapat menggunakannya AWS CloudTrail untuk melacak permintaan yang CloudWatch dikirim AWS KMS atas nama Anda. Entri AWS CloudTrail log menggunakan prinsip layanan cloudwatch.amazonaws.com dan ViaService nilaicloudwatch.{region}.amazonaws.com.

Nama CloudTrail peristiwa berikut muncul di entri log untuk operasi enkripsi CloudWatch Dataset:

  • GenerateDataKey

  • Encrypt

  • Decrypt

  • DescribeKey

  • ReEncrypt

Setiap entri log menyertakan konteks enkripsi, yang dapat Anda gunakan untuk mengidentifikasi Dataset tertentu yang diterapkan operasi.

Untuk informasi selengkapnya tentang pemantauan penggunaan AWS KMS kunci, lihat Pemantauan AWS Key Management Service di Panduan AWS Key Management Service Pengembang.