Mengotomatiskan salinan snapshot lintas akun - Amazon Elastic Compute Cloud

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

Mengotomatiskan salinan snapshot lintas akun

Mengotomatisasi salinan snapshot lintas akun memungkinkan Anda untuk menyalin snapshot Amazon EBS Anda ke Wilayah tertentu dalam akun terisolasi dan mengenkripsi snapshot tersebut dengan kunci enkripsi. Hal ini memungkinkan Anda melindungi diri dari kehilangan data jika akun Anda disusupi.

Mengotomatisasi salinan snapshot lintas akun melibatkan dua akun:

  • Akun sumber—Akun sumber adalah akun yang membuat dan berbagi snapshot dengan akun target. Di akun ini, Anda harus membuat kebijakan snapshot EBS yang membuat snapshot pada interval yang ditetapkan dan kemudian membagikannya dengan akun lain. AWS

  • Akun target—Akun target adalah akun dengan akun tujuan tempat snapshot dibagikan, dan itu adalah akun yang membuat salinan dari snapshot bersama. Dalam akun ini, Anda harus membuat salinan lintas akun kebijakan peristiwa yang secara otomatis menyalin snapshot yang dibagi dengan snapshot tersebut oleh satu atau beberapa akun sumber tertentu.

Membuat kebijakan salinan snapshot lintas akun

Untuk mempersiapkan akun sumber dan target untuk menyalin snapshot lintas akun, Anda perlu melakukan langkah-langkah berikut:

Topik

    Di akun sumber, buat kebijakan snapshot EBS yang akan membuat snapshot dan membagikannya dengan akun target yang diperlukan.

    Saat membuat kebijakan, pastikan Anda mengaktifkan berbagi lintas akun dan Anda menentukan AWS akun target untuk berbagi snapshot. Ini adalah akun yang akan digunakan untuk membagikan snapshot. Jika Anda berbagi snapshot terenkripsi, Anda harus memberikan izin akun target yang dipilih untuk menggunakan kunci KMS yang digunakan untuk mengenkripsi volume sumber. Untuk informasi selengkapnya, lihat Langkah 2: Bagikan kunci yang dikelola pelanggan (Akun sumber).

    catatan

    Anda hanya dapat berbagi snapshot yang tidak dienkripsi atau yang dienkripsi menggunakan kunci yang dikelola pelanggan. Anda tidak dapat berbagi snapshot yang dienkripsi dengan kunci KMS enkripsi EBS default. Jika Anda berbagi snapshot terenkripsi, kemudian Anda juga harus berbagi kunci KMS yang digunakan untuk mengenkripsi volume sumber dengan akun target. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS di Panduan Developer AWS Key Management Service .

    Untuk informasi selengkapnya tentang cara membuat kebijakan snapshot EBS, lihat Mengotomatiskan siklus hidup snapshot.

    Gunakan salah satu metode berikut untuk membuat kebijakan snapshot EBS.

    Jika Anda berbagi snapshot terenkripsi, Anda harus memberikan izin kepada peran IAM dan akun AWS target (yang Anda pilih di langkah sebelumnya) untuk menggunakan kunci yang dikelola pelanggan yang digunakan untuk mengenkripsi volume sumber.

    catatan

    Lakukan langkah ini hanya jika Anda berbagi snapshot terenkripsi. Jika Anda berbagi snapshot yang tidak dienkripsi, lewati langkah ini.

    Console
    1. Buka AWS KMS konsol di https://console.aws.amazon.com/kms.

    2. Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.

    3. Di panel navigasi, pilih Kunci yang dikelola pelanggan, lalu pilih kunci KMS yang Anda butuhkan untuk berbagi dengan akun target.

      Catat ARN kunci KMS, Anda akan membutuhkan ini nanti.

    4. Pada tab Kebijakan kunci, gulir ke bawah ke bagian Pengguna kunci. Pilih Tambahkan, masukkan nama peran IAM yang Anda pilih di langkah sebelumnya, kemudian pilih Tambahkan.

    5. Pada tab Kebijakan kunci, gulir ke bawah ke bagian Akun AWS lainnya. Pilih Tambahkan AWS akun lain, lalu tambahkan semua AWS akun target yang Anda pilih untuk berbagi snapshot pada langkah sebelumnya.

    6. Pilih Simpan perubahan.

    Command line

    Gunakan get-key-policyperintah untuk mengambil kebijakan kunci yang saat ini dilampirkan ke kunci KMS.

    Misalnya, perintah berikut mengambil kebijakan kunci untuk kunci KMS dengan ID 9d5e2b3d-e410-4a27-a958-19e220d83a1e dan menulisnya ke sebuah file bernama snapshotKey.json.

    $ aws kms get-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --query Policy \ --output text > snapshotKey.json

    Buka kebijakan kunci menggunakan editor teks pilihan Anda. Menambahkan ARN peran IAM yang Anda tentukan ketika Anda membuat kebijakan snapshot dan ARN akun target yang digunakan untuk berbagi kunci KMS.

    Sebagai contoh, dalam kebijakan berikut, kami menambahkan ARN peran IAM default, dan ARN akun root untuk akun target 222222222222.

    Tip

    Untuk mengikuti prinsip hak akses paling rendah, jangan biarkan akses penuh ke kms:CreateGrant. Sebagai gantinya, gunakan tombol kms:GrantIsForAWSResource kondisi untuk memungkinkan pengguna membuat hibah pada kunci KMS hanya ketika hibah dibuat atas nama pengguna oleh AWS layanan, seperti yang ditunjukkan pada contoh berikut.

    { "Sid" : "Allow use of the key", "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole", "arn:aws:iam::222222222222:root" ] }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource" : "*" }, { "Sid" : "Allow attachment of persistent resources", "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole", "arn:aws:iam::222222222222:root" ] }, "Action" : [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource" : "*", "Condition" : { "Bool" : { "kms:GrantIsForAWSResource" : "true" } } }

    Simpan dan tutup file . Kemudian gunakan put-key-policyperintah untuk melampirkan kebijakan kunci yang diperbarui ke kunci KMS.

    $ aws kms put-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --policy file://snapshotKey.json

    Di akun target, Anda harus membuat kebijakan peristiwa penyalinan lintas akun yang secara otomatis akan menyalin snapshot yang dibagikan oleh akun sumber yang diperlukan.

    Kebijakan ini hanya berjalan di akun target ketika salah satu akun sumber tertentu berbagi snapshot dengan akun.

    Gunakan salah satu metode berikut untuk membuat peristiwa penyalinan lintas akun.

    Console
    1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

    2. Di panel navigasi, pilih Elastic Block Store, Lifecycle Manager, lalu pilih Buat kebijakan siklus hidup.

    3. Pada layar Pilih jenis kebijakan, pilih Kebijakan peristiwa penyalinan lintas akun, lalu pilih Berikutnya.

    4. Untuk Deskripsi kebijakan, masukkan deskripsi singkat untuk kebijakan tersebut.

    5. Untuk Tanda kebijakan, tambahkan tanda untuk diterapkan ke kebijakan siklus hidup. Anda dapat menggunakan tanda ini untuk mengidentifikasi dan mengategorikan kebijakan Anda.

    6. Di bagian Pengaturan peristiwa, tentukan peristiwa berbagi snapshot yang akan menyebabkan kebijakan berjalan. Lakukan hal berikut:

      1. Untuk Berbagi akun, tentukan AWS akun sumber tempat Anda ingin menyalin snapshot bersama. Pilih Tambah akun, masukkan ID AWS akun 12 digit, lalu pilih Tambah.

      2. Untuk Filter berdasarkan deskripsi, masukkan deskripsi snapshot yang diperlukan menggunakan ekspresi reguler. Hanya snapshot yang dibagikan oleh akun sumber tertentu dan memiliki deskripsi yang cocok dengan filter tertentu yang disalin oleh kebijakan. Untuk informasi selengkapnya, lihat Tentukan filter deskripsi snapshot.

    7. Untuk peran IAM, pilih peran IAM yang memiliki izin untuk melakukan tindakan penyalinan snapshot. Untuk menggunakan peran default yang disediakan oleh Amazon Data Lifecycle Manager, pilih Peran default. Atau, untuk menggunakan peran IAM kustom yang Anda buat sebelumnya, pilih Pilih peran lain, lalu pilih peran yang akan digunakan.

      Jika Anda menyalin snapshot terenkripsi, Anda harus memberikan izin peran IAM yang dipilih untuk menggunakan kunci enkripsi KMS yang digunakan untuk mengenkripsi volume sumber. Demikian pula, jika Anda mengenkripsi snapshot di Wilayah tujuan menggunakan kunci KMS yang berbeda, Anda harus memberikan izin kepada peran IAM untuk menggunakan kunci KMS tujuan. Untuk informasi selengkapnya, lihat Langkah 4: Memungkinkan peran IAM untuk menggunakan kunci KMS yang diperlukan (Akun target).

    8. Di bagian Salin tindakan, tentukan tindakan penyalinan snapshot yang harus dilakukan kebijakan saat diaktifkan. Kebijakan ini dapat menyalin snapshot hingga ke tiga Wilayah. Anda harus menentukan aturan salinan lintas wilayah terpisah untuk setiap Wilayah tujuan. Untuk setiap jadwal kebijakan yang Anda tambahkan, lakukan hal berikut:

      1. Untuk Nama, masukkan nama deskriptif untuk tindakan penyalinan.

      2. Untuk Wilayah target, pilih Wilayah untuk menyalin snapshot.

      3. Untuk Kedaluwarsa, tentukan berapa lama untuk mempertahankan salinan snapshot di Wilayah target setelah pembuatan.

      4. Untuk mengenkripsi salinan snapshot, untuk Enkripsi, pilih Aktifkan enkripsi. Jika snapshot sumber dienkripsi, atau jika enkripsi secara default diaktifkan untuk akun Anda, salinan snapshot selalu dienkripsi, meskipun Anda mengaktifkan enkripsi di sini. Jika snapshot sumber tidak dienkripsi dan enkripsi secara default tidak diaktifkan untuk akun Anda, Anda dapat memilih untuk mengaktifkan atau menonaktifkan enkripsi. Jika Anda tidak mengaktifkan enkripsi, tetapi tidak menentukan kunci KMS, snapshot dienkripsi menggunakan kunci KMS enkripsi default untuk setiap Wilayah tujuan. Jika Anda menentukan kunci KMS untuk Wilayah tujuan, Anda harus memiliki akses ke kunci KMS.

    9. Untuk menambahkan tindakan penyalinan snapshot tambahan, pilih Tambahkan Wilayah baru.

    10. Untuk Status kebijakan setelah pembuatan, pilih Aktifkan kebijakan untuk memulai pelaksanaan kebijakan pada waktu yang dijadwalkan berikutnya, atau Nonaktifkan kebijakan untuk mencegah agar kebijakan tidak berjalan. Jika Anda tidak mengaktifkan kebijakan sekarang, kebijakan tidak akan mulai membuat snapshot sampai Anda mengaktifkannya secara manual setelah pembuatan.

    11. Pilih Buat kebijakan.

    Command line

    Gunakan create-lifecycle-policyperintah untuk membuat kebijakan. Untuk membuat kebijakan peristiwa salinan lintas akun, untuk PolicyType, tentukan EVENT_BASED_POLICY.

    Sebagai contoh, perintah berikut membuat kebijakan menyalin peristiwa lintas akun di akun target 222222222222. Kebijakan menyalin snapshot yang dibagi oleh akun sumber 111111111111. Kebijakan menyalin snapshot ke sa-east-1 dan eu-west-2. Snapshot yang disalin ke sa-east-1 tidak dienkripsi dan dipertahankan selama 3 hari. Snapshot yang disalin ke eu-west-2 dienkripsi menggunakan kunci KMS 8af79514-350d-4c52-bac8-8985e84171c7 dan dipertahankan selama 1 bulan. Kebijakan menggunakan peran IAM default.

    $ aws dlm create-lifecycle-policy \ --description "Copy policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::222222222222:role/service-role/AWSDataLifecycleManagerDefaultRole \ --policy-details file://policyDetails.json

    Berikut ini menunjukkan isi file policyDetails.json.

    { "PolicyType" : "EVENT_BASED_POLICY", "EventSource" : { "Type" : "MANAGED_CWE", "Parameters": { "EventType" : "shareSnapshot", "SnapshotOwner": ["111111111111"] } }, "Actions" : [{ "Name" :"Copy Snapshot to Sao Paulo and London", "CrossRegionCopy" : [{ "Target" : "sa-east-1", "EncryptionConfiguration" : { "Encrypted" : false }, "RetainRule" : { "Interval" : 3, "IntervalUnit" : "DAYS" } }, { "Target" : "eu-west-2", "EncryptionConfiguration" : { "Encrypted" : true, "CmkArn" : "arn:aws:kms:eu-west-2:222222222222:key/8af79514-350d-4c52-bac8-8985e84171c7" }, "RetainRule" : { "Interval" : 1, "IntervalUnit" : "MONTHS" } }] }] }

    Jika permintaan berhasil, perintah mengembalikan ID kebijakan yang baru dibuat. Berikut ini adalah output contoh.

    { "PolicyId": "policy-9876543210abcdef0" }

    Jika Anda menyalin snapshot terenkripsi, Anda harus memberikan izin kepada peran IAM (yang Anda pilih di langkah sebelumnya) untuk menggunakan kunci yang dikelola pelanggan yang digunakan untuk mengenkripsi volume sumber.

    catatan

    Hanya lakukan langkah ini jika Anda menyalin snapshot terenkripsi. Jika Anda menyalin snapshot yang tidak dienkripsi, lewati langkah ini.

    Gunakan salah satu metode berikut untuk menambahkan kebijakan yang diperlukan peran IAM.

    Console
    1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

    2. Di panel navigasi, pilih Peran. Cari dan pilih peran IAM yang Anda pilih saat Anda membuat kebijakan peristiwa salinan lintas akun pada langkah sebelumnya. Jika Anda memilih untuk menggunakan peran default, peran tersebut diberi nama AWSDataLifecycleManagerDefaultRole.

    3. Pilih Tambahkan kebijakan inline kemudian pilih tab JSON.

    4. Ganti kebijakan yang ada dengan yang berikut ini, dan tentukan ARN kunci KMS yang digunakan untuk mengenkripsi volume sumber dan yang dibagikan dengan Anda oleh akun sumber di Langkah 2.

      catatan

      Jika Anda menyalin dari beberapa akun sumber, Anda harus menentukan ARN kunci KMS yang sesuai dari setiap akun sumber.

      Pada contoh berikut, kebijakan memberikan izin peran IAM untuk menggunakan kunci KMS 1234abcd-12ab-34cd-56ef-1234567890ab, yang dibagikan oleh akun sumber 111111111111, dan kunci KMS4567dcba-23ab-34cd-56ef-0987654321yz, yang ada di akun target 222222222222.

      Tip

      Untuk mengikuti prinsip hak akses paling rendah, jangan biarkan akses penuh ke kms:CreateGrant. Sebagai gantinya, gunakan tombol kms:GrantIsForAWSResource kondisi untuk memungkinkan pengguna membuat hibah pada kunci KMS hanya ketika hibah dibuat atas nama pengguna oleh AWS layanan, seperti yang ditunjukkan pada contoh berikut.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:RevokeGrant", "kms:CreateGrant", "kms:ListGrants" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ] } ] }
    5. Pilih Tinjau kebijakan

    6. Untuk Nama, masukkan nama deskriptif untuk kebijakan, lalu pilih Buat kebijakan.

    Command line

    Menggunakan editor teks pilihan Anda, buat file JSON baru bernama policyDetails.json. Ganti kebijakan yang ada dengan yang berikut ini, dan tentukan ARN kunci KMS yang digunakan untuk mengenkripsi volume sumber dan yang dibagikan dengan Anda oleh akun sumber di Langkah 2.

    catatan

    Jika Anda menyalin dari beberapa akun sumber, Anda harus menentukan ARN kunci KMS yang sesuai dari setiap akun sumber.

    Pada contoh berikut, kebijakan memberikan izin peran IAM untuk menggunakan kunci KMS 1234abcd-12ab-34cd-56ef-1234567890ab, yang dibagikan oleh akun sumber 111111111111, dan kunci KMS4567dcba-23ab-34cd-56ef-0987654321yz, yang ada di akun target 222222222222.

    Tip

    Untuk mengikuti prinsip hak akses paling rendah, jangan biarkan akses penuh ke kms:CreateGrant. Sebagai gantinya, gunakan tombol kms:GrantIsForAWSResource kondisi untuk memungkinkan pengguna membuat hibah pada kunci KMS hanya ketika hibah dibuat atas nama pengguna oleh AWS layanan, seperti yang ditunjukkan pada contoh berikut.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:RevokeGrant", "kms:CreateGrant", "kms:ListGrants" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ] } ] }

    Simpan dan tutup file . Kemudian gunakan put-role-policyperintah untuk menambahkan kebijakan ke peran IAM.

    Sebagai contoh

    $ aws iam put-role-policy \ --role-name AWSDataLifecycleManagerDefaultRole \ --policy-name CopyPolicy \ --policy-document file://AdminPolicy.json

    Tentukan filter deskripsi snapshot

    Ketika Anda membuat kebijakan penyalinan snapshot di akun target, Anda harus menentukan filter deskripsi snapshot. Snapshot deskripsi filter memungkinkan Anda untuk menentukan tingkat tambahan pemfilteran yang memungkinkan Anda mengontrol snapshot yang disalin oleh kebijakan. Artinya, snapshot hanya disalin oleh kebijakan jika dibagikan oleh salah satu akun sumber tertentu, dan memiliki deskripsi snapshot yang cocok dengan filter yang ditentukan. Dengan kata lain, jika snapshot dibagi oleh salah satu akun kursus yang ditentukan, tetapi tidak memiliki deskripsi yang cocok dengan filter yang ditentukan, itu tidak disalin oleh kebijakan.

    Deskripsi filter snapshot harus ditentukan menggunakan ekspresi reguler. Ini adalah bidang wajib saat membuat kebijakan peristiwa penyalinan lintas akun menggunakan konsol dan baris perintah. Berikut ini adalah contoh ekspresi reguler yang dapat digunakan:

    • .*—Filter ini cocok dengan semua deskripsi snapshot. Jika Anda menggunakan ekspresi ini kebijakan akan menyalin semua snapshot yang dibagi oleh salah satu akun sumber tertentu.

    • Created for policy: policy-0123456789abcdef0.*—Filter ini hanya cocok dengan snapshot yang dibuat oleh kebijakan dengan ID policy-0123456789abcdef0. Jika Anda menggunakan ekspresi seperti ini, hanya snapshot yang dibagikan dengan akun Anda oleh salah satu akun sumber tertentu, dan yang telah dibuat oleh kebijakan dengan ID tertentu yang akan disalin oleh kebijakan tersebut.

    • .*production.*—Filter ini cocok dengan setiap snapshot yang memiliki kata production di mana saja dalam deskripsi. Jika Anda menggunakan ekspresi ini kebijakan akan menyalin semua snapshot yang dibagi oleh salah satu akun sumber tertentu dan yang memiliki teks tertentu dalam deskripsi mereka.

    Pertimbangan untuk kebijakan penyalinan snapshot lintas akun

    Pertimbangan berikut berlaku untuk kebijakan peristiwa penyalinan lintas akun:

    • Anda hanya dapat menyalin snapshot yang tidak dienkripsi atau yang dienkripsi menggunakan kunci yang dikelola pelanggan.

    • Anda dapat membuat kebijakan peristiwa penyalinan lintas akun untuk menyalin snapshot yang dibagi di luar Amazon Data Lifecycle Manager.

    • Jika Anda ingin mengenkripsi snapshot di akun target, peran IAM yang dipilih untuk kebijakan peristiwa salinan lintas akun harus memiliki izin untuk menggunakan kunci KMS yang diperlukan.

    Sumber daya tambahan

    Untuk informasi selengkapnya, lihat Mengotomatisasi menyalin snapshot AWS Amazon EBS terenkripsi di seluruh blog penyimpanan akun. AWS