Membagikan Snapshot Klaster Amazon DocumentDB - Amazon DocumentDB

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

Membagikan Snapshot Klaster Amazon DocumentDB

Di Amazon DocumentDB, Anda dapat berbagi snapshot klaster manual, yang dapat disalin oleh Akun AWS yang diotorisasi. Anda dapat berbagi snapshot manual yang terenkripsi atau tidak terenkripsi. Saat membagikan snapshot yang tidak terenkripsi, authorized Akun AWS dapat memulihkan cluster langsung dari snapshot alih-alih membuat salinannya dan memulihkannya. Namun, Anda tidak dapat memulihkan klaster dari snapshot yang dibagikan dan dienkripsi. Sebaliknya, Anda dapat membuat salinan klaster dan memulihkan klaster dari salinan tersebut. Untuk informasi selengkapnya tentang menyalin snapshot, lihat Menyalin Snapshot Klaster Amazon DocumentDB.

catatan

Anda tidak dapat membagikan snapshot klaster otomatis Amazon DocumentDB. Sebagai solusinya, Anda dapat membuat snapshot manual dengan menyalin snapshot otomatis, lalu membagikan salinan tersebut. Untuk informasi selengkapnya tentang menyalin snapshot, lihat Menyalin Snapshot Klaster Amazon DocumentDB. Untuk informasi selengkapnya tentang memulihkan klaster dari snapshot, lihat Memulihkan dari Snapshot Klaster.

Anda dapat berbagi snapshot manual dengan hingga 20 lainnya Akun AWS. Anda juga dapat berbagi snapshot manual yang tidak terenkripsi sebagai publik sehingga snapshot tersebut tersedia untuk semua akun . Saat membagikan snapshot sebagai publik, pastikan bahwa tidak ada informasi privat yang dimasukkan ke dalam snapshot publik Anda.

Saat berbagi snapshot manual dengan yang lain Akun AWS, dan Anda memulihkan cluster dari snapshot bersama menggunakan AWS CLI atau Amazon DocumentDB API, Anda harus menentukan Nama Sumber Daya Amazon (ARN) dari snapshot bersama sebagai pengenal snapshot.

Membagikan Snapshot Terenkripsi

Pembatasan berikut berlaku untuk berbagi snapshot terenkripsi:

  • Anda tidak dapat berbagi snapshot terenkripsi sebagai publik.

  • Anda tidak dapat membagikan snapshot yang telah dienkripsi menggunakan kunci AWS KMS enkripsi default akun yang membagikan snapshot.

Ikuti langkah-langkah ini untuk berbagi snapshot terenkripsi.

  1. Bagikan kunci enkripsi AWS Key Management Service (AWS KMS) yang digunakan untuk mengenkripsi snapshot dengan akun apa pun yang ingin Anda akses snapshot.

    Anda dapat berbagi kunci AWS KMS enkripsi dengan AWS akun lain dengan menambahkan akun lain ke kebijakan AWS KMS kunci. Untuk detail tentang memperbarui kebijakan utama, lihat Menggunakan Kebijakan Utama di AWS KMS di Panduan AWS Key Management Service Pengembang. Untuk contoh pembuatan kebijakan kunci, lihat Membuat Kebijakan IAM untuk Memungkinkan Penyalinan Snapshot Terenkripsi nanti dalam topik ini.

  2. Gunakan AWS CLI, seperti yang ditunjukkan di bawah ini, untuk membagikan snapshot terenkripsi dengan akun lain.

Mengizinkan Akses ke Kunci AWS KMS Enkripsi

Akun AWS Agar orang lain dapat menyalin snapshot terenkripsi yang dibagikan dari akun Anda, akun yang Anda bagikan snapshot Anda harus memiliki akses ke AWS KMS kunci yang mengenkripsi snapshot. Untuk mengizinkan akun lain mengakses AWS KMS kunci, perbarui kebijakan kunci untuk AWS KMS kunci dengan ARN akun yang Anda bagikan sebagai prinsipal dalam kebijakan utama AWS KMS . Kemudian izinkan tindakan kms:CreateGrant.

Setelah Anda memberikan akses akun ke kunci AWS KMS enkripsi Anda, untuk menyalin snapshot terenkripsi Anda, akun tersebut harus membuat pengguna AWS Identity and Access Management (IAM) jika belum memilikinya. Selain itu, akun itu juga harus melampirkan kebijakan IAM ke pengguna IAM yang memungkinkan pengguna untuk menyalin snapshot terenkripsi menggunakan kunci Anda. AWS KMS Akun harus pengguna IAM dan tidak dapat menjadi Akun AWS identitas root karena pembatasan AWS KMS keamanan.

Dalam contoh kebijakan kunci berikut, pengguna 123451234512 adalah pemilik kunci enkripsi. AWS KMS Pengguna 123456789012 adalah akun yang kuncinya sedang dibagikan dengannya. Kebijakan kunci yang diperbarui ini memberikan akses akun ke AWS KMS kunci. Ini dilakukan dengan memasukkan ARN untuk Akun AWS identitas root untuk pengguna 123456789012 sebagai prinsipal untuk kebijakan, dan dengan mengizinkan tindakan. kms:CreateGrant

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

Membuat Kebijakan IAM untuk Memungkinkan Penyalinan Snapshot Terenkripsi

Ketika eksternal Akun AWS memiliki akses ke AWS KMS kunci Anda, pemilik akun tersebut dapat membuat kebijakan untuk mengizinkan pengguna IAM yang dibuat untuk akun tersebut menyalin snapshot terenkripsi yang dienkripsi dengan kunci tersebut. AWS KMS

Contoh berikut menunjukkan kebijakan yang dapat dilampirkan ke pengguna IAM untuk Akun AWS 123456789012. Kebijakan ini memungkinkan pengguna IAM untuk menyalin snapshot bersama dari akun 123451234512 yang telah dienkripsi dengan kunci di Wilayah us-west-2. AWS KMS c989c1dd-a3f2-4a5d-8d96-e793d082ab26

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

Untuk detail tentang memperbarui kebijakan kunci, lihat Menggunakan Kebijakan Kunci di AWS KMS dalam Panduan Developer AWS Key Management Service .

Membagikan Snapshot

Untuk berbagi snapshot, gunakan operasi modify-db-snapshot-attribute Amazon DocumentDB. Gunakan --values-to-add parameter untuk menambahkan daftar ID untuk Akun AWS yang berwenang untuk mengembalikan snapshot manual.

Contoh berikut memungkinkan dua Akun AWS pengidentifikasi, 123451234512 dan 123456789012, untuk mengembalikan snapshot bernama. manual-snapshot1 Itu juga menghapus nilai atribut all untuk menandai snapshot sebagai privat.

Untuk Linux, macOS, atau Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-add '["123451234512","123456789012"]'

Untuk Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-add '["123451234512","123456789012"]'

Output dari operasi ini terlihat seperti berikut.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512", "123456789012" ] } ] } }

Untuk menghapus Akun AWS pengenal dari daftar, gunakan --values-to-remove parameter. Contoh berikut mencegah Akun AWS ID 123456789012 memulihkan snapshot.

Untuk Linux, macOS, atau Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-remove '["123456789012"]'

Untuk Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-remove '["123456789012"]'

Output dari operasi ini terlihat seperti berikut.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512" ] } ] } }