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 dengan Data Lifecycle Manager
Mengotomatiskan salinan snapshot lintas akun memungkinkan Anda menyalin EBS snapshot Amazon Anda ke Wilayah tertentu di akun yang 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 EBS snapshot 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:
Di akun sumber, buat kebijakan EBS snapshot 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 yang dapat digunakan untuk berbagi snapshot. Ini adalah akun yang akan digunakan untuk membagikan snapshot. Jika Anda berbagi snapshot terenkripsi, maka Anda harus memberikan izin akun target yang dipilih untuk menggunakan KMS kunci yang digunakan untuk mengenkripsi volume sumber. Untuk informasi selengkapnya, lihat Langkah 2: Bagikan kunci yang dikelola pelanggan (Akun sumber).
Anda hanya dapat berbagi snapshot yang tidak dienkripsi atau yang dienkripsi menggunakan kunci yang dikelola pelanggan. Anda tidak dapat membagikan snapshot yang dienkripsi dengan kunci enkripsi defaultEBS. KMS Jika Anda berbagi snapshot terenkripsi, maka Anda juga harus membagikan KMS kunci yang digunakan untuk mengenkripsi volume sumber dengan akun target. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain menggunakan KMS kunci di Panduan AWS Key Management Service Pengembang.
Untuk informasi selengkapnya tentang membuat kebijakan EBS snapshot, lihatBuat kebijakan kustom Amazon Data Lifecycle Manager untuk snapshot EBS.
Gunakan salah satu metode berikut untuk membuat kebijakan EBS snapshot.
Jika Anda berbagi snapshot terenkripsi, Anda harus memberikan izin IAM peran dan AWS
akun target (yang Anda pilih pada langkah sebelumnya) untuk menggunakan kunci terkelola pelanggan yang digunakan untuk mengenkripsi volume sumber.
Lakukan langkah ini hanya jika Anda berbagi snapshot terenkripsi. Jika Anda berbagi snapshot yang tidak dienkripsi, lewati langkah ini.
- Console
-
-
Buka AWS KMS konsol di https://console.aws.amazon.com/kms.
-
Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.
-
Di panel navigasi, pilih Kunci yang dikelola pelanggan dan kemudian pilih KMS kunci yang perlu Anda bagikan dengan akun target.
Catat KMS kuncinyaARN, Anda akan membutuhkannya nanti.
-
Pada tab Kebijakan kunci, gulir ke bawah ke bagian Pengguna kunci. Pilih Tambah, masukkan nama IAM peran yang Anda pilih pada langkah sebelumnya, lalu pilih Tambah.
-
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.
-
Pilih Simpan perubahan.
- Command line
-
Gunakan get-key-policyperintah untuk mengambil kebijakan kunci yang saat ini dilampirkan ke KMS kunci.
Misalnya, perintah berikut mengambil kebijakan kunci untuk KMS kunci dengan ID 9d5e2b3d-e410-4a27-a958-19e220d83a1e
dan menuliskannya ke file bernamasnapshotKey.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. Tambahkan IAM peran ARN yang Anda tentukan saat membuat kebijakan snapshot dan akun target ARNs yang dapat digunakan untuk berbagi KMS kunci.
Misalnya, dalam kebijakan berikut, kami menambahkan IAM peran default, dan akun root untuk akun target ARN ARN 222222222222.
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 KMS kunci 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 KMS kunci.
$
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
-
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.
-
Di panel navigasi, pilih Elastic Block Store, Lifecycle Manager, lalu pilih Buat kebijakan siklus hidup.
-
Pada layar Pilih jenis kebijakan, pilih Kebijakan peristiwa penyalinan lintas akun, lalu pilih Berikutnya.
-
Untuk Deskripsi kebijakan, masukkan deskripsi singkat untuk kebijakan tersebut.
-
Untuk Tanda kebijakan, tambahkan tanda untuk diterapkan ke kebijakan siklus hidup. Anda dapat menggunakan tanda ini untuk mengidentifikasi dan mengategorikan kebijakan Anda.
-
Di bagian Pengaturan peristiwa, tentukan peristiwa berbagi snapshot yang akan menyebabkan kebijakan berjalan. Lakukan hal berikut:
-
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.
-
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.
-
Untuk IAMperan, pilih IAM peran 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 IAM peran kustom yang Anda buat sebelumnya, pilih Pilih peran lain, lalu pilih peran yang akan digunakan.
Jika Anda menyalin snapshot terenkripsi, Anda harus memberikan izin IAM peran yang dipilih untuk menggunakan KMS kunci enkripsi yang digunakan untuk mengenkripsi volume sumber. Demikian pula, jika Anda mengenkripsi snapshot di Wilayah tujuan menggunakan KMS kunci yang berbeda, Anda harus memberikan izin IAM peran untuk menggunakan kunci tujuan. KMS Untuk informasi selengkapnya, lihat Langkah 4: Izinkan IAM peran menggunakan KMS kunci yang diperlukan (Akun target).
-
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:
-
Untuk Nama, masukkan nama deskriptif untuk tindakan penyalinan.
-
Untuk Wilayah target, pilih Wilayah untuk menyalin snapshot.
-
Untuk Kedaluwarsa, tentukan berapa lama untuk mempertahankan salinan snapshot di Wilayah target setelah pembuatan.
-
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 mengaktifkan enkripsi, tetapi tidak menentukan KMS kunci, snapshot dienkripsi menggunakan KMS kunci enkripsi default di setiap Wilayah tujuan. Jika Anda menentukan KMS kunci untuk Wilayah tujuan, Anda harus memiliki akses ke KMS kunci tersebut.
-
Untuk menambahkan tindakan penyalinan snapshot tambahan, pilih Tambahkan Wilayah baru.
-
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.
-
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 KMS kunci 8af79514-350d-4c52-bac8-8985e84171c7
dan disimpan selama 1 bulan. Kebijakan menggunakan IAM peran 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 IAM peran (yang Anda pilih pada langkah sebelumnya) untuk menggunakan kunci terkelola pelanggan yang digunakan untuk mengenkripsi volume sumber.
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 ke IAM peran.
- Console
-
-
Buka konsol IAM di https://console.aws.amazon.com/iam/.
-
Di panel navigasi, pilih Peran. Cari dan pilih IAM peran yang Anda pilih saat membuat kebijakan peristiwa salinan lintas akun di langkah sebelumnya. Jika Anda memilih untuk menggunakan peran default, peran tersebut diberi nama AWSDataLifecycleManagerDefaultRole.
-
Pilih Tambahkan kebijakan sebaris lalu pilih JSONtab.
-
Ganti kebijakan yang ada dengan yang berikut iniARN, dan tentukan KMS kunci yang digunakan untuk mengenkripsi volume sumber dan yang dibagikan dengan Anda oleh akun sumber di Langkah 2.
Jika Anda menyalin dari beberapa akun sumber, maka Anda harus menentukan KMS kunci yang sesuai ARN dari setiap akun sumber.
Dalam contoh berikut, kebijakan memberikan izin IAM peran untuk menggunakan KMS kunci1234abcd-12ab-34cd-56ef-1234567890ab
, yang dibagikan oleh akun sumber111111111111
, dan KMS kunci4567dcba-23ab-34cd-56ef-0987654321yz
, yang ada di akun 222222222222
target.
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 KMS kunci 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
"
]
}
]
}
-
Pilih Tinjau kebijakan
-
Untuk Nama, masukkan nama deskriptif untuk kebijakan, lalu pilih Buat kebijakan.
- Command line
-
Menggunakan editor teks pilihan Anda, buat JSON file baru bernamapolicyDetails.json
. Tambahkan kebijakan berikut dan tentukan KMS kunci ARN yang digunakan untuk mengenkripsi volume sumber dan yang dibagikan dengan Anda oleh akun sumber di Langkah 2.
Jika Anda menyalin dari beberapa akun sumber, maka Anda harus menentukan KMS kunci yang sesuai ARN dari setiap akun sumber.
Dalam contoh berikut, kebijakan memberikan izin IAM peran untuk menggunakan KMS kunci1234abcd-12ab-34cd-56ef-1234567890ab
, yang dibagikan oleh akun sumber111111111111
, dan KMS kunci4567dcba-23ab-34cd-56ef-0987654321yz
, yang ada di akun 222222222222
target.
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 KMS kunci 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 IAM peran.
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, maka IAM peran yang dipilih untuk kebijakan peristiwa salinan lintas akun harus memiliki izin untuk menggunakan kunci yang diperlukan. KMS
Sumber daya tambahan
Untuk informasi selengkapnya, lihat Mengotomatiskan menyalin snapshot EBS Amazon terenkripsi di seluruh blog penyimpanan akun AWS. AWS