Menggunakan kunci yang dikelola pelanggan di Amazon QLDB - Database Buku Besar Amazon Quantum (AmazonQLDB)

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

Menggunakan kunci yang dikelola pelanggan di Amazon QLDB

Anda dapat menggunakan AWS Management Console, the AWS Command Line Interface (AWS CLI), atau QLDB API untuk menentukan buku besar baru dan buku besar yang ada di Amazon. AWS KMS key QLDB Topik berikut menjelaskan cara mengelola dan memantau penggunaan kunci terkelola pelanggan AndaQLDB.

Prasyarat

Sebelum Anda dapat melindungi QLDB buku besar dengan kunci yang dikelola pelanggan, Anda harus terlebih dahulu membuat kunci di AWS Key Management Service (AWS KMS). Anda juga harus menentukan kebijakan kunci yang memungkinkan QLDB untuk membuat hibah atas nama Anda. AWS KMS key

Membuat kunci yang dikelola pelanggan

Untuk membuat kunci terkelola pelanggan, ikuti langkah-langkah dalam Membuat KMS kunci enkripsi simetris di Panduan AWS Key Management Service Pengembang. QLDBtidak mendukung kunci asimetris.

Mengatur kebijakan kunci

Kebijakan utama adalah cara utama untuk mengontrol akses ke kunci yang dikelola pelanggan AWS KMS. Setiap kunci yang dikelola pelanggan harus memiliki persis satu kebijakan utama. Pernyataan dalam dokumen kebijakan utama menentukan siapa yang memiliki izin untuk menggunakan KMS kunci dan bagaimana mereka dapat menggunakannya. Untuk informasi selengkapnya, lihat Menggunakan kebijakan utama di AWS KMS.

Anda dapat menentukan kebijakan kunci saat membuat kunci terkelola pelanggan. Untuk mengubah kebijakan kunci untuk kunci terkelola pelanggan yang sudah ada, lihat Mengubah kebijakan kunci.

QLDBAgar dapat menggunakan kunci terkelola pelanggan Anda, kebijakan utama harus menyertakan izin untuk AWS KMS tindakan berikut:

  • kms: CreateGrant — Menambahkan hibah ke kunci yang dikelola pelanggan. Memberikan akses kontrol ke KMS kunci tertentu.

    Saat Anda membuat atau memperbarui buku besar dengan kunci terkelola pelanggan tertentu, QLDB buat hibah yang memungkinkan akses ke operasi hibah yang diperlukan. Operasi hibah meliputi:

  • kms: DescribeKey — Mengembalikan informasi rinci tentang kunci yang dikelola pelanggan. QLDBmenggunakan informasi ini untuk memvalidasi kunci.

Contoh kebijakan utama

Berikut ini adalah contoh kebijakan utama yang dapat Anda gunakan untukQLDB. Kebijakan ini memungkinkan prinsipal yang berwenang untuk menggunakan QLDB dari akun 111122223333 untuk memanggil DescribeKey dan CreateGrant operasi pada sumber daya. arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Untuk menggunakan kebijakan ini, ganti us-east-1, 111122223333, dan 1234abcd-12ab-34cd-56ef-1234567890ab dalam contoh dengan informasi Anda sendiri.

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Allow access to principals authorized to use Amazon QLDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition" : { "StringEquals" : { "kms:ViaService" : "qldb.us-east-1.amazonaws.com", "kms:CallerAccount" : "111122223333" } } } ] }

Menentukan AWS KMS key untuk buku besar baru

Ikuti langkah-langkah ini untuk menentukan KMS kunci saat Anda membuat buku besar baru menggunakan QLDB konsol atau. AWS CLI

Anda dapat menentukan kunci yang dikelola pelanggan menggunakan ID, alias, atau Amazon Resource Name (ARN). Untuk mempelajari selengkapnya, lihat Pengidentifikasi kunci (KeyId) di Panduan AWS Key Management Service Pengembang.

catatan

Kunci Cross-Region tidak didukung. KMSKunci yang ditentukan harus Wilayah AWS sama dengan buku besar Anda.

  1. Masuk ke AWS Management Console, dan buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb.

  2. Pilih Buat Buku Besar.

  3. Pada halaman Create Ledger, lakukan hal berikut:

    • Informasi buku besar — Masukkan nama Buku Besar yang unik di antara semua buku besar di saat ini Akun AWS dan Wilayah.

    • Mode izin - Pilih mode izin untuk ditetapkan ke buku besar:

      • Izinkan semua

      • Standar (Direkomendasikan)

    • Enkripsi data saat istirahat - Pilih jenis KMS kunci yang akan digunakan untuk enkripsi saat istirahat:

      • Gunakan KMS kunci yang AWS dimiliki — Gunakan KMS kunci yang dimiliki dan dikelola oleh AWS atas nama Anda. Ini adalah opsi default dan tidak memerlukan pengaturan tambahan.

      • Pilih AWS KMS kunci yang berbeda — Gunakan KMS kunci enkripsi simetris di akun yang Anda buat, miliki, dan kelola.

        Untuk membuat kunci baru dengan menggunakan AWS KMS konsol, pilih Buat AWS KMS kunci. Untuk informasi selengkapnya, lihat Membuat KMS kunci enkripsi simetris di Panduan AWS Key Management Service Pengembang.

        Untuk menggunakan KMS kunci yang ada, pilih salah satu dari daftar dropdown atau tentukan kunci. KMS ARN

  4. Ketika pengaturan seperti yang Anda inginkan, pilih Buat buku besar.

    Anda dapat mengakses QLDB buku besar Anda ketika statusnya menjadi Aktif. Ini dapat memakan waktu beberapa menit.

Gunakan AWS CLI untuk membuat buku besar QLDB dengan default Kunci milik AWS atau kunci yang dikelola pelanggan.

contoh — Untuk membuat buku besar dengan default Kunci milik AWS
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
contoh — Untuk membuat buku besar dengan kunci yang dikelola pelanggan
aws qldb create-ledger \ --name my-example-ledger \ --permissions-mode STANDARD \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Memperbarui buku besar yang ada AWS KMS key

Anda juga dapat menggunakan QLDB konsol atau AWS CLI untuk memperbarui KMS kunci buku besar yang ada ke Kunci milik AWS atau kunci yang dikelola pelanggan kapan saja.

catatan

Amazon QLDB meluncurkan dukungan untuk pelanggan yang dikelola AWS KMS keys pada 22 Juli 2021. Buku besar apa pun yang dibuat sebelum peluncuran dilindungi secara Kunci milik AWS default, tetapi saat ini tidak memenuhi syarat untuk enkripsi saat istirahat menggunakan kunci yang dikelola pelanggan.

Anda dapat melihat waktu pembuatan buku besar Anda di QLDB konsol.

Perubahan utama QLDB adalah asinkron. Buku besar dapat diakses sepenuhnya tanpa dampak kinerja apa pun saat perubahan kunci sedang diproses. Jumlah waktu yang diperlukan untuk memperbarui kunci bervariasi tergantung pada ukuran buku besar.

Anda dapat menentukan kunci yang dikelola pelanggan menggunakan ID, alias, atau Amazon Resource Name (ARN). Untuk mempelajari selengkapnya, lihat Pengidentifikasi kunci (KeyId) di Panduan AWS Key Management Service Pengembang.

catatan

Kunci Cross-Region tidak didukung. KMSKunci yang ditentukan harus Wilayah AWS sama dengan buku besar Anda.

  1. Masuk ke AWS Management Console, dan buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb.

  2. Di panel navigasi, pilih Buku Besar.

  3. Dalam daftar buku besar, pilih buku besar yang ingin Anda perbarui, lalu pilih Edit buku besar.

  4. Pada halaman Edit buku besar, pilih jenis KMS kunci yang akan digunakan untuk enkripsi saat istirahat:

    • Gunakan KMS kunci yang AWS dimiliki — Gunakan KMS kunci yang dimiliki dan dikelola oleh AWS atas nama Anda. Ini adalah opsi default dan tidak memerlukan pengaturan tambahan.

    • Pilih AWS KMS kunci yang berbeda — Gunakan KMS kunci enkripsi simetris di akun yang Anda buat, miliki, dan kelola.

      Untuk membuat kunci baru dengan menggunakan AWS KMS konsol, pilih Buat AWS KMS kunci. Untuk informasi selengkapnya, lihat Membuat KMS kunci enkripsi simetris di Panduan AWS Key Management Service Pengembang.

      Untuk menggunakan KMS kunci yang ada, pilih salah satu dari daftar dropdown atau tentukan kunci. KMS ARN

  5. Pilih Konfirmasi perubahan.

Gunakan AWS CLI untuk memperbarui buku besar yang ada QLDB dengan default Kunci milik AWS atau kunci yang dikelola pelanggan.

contoh — Untuk memperbarui buku besar dengan default Kunci milik AWS
aws qldb update-ledger --name my-example-ledger --kms-key AWS_OWNED_KMS_KEY
contoh — Untuk memperbarui buku besar dengan kunci yang dikelola pelanggan
aws qldb update-ledger \ --name my-example-ledger \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Memantau Anda AWS KMS keys

Jika Anda menggunakan kunci yang dikelola pelanggan untuk melindungi QLDB buku besar Amazon, Anda dapat menggunakan AWS CloudTrailatau Amazon CloudWatch Logs untuk melacak permintaan yang QLDB dikirimkan AWS KMS atas nama Anda. Untuk informasi selengkapnya, lihat Pemantauan AWS KMS keys di Panduan AWS Key Management Service Pengembang.

Contoh berikut adalah entri CloudTrail log untuk operasiCreateGrant,,GenerateDataKey, DecryptEncrypt, danDescribeKey.

CreateGrant

Saat Anda menentukan kunci yang dikelola pelanggan untuk melindungi buku besar Anda, QLDB kirimkan CreateGrant permintaan ke AWS KMS atas nama Anda untuk mengizinkan akses ke KMS kunci Anda. Selain itu, QLDB gunakan RetireGrant operasi untuk menghapus hibah saat Anda menghapus buku besar.

Hibah yang QLDB dibuat khusus untuk buku besar. Prinsipal dalam CreateGrant permintaan adalah pengguna yang membuat tabel.

Peristiwa yang mencatat operasi CreateGrant serupa dengan peristiwa contoh berikut. Parameter tersebut mencakup Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan, pokok penerima hibah dan prinsipal pensiun (QLDBlayanan), dan operasi yang dicakup oleh hibah.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "granteePrincipal": "qldb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt" ], "retiringPrincipal": "qldb.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "b3c83f999187ccc0979ef2ff86a1572237b6bba309c0ebce098c34761f86038a" }, "requestID": "e99188d7-3b82-424e-b63e-e086d848ed60", "eventID": "88dc7ba5-4952-4d36-9ca8-9ab5d9598bab", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
GenerateDataKey

Saat Anda menentukan kunci yang dikelola pelanggan untuk melindungi buku besar Anda, QLDB buat kunci data yang unik. Ini mengirimkan GenerateDataKey permintaan ke AWS KMS yang menentukan kunci yang dikelola pelanggan untuk buku besar.

Peristiwa yang mencatat operasi GenerateDataKey serupa dengan peristiwa contoh berikut. Pengguna adalah akun QLDB layanan. Parameter termasuk kunci ARN yang dikelola pelanggan, penentu kunci data yang memerlukan panjang 32-byte, dan konteks enkripsi yang mengidentifikasi simpul hierarki kunci internal.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "numberOfBytes": 32, "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "786977c9-e77c-467a-bff5-9ad5124a4462", "eventID": "b3f082cb-3e75-454e-bf0a-64be13075436", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "26688de5-0b1c-43d3-bc4f-a18029b08446" }
Dekripsi

Ketika Anda mengakses buku besar, QLDB memanggil Decrypt operasi untuk mendekripsi kunci data tersimpan buku besar sehingga dapat mengakses data terenkripsi dalam buku besar.

Peristiwa yang mencatat operasi Decrypt serupa dengan peristiwa contoh berikut. Pengguna adalah akun QLDB layanan. Parameter termasuk kunci ARN yang dikelola pelanggan dan konteks enkripsi yang mengidentifikasi simpul hierarki kunci internal.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:56Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "28f2dd18-3cc1-4fe2-82f7-5154f4933ebf", "eventID": "603ad5d4-4744-4505-9c21-bd4a6cbd4b20", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "7b6ce3e3-a764-42ec-8f90-5418c97ec411" }
Enkripsi

QLDBmemanggil Encrypt operasi untuk mengenkripsi plaintext ke ciphertext menggunakan kunci yang dikelola pelanggan Anda.

Peristiwa yang mencatat operasi Encrypt serupa dengan peristiwa contoh berikut. Pengguna adalah akun QLDB layanan. Parameter termasuk kunci ARN yang dikelola pelanggan dan konteks enkripsi yang menentukan ID unik internal buku besar.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "LedgerId": "F6qRNziJLUXA4Vy2ZUv8YY" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "b2daca7d-4606-4302-a2d7-5b3c8d30c64d", "eventID": "b8aace05-2e37-4fed-ae6f-a45a1c6098df", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "ce420ab0-288e-4b4f-aee8-541e18a28aa5" }
DescribeKey

QLDBmemanggil DescribeKey operasi untuk menentukan apakah KMS kunci yang Anda tentukan ada di Akun AWS dan Wilayah.

Peristiwa yang mencatat operasi DescribeKey serupa dengan peristiwa contoh berikut. Prinsipal adalah pengguna di Anda Akun AWS yang menentukan KMS kunci. Parameter termasuk kunci yang dikelola pelanggan. ARN

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "a30586af-c783-4d25-8fda-33152c816c36", "eventID": "7a9caf07-2b27-44ab-afe4-b259533ebb88", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }