Menggunakan kunci yang dikelola pelanggan di Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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, AWS Command Line Interface (AWS CLI), atau QLDB API untuk menentukan buku besar baru dan buku besar AWS KMS key yang ada di Amazon QLDB. Topik berikut menjelaskan cara mengelola dan memantau penggunaan kunci terkelola pelanggan Anda di QLDB.

Prasyarat

Sebelum Anda dapat melindungi buku besar QLDB 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 membuat hibah atas AWS KMS key nama Anda.

Membuat kunci yang dikelola pelanggan

Untuk membuat kunci terkelola pelanggan, ikuti langkah-langkah dalam Membuat kunci KMS enkripsi simetris di Panduan AWS Key Management Service Pengembang. QLDB tidak 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 kunci menentukan siapa yang memiliki izin untuk menggunakan kunci KMS 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.

Untuk mengizinkan QLDB menggunakan kunci terkelola pelanggan Anda, kebijakan utama harus menyertakan izin untuk tindakan berikut: AWS KMS

Contoh kebijakan utama

Berikut ini adalah contoh kebijakan utama yang dapat Anda gunakan untuk QLDB. Kebijakan ini memungkinkan prinsipal yang berwenang untuk menggunakan QLDB dari akun 111122223333 untuk memanggil dan operasi pada sumber daya. DescribeKey CreateGrant 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 kunci KMS saat Anda membuat buku besar baru menggunakan konsol QLDB atau. AWS CLI

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

catatan

Kunci Lintas Wilayah tidak didukung. Kunci KMS yang ditentukan harus Wilayah AWS sama dengan buku besar Anda.

  1. Masuk ke AWS Management Console, dan buka konsol QLDB 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 kunci KMS yang akan digunakan untuk enkripsi saat istirahat:

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

      • Pilih kunci yang berbeda — Gunakan AWS KMS kunci KMS 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 kunci enkripsi simetris KMS di Panduan Developer AWS Key Management Service .

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

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

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

Gunakan AWS CLI untuk membuat buku besar di QLDB dengan Kunci milik AWS default 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 konsol QLDB atau AWS CLI untuk memperbarui kunci KMS buku besar yang ada ke atau kunci Kunci milik AWS yang dikelola pelanggan kapan saja.

catatan

Amazon QLDB meluncurkan dukungan untuk pelanggan yang AWS KMS keys dikelola 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 konsol QLDB.

Perubahan utama dalam QLDB bersifat 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 Nama Sumber Daya Amazon (ARN). Untuk mempelajari selengkapnya, lihat Pengidentifikasi kunci (KeyId) di Panduan AWS Key Management Service Pengembang.

catatan

Kunci Lintas Wilayah tidak didukung. Kunci KMS yang ditentukan harus Wilayah AWS sama dengan buku besar Anda.

  1. Masuk ke AWS Management Console, dan buka konsol QLDB 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 kunci KMS yang akan digunakan untuk enkripsi saat istirahat:

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

    • Pilih kunci yang berbeda — Gunakan AWS KMS kunci KMS 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 kunci enkripsi simetris KMS di Panduan Developer AWS Key Management Service .

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

  5. Pilih Konfirmasi perubahan.

Gunakan AWS CLI untuk memperbarui buku besar yang ada di QLDB dengan Kunci milik AWS default 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 buku besar QLDB Amazon Anda, Anda dapat menggunakan AWS CloudTrailatau CloudWatch Amazon Logs untuk melacak permintaan yang dikirimkan QLDB atas nama Anda. AWS KMS 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 CreateGrant mengirimkan permintaan AWS KMS ke atas nama Anda untuk mengizinkan akses ke kunci KMS Anda. Selain itu, QLDB menggunakan RetireGrant operasi untuk menghapus hibah saat Anda menghapus buku besar.

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

Peristiwa yang mencatat operasi CreateGrant serupa dengan peristiwa contoh berikut. Parameter termasuk Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan, pokok penerima hibah dan kepala pensiun (layanan QLDB), 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 membuat 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 layanan QLDB. Parameter termasuk ARN dari kunci 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

Saat 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 layanan QLDB. Parameter termasuk ARN dari kunci 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

QLDB memanggil operasi untuk mengenkripsi plaintext ke Encrypt dalam ciphertext menggunakan kunci yang dikelola pelanggan Anda.

Peristiwa yang mencatat operasi Encrypt serupa dengan peristiwa contoh berikut. Pengguna adalah akun layanan QLDB. Parameter termasuk ARN dari kunci 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

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

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

{ "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" }