View a markdown version of this page

Pengaturan kunci KMS kustom untuk layanan retensi data - AWS Wickr

Panduan ini mendokumentasikan konsol administrasi AWS Wickr baru, yang dirilis pada 13 Maret 2025. Untuk dokumentasi tentang versi klasik konsol administrasi AWS Wickr, lihat Panduan Administrasi Klasik.

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

Pengaturan kunci KMS kustom untuk layanan retensi data

Untuk menggunakan kunci KMS Anda sendiri dengan layanan penyimpanan data, buat kunci dengan konfigurasi berikut sebelum meluncurkan produk:

Kunci Retensi
  • Tipe kunci: Simetris () SYMMETRIC_DEFAULT

  • Penggunaan kunci: Enkripsi dan dekripsi

  • Rotasi kunci: Disarankan untuk mengaktifkan

Kunci Pemulihan Kata Sandi
  • Tipe kunci: Asimetris () ECC_NIST_P384

  • Penggunaan utama: Perjanjian utama

  • Rotasi tombol: Tidak didukung untuk tombol asimetris

Pengaturan kebijakan kunci KMS khusus

  1. Buat kunci KMS Anda dengan konfigurasi yang diperlukan di atas.

  2. Salin ID Kunci setiap kunci dari konsol KMS.

  3. Luncurkan produk retensi data di Service Catalog, masukkan ID Kunci ke dalam KmsKeyId dan PasswordRecoveryKeyId bidang.

  4. Setelah tumpukan selesai, arahkan ke tab Output.

  5. Salin nilai untuk DRSCustomerCrossAccountRoleArn danDecryptionLambdaRoleArn.

  6. Buka konsol KMS dan pilih kunci retensi kustom Anda.

  7. Di bagian Kebijakan Kunci, pilih Beralih ke tampilan kebijakan.

  8. Pilih Edit.

  9. Tambahkan pernyataan berikut ke dalam "Statement" larik kebijakan kunci Anda, ganti ARN placeholder dengan nilai dari langkah 5.

  10. Pilih Simpan perubahan.

  11. Ulangi langkah 6-10 untuk kunci pemulihan kata sandi menggunakan pernyataan pemulihan kata sandi di bawah ini.

Kunci retensi — Pernyataan untuk ditambahkan

{ "Sid": "EnclaveGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "{DRSCustomerCrossAccountRoleArn}" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:wickr:network:id", "aws:wickr:app:id" ] } } }, { "Sid": "EnclaveDescribeKey", "Effect": "Allow", "Principal": { "AWS": "{DRSCustomerCrossAccountRoleArn}" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "EnclaveDecryptWithAttestation", "Effect": "Allow", "Principal": { "AWS": "{DRSCustomerCrossAccountRoleArn}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:app:id" } } }, { "Sid": "DecryptLambdaDecrypt", "Effect": "Allow", "Principal": { "AWS": "{DecryptionLambdaRoleArn}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:network:id" } } }

Tujuan dari setiap pernyataan dapat ditemukan di Enkripsi saat diam bawah bagian Mengkonfigurasi izin untuk menggunakan kunci KMS yang dikelola pelanggan.

Kunci pemulihan kata sandi - Pernyataan untuk ditambahkan

{ "Sid": "EnclaveDeriveSharedSecret", "Effect": "Allow", "Principal": { "AWS": "{DRSCustomerCrossAccountRoleArn}" }, "Action": "kms:DeriveSharedSecret", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" } } }, { "Sid": "CustomerGetPublicKey", "Effect": "Allow", "Principal": { "AWS": "{DRSCustomerCrossAccountRoleArn}" }, "Action": [ "kms:DescribeKey", "kms:GetPublicKey" ], "Resource": "*" }

Tujuan dari setiap pernyataan:

EnclaveDeriveSharedSecret

  • kms: DeriveSharedSecret — Dipanggil oleh Nitro Enclave untuk melakukan perjanjian kunci ECDH menggunakan kunci pribadi kunci pemulihan kata sandi. Ini mendapatkan rahasia bersama yang digunakan untuk mendekripsi kata sandi Anda selama alur kerja migrasi. Hanya diizinkan ketika enclave menyediakan dokumen pengesahan (PCR0/1/2 kondisi) Nitro Enclave yang valid, memastikan perjanjian kunci tidak dapat terjadi di luar enclave.

CustomerGetPublicKey

  • kms: GetPublicKey — Memungkinkan pengambilan kunci publik ECC P-384 kunci pemulihan kata sandi. Ini digunakan oleh skrip pengumpulan kata sandi yang berjalan di mesin pelanggan untuk melakukan enkripsi ECDH lokal dari kata sandi.

  • kms: DescribeKey - Memungkinkan pengambilan metadata kunci (spesifikasi kunci, penggunaan, status) untuk validasi.

Contoh - Kunci retensi

Sebelum:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "YourExistingStatements", "Effect": "...", "...": "..." } ] }

Setelah:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "YourExistingStatements", "Effect": "...", "...": "..." }, { "Sid": "EnclaveGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:wickr:network:id", "aws:wickr:app:id" ] } } }, { "Sid": "EnclaveDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "EnclaveDecryptWithAttestation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:app:id" } } }, { "Sid": "DecryptLambdaDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/{DecryptionLambdaRoleName}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:network:id" } } } ] }