Enkripsi data saat istirahat untuk klaster elastis Amazon DocumentDB - Amazon DocumentDB

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

Enkripsi data saat istirahat untuk klaster elastis Amazon DocumentDB

Topik berikut membantu Anda mempelajari, membuat, dan memantau kunci AWS Key Management Service enkripsi untuk klaster elastis Amazon DocumentDB:

Klaster elastis Amazon DocumentDB secara otomatis terintegrasi dengan AWS Key Management Service (AWS KMS) untuk manajemen kunci dan menggunakan metode yang dikenal sebagai enkripsi amplop untuk melindungi data Anda. Untuk informasi lebih lanjut tentang enkripsi amplop, lihat Enkripsi amplop dalam Panduan Developer AWS Key Management Service.

An AWS KMS key adalah representasi logis dari kunci. Kunci KMS mencakup metadata, seperti ID kunci, tanggal pembuatan, deskripsi, dan status kunci. Kunci KMS juga berisi bahan utama yang digunakan untuk mengenkripsi dan mendekripsi data. Untuk informasi selengkapnya tentang kunci KMS, lihat AWS KMS keys dalam Panduan Developer AWS Key Management Service.

Cluster elastis Amazon DocumentDB mendukung enkripsi dengan dua jenis kunci:

  • AWSkunci yang dimiliki — cluster elastis Amazon DocumentDB menggunakan kunci ini secara default untuk secara otomatis mengenkripsi data yang dapat diidentifikasi secara pribadi. Anda tidak dapat melihat, mengelola, atau menggunakan kunci AWS yang dimiliki, atau audit penggunaannya. Namun, Anda tidak perlu mengambil tindakan atau mengubah program apa pun untuk melindungi kunci yang mengenkripsi data Anda. Untuk informasi selengkapnya, lihat kunci yang AWS dimiliki di Panduan AWS Key Management Service Pengembang.

  • Kunci yang dikelola pelanggan — Simetris AWS KMS keys yang Anda buat, miliki, dan kelola. Karena Anda memiliki kontrol penuh atas lapisan enkripsi ini, Anda dapat melakukan tugas-tugas seperti:

    • Menetapkan dan memelihara kebijakan utama

    • Menetapkan dan memelihara kebijakan dan hibah IAM

    • Mengaktifkan dan menonaktifkan kebijakan utama

    • Memutar bahan kriptografi kunci

    • Menambahkan tanda

    • Membuat alias kunci

    • Kunci penjadwalan untuk penghapusan

    Untuk informasi selengkapnya, lihat Kunci yang dikelola pelanggan di Panduan AWS Key Management Service Developer.

penting

Anda harus menggunakan kunci KMS enkripsi simetris untuk mengenkripsi klaster Anda karena Amazon DocumentDB mendukung hanya kunci KMS enkripsi simetris. Jangan gunakan kunci KMS asimetris untuk mencoba mengenkripsi data di klaster elastis Amazon DocumentDB Anda. Untuk informasi selengkapnya, lihat Kunci asimetris di AWS KMS dalam Panduan AWS Key Management Service Pengembang.

Jika Amazon DocumentDB tidak bisa lagi mendapatkan akses ke kunci enkripsi untuk sebuah klaster — misalnya, saat akses ke kunci dicabut — klaster terenkripsi masuk ke status terminal. Dalam hal ini, Anda hanya dapat memulihkan klaster dari backup. Untuk Amazon DocumentDB, backup selalu diaktifkan selama 1 hari. Selain itu, jika Anda menonaktifkan kunci untuk klaster Amazon DocumentDB terenkripsi, Anda akhirnya akan kehilangan akses baca dan tulis ke klaster tersebut. Ketika Amazon DocumentDB menemukan klaster yang dienkripsi dengan kunci yang tidak dapat diaksesnya, klaster akan dimasukkan ke status terminal. Dalam kondisi ini, klaster DB tidak lagi tersedia, dan status basis data saat ini tidak dapat dipulihkan. Untuk memulihkan klaster, Anda harus mengaktifkan kembali akses ke kunci enkripsi untuk Amazon DocumentDB, lalu memulihkan klaster dari backup.

penting

Anda tidak dapat mengubah kunci KMS untuk klaster terenkripsi setelah Anda membuatnya. Pastikan Anda menentukan persyaratan kunci enkripsi sebelum membuat klaster elastis terenkripsi Anda.

Bagaimana klaster elastis Amazon DocumentDB menggunakan hibah di AWS KMS

Klaster elastis Amazon DocumentDB memerlukan hibah untuk menggunakan kunci yang dikelola pelanggan Anda.

Saat Anda membuat klaster yang dienkripsi dengan kunci yang dikelola pelanggan, klaster elastis Amazon DocumentDB membuat hibah atas nama Anda dengan mengirimkan permintaan ke. CreateGrant AWS KMS Hibah AWS KMS digunakan untuk memberikan akses cluster elastis Amazon DocumentDB ke kunci KMS di akun pelanggan.

Klaster elastis Amazon DocumentDB memerlukan hibah untuk menggunakan kunci yang dikelola pelanggan Anda untuk operasi internal berikut:

  • Kirim DescribeKey permintaan AWS KMS untuk memverifikasi bahwa ID kunci KMS yang dikelola pelanggan simetris, yang dimasukkan saat membuat pelacak atau pengumpulan geofence, valid.

  • Kirim GenerateDataKey permintaan AWS KMS untuk menghasilkan kunci data yang dienkripsi oleh kunci yang dikelola pelanggan Anda.

  • Kirim Decrypt permintaan AWS KMS untuk mendekripsi kunci data terenkripsi sehingga mereka dapat digunakan untuk mengenkripsi data Anda.

  • Anda dapat mencabut akses ke hibah, atau menghapus akses layanan ke kunci yang dikelola pelanggan kapan saja. Jika Anda melakukannya, klaster elastis Amazon DocumentDB tidak akan dapat mengakses data apa pun yang dienkripsi oleh kunci yang dikelola pelanggan, yang memengaruhi operasi yang bergantung pada data tersebut.

Buat kunci terkelola pelanggan

Anda dapat membuat kunci yang dikelola pelanggan simetris dengan menggunakan AWS Management Console atau AWS KMS API.

Pembuatan kunci yang dikelola pelanggan simetris

Ikuti langkah-langkah untuk Membuat kunci yang dikelola pelanggan simetris di Panduan AWS Key Management Service Pengembang.

Kebijakan kunci

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki satu kebijakan kunci, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci terkelola pelanggan, Anda dapat menentukan kebijakan utama. Untuk informasi selengkapnya, lihat informasi akses kunci KMS yang terletak di AWS Key Management Serviceikhtisar Panduan AWS Key Management Service Pengembang.

Untuk menggunakan kunci yang dikelola pelanggan Anda dengan sumber daya klaster elastis Amazon DocumentDB, operasi API berikut harus diizinkan dalam kebijakan utama:

  • kms:CreateGrant- Menambahkan hibah ke kunci yang dikelola pelanggan. Memberikan akses kontrol ke kunci KMS tertentu, yang memungkinkan akses untuk memberikan operasi yang diperlukan Amazon Location Service. Untuk informasi selengkapnya tentang penggunaan hibah, lihat Hibah di AWS KMS dalam Panduan AWS Key Management ServicePengembang.

  • kms:DescribeKey- Menyediakan pelanggan dikelola rincian kunci untuk memungkinkan Docdb Elastic untuk memvalidasi kunci.

  • kms:Decrypt- Memungkinkan Docdb Elastic untuk menggunakan kunci data terenkripsi yang disimpan untuk mengakses data terenkripsi.

  • kms:GenerateDataKey- Memungkinkan Docdb Elastic untuk menghasilkan kunci data terenkripsi dan menyimpannya karena kunci data tidak segera digunakan untuk mengenkripsi.

Untuk informasi selengkapnya, lihat Izin untuk AWS layanan dalam kebijakan utama dan Pemecahan Masalah akses kunci di Panduan AWS Key Management ServiceDeveloper.

Membatasi akses kunci yang dikelola pelanggan melalui kebijakan IAM

Selain kebijakan utama KMS, Anda juga dapat membatasi izin kunci KMS dalam kebijakan IAM.

Anda dapat membuat kebijakan IAM lebih ketat dalam berbagai cara. Misalnya, untuk mengizinkan kunci yang dikelola pelanggan digunakan hanya untuk permintaan yang berasal di klaster elastis Amazon DocumentDB, Anda dapat menggunakan kunci kms:ViaService syarat dengan nilai tersebut. docdb-elastic.<region-name>.amazonaws.com

Untuk informasi selengkapnya, lihat Memungkinkan pengguna di akun lain untuk menggunakan kunci KMS di AWS Key Management Service Panduan Developer.

Memantau kunci enkripsi Anda untuk klaster elastis Amazon DocumentDB

Saat Anda menggunakan kunci yang dikelola AWS KMS key pelanggan dengan sumber daya Docdb Elastic, Anda dapat menggunakan AWS CloudTrail atau Amazon CloudWatch Logs untuk melacak permintaan yang dikirim Docdb Elastic. AWS KMS

Contoh berikut adalah AWS CloudTrail peristiwa untukCreateGrant, GenerateDataKeyWithoutPlainTextDecrypt, dan DescribeKey untuk memantau AWS KMS key operasi yang dipanggil oleh klaster elastis Amazon DocumentDB untuk mengakses data yang dienkripsi oleh kunci yang dikelola pelanggan Anda:

CreateGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-09T23:04:20Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-09T23:55:48Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "retiringPrincipal": "docdb-elastic.us-east-1.amazonaws.com", "granteePrincipal": "docdb-elastic.us-east-1.amazonaws.com", "operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "RetireGrant", "DescribeKey" ], "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-10T18:02:59Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-10T18:03:25Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-10T18:05:49Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-10T18:06:19Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-09T23:04:20Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-09T23:55:48Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "keyId": "alias/SampleKmsKey" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

Pelajari selengkapnya

Sumber daya berikut memberikan informasi lebih lanjut tentang enkripsi data saat istirahat: