

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

# Enkripsi data diam untuk cluster elastis Amazon DocumentDB
<a name="elastic-encryption"></a>

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

**Topics**
+ [Bagaimana cluster elastis Amazon DocumentDB menggunakan hibah di AWS KMS](#ec-encrypt-grants)
+ [Membuat kunci yang dikelola pelanggan](#ec-encrypt-create)
+ [Memantau kunci enkripsi Anda untuk cluster elastis Amazon DocumentDB](#ec-encrypt-monitor)
+ [Pelajari selengkapnya](#ec-encrypt-learn)

Cluster 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 selengkapnya tentang enkripsi amplop, lihat [ Enkripsi amplop](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) di *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 materi kunci yang digunakan untuk mengenkripsi dan mendekripsi data. Untuk informasi selengkapnya tentang kunci KMS, lihat [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) di *Panduan Developer AWS Key Management Service *.

Cluster elastis Amazon DocumentDB mendukung enkripsi dengan dua jenis kunci:
+ **AWS kunci yang dimiliki — ** Cluster elastis Amazon DocumentDB menggunakan kunci ini secara default untuk mengenkripsi data identitas pribadi secara otomatis. Anda tidak dapat melihat, mengelola, atau menggunakan kunci AWS milik, atau mengaudit penggunaannya. Namun, Anda tidak perlu mengambil tindakan apa pun atau mengubah program apa pun untuk melindungi kunci yang mengenkripsi data Anda. Untuk informasi selengkapnya, lihat kunci yang [AWS dimiliki ](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) di Panduan *AWS Key Management Service Pengembang*.
+ **Customer-managed kunci — Sim ** etris 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 materi kriptografi kunci
  + Menambahkan tanda
  + Membuat alias kunci
  + Kunci penjadwalan untuk penghapusan

  Untuk informasi selengkapnya, lihat [ Kunci yang dikelola pelanggan ](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) di Panduan *AWS Key Management Service Pengembang*.

**penting**  
Anda harus menggunakan kunci KMS enkripsi simetris untuk mengenkripsi cluster Anda karena Amazon DocumentDB hanya mendukung kunci KMS enkripsi simetris. Jangan gunakan kunci KMS asimetris untuk mencoba mengenkripsi data di cluster elastis Amazon DocumentDB Anda. Untuk informasi selengkapnya, lihat [ Kunci asimetris AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) di 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 cluster Amazon DocumentDB terenkripsi, Anda akhirnya akan kehilangan akses baca dan tulis ke cluster 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 cluster terenkripsi setelah Anda telah membuatnya. Pastikan untuk menentukan persyaratan kunci enkripsi Anda sebelum membuat cluster elastis terenkripsi.

## Bagaimana cluster elastis Amazon DocumentDB menggunakan hibah di AWS KMS
<a name="ec-encrypt-grants"></a>

Cluster elastis Amazon DocumentDB memerlukan [ hibah ](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) untuk menggunakan kunci yang dikelola pelanggan Anda.

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

Cluster 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 yang dikelola pelanggan simetris, yang dimasukkan saat membuat cluster elastis, 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 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, cluster 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.

## Membuat kunci yang dikelola pelanggan
<a name="ec-encrypt-create"></a>

Anda dapat membuat kunci yang dikelola pelanggan simetris dengan menggunakan Konsol Manajemen AWS atau AWS KMS API.

**Pembuatan kunci yang dikelola pelanggan simetris **

Ikuti langkah-langkah untuk [ Membuat kunci yang dikelola pelanggan simetris ](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di Panduan * Peng *AWS Key Management Service embang.

**Kebijakan utama **

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki tepat satu kebijakan kunci, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci yang dikelola pelanggan, Anda dapat menentukan kebijakan kunci. Untuk informasi selengkapnya, lihat informasi akses kunci KMS yang terletak di ikh [AWS Key Management Service tis ](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ar Panduan * Peng *AWS Key Management Service embang.

Untuk menggunakan kunci yang dikelola pelanggan Anda dengan sumber daya cluster elastis Amazon DocumentDB, operasi API berikut harus diizinkan dalam kebijakan utama:
+ [`kms:CreateGrant`](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)— Menambahkan hibah ke kunci yang dikelola pelanggan. Memberikan akses kontrol ke kunci KMS tertentu, yang memungkinkan akses ke operasi hibah yang diperlukan cluster elastis Amazon DocumentDB. Untuk informasi selengkapnya tentang menggunakan hibah, lihat Hi [ bah AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) di Panduan *AWS Key Management Service Pengembang*.
+ [`kms:DescribeKey`](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)— Menyediakan detail kunci yang dikelola pelanggan untuk memungkinkan cluster elastis Amazon DocumentDB memvalidasi kunci.
+ [`kms:Decrypt`](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)- Mengizinkan cluster elastis Amazon DocumentDB menggunakan kunci data terenkripsi yang disimpan untuk mengakses data terenkripsi.
+ [`kms:GenerateDataKey`](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)- Mengizinkan cluster elastis Amazon DocumentDB menghasilkan kunci data terenkripsi dan menyimpannya karena kunci data tidak segera digunakan untuk mengenkripsi.

Untuk informasi selengkapnya, lihat [ Izin untuk AWS layanan di kebijakan utama ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html) dan Mem [ ecahkan masalah akses kunci ](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) di Panduan *AWS Key Management Service Pengembang*.

**Membatasi akses kunci yang dikelola pelanggan melalui kebijakan IAM **

Selain kebijakan kunci 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 hanya digunakan untuk permintaan yang berasal dari cluster elastis Amazon DocumentDB, Anda dapat menggunakan kunci [`kms:ViaService` kondisi ](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) dengan `docdb-elastic.<region-name>.amazonaws.com` nilai tersebut.

Untuk informasi selengkapnya, lihat [Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) di *Panduan Developer AWS Key Management Service *.

## Memantau kunci enkripsi Anda untuk cluster elastis Amazon DocumentDB
<a name="ec-encrypt-monitor"></a>

Saat menggunakan kunci yang dikelola pelanggan dengan sumber daya cluster elastis Amazon DocumentDB, Anda dapat menggunakan AWS CloudTrail atau Amazon CloudWatch Logs untuk melacak permintaan yang dikirim oleh cluster elastis Amazon DocumentDB. AWS KMS

Contoh berikut adalah AWS CloudTrail peristiwa untuk`CreateGrant`,, `GenerateDataKeyWithoutPlainText``Decrypt`, dan `DescribeKey` untuk memantau AWS KMS key operasi yang dipanggil oleh cluster 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
<a name="ec-encrypt-learn"></a>

Sumber daya berikut memberikan informasi lebih lanjut tentang enkripsi data saat istirahat:
+ Untuk informasi selengkapnya tentang AWS KMS konsep, lihat konsep [AWS Key Management Service dasar ](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) di Panduan *AWS Key Management Service Pengembang*.
+ Untuk informasi selengkapnya tentang AWS KMS keamanan, lihat Praktik terbaik [ keamanan AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) di Panduan *AWS Key Management Service Pengembang*.