Siapkan distribusi AMI lintas akun dengan Image Builder - EC2 Image Builder

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

Siapkan distribusi AMI lintas akun dengan Image Builder

Bagian ini menjelaskan bagaimana Anda dapat mengonfigurasi setelan distribusi untuk mengirimkan Image Builder AMI ke akun lain yang Anda tentukan.

Akun tujuan kemudian dapat meluncurkan atau memodifikasi AMI, sesuai kebutuhan.

catatan

AWS CLIcontoh perintah di bagian ini mengasumsikan bahwa Anda sebelumnya telah membuat resep gambar dan konfigurasi infrastruktur file JSON. Untuk membuat file JSON untuk resep gambar, lihatBuat resep gambar dengan AWS CLI. Untuk membuat file JSON untuk konfigurasi infrastruktur, lihatMembuat konfigurasi infrastruktur.

Prasyarat

Untuk memastikan bahwa akun target berhasil meluncurkan instance dari image Image Builder, Anda harus mengonfigurasi izin yang sesuai untuk semua akun tujuan di semua Wilayah.

Jika Anda mengenkripsi AMI menggunakan AWS Key Management Service (AWS KMS), Anda harus mengonfigurasi AWS KMS key untuk akun Anda yang digunakan untuk mengenkripsi gambar baru.

Saat Image Builder melakukan distribusi lintas akun untuk AMI terenkripsi, gambar di akun sumber didekripsi dan didorong ke Wilayah target, di mana gambar tersebut dienkripsi ulang menggunakan kunci yang ditentukan untuk Wilayah tersebut. Karena Image Builder bertindak atas nama akun target, dan menggunakan peran IAM yang Anda buat di Wilayah tujuan, akun tersebut harus memiliki akses ke kunci di Wilayah sumber dan tujuan.

Kunci enkripsi

Prasyarat berikut diperlukan jika gambar Anda dienkripsi menggunakan. AWS KMS Prasyarat IAM tercakup dalam bagian selanjutnya.

Persyaratan akun sumber
  • Buat kunci KMS di akun Anda di semua Wilayah tempat Anda membangun dan mendistribusikan AMI Anda. Anda juga dapat menggunakan kunci yang ada.

  • Perbarui kebijakan kunci untuk semua kunci tersebut agar akun tujuan dapat menggunakan kunci Anda.

Persyaratan akun tujuan
  • Tambahkan kebijakan inline EC2ImageBuilderDistributionCrossAccountRole yang memungkinkan peran melakukan tindakan yang diperlukan untuk mendistribusikan AMI terenkripsi. Untuk langkah-langkah konfigurasi IAM, lihat bagian Kebijakan IAM prasyarat.

Untuk informasi selengkapnya tentang penggunaan akses lintas akunAWS KMS, lihat Mengizinkan pengguna di akun lain menggunakan kunci KMS di Panduan AWS Key Management Service Pengembang.

Tentukan kunci enkripsi Anda dalam resep gambar, sebagai berikut:

  • Jika Anda menggunakan konsol Image Builder, pilih kunci enkripsi Anda dari daftar dropdown Encryption (alias KMS) di bagian Storage (volume) resep Anda.

  • Jika Anda menggunakan tindakan CreateImageRecipe API, atau create-image-recipe perintah diAWS CLI, konfigurasikan kunci Anda di ebs bagian blockDeviceMappings di bawah input JSON Anda.

    Cuplikan JSON berikut menunjukkan pengaturan enkripsi untuk resep gambar. Selain menyediakan kunci enkripsi Anda, Anda juga harus menyetel encrypted flag ketrue.

    { ... "blockDeviceMappings": [ { "deviceName": "Example root volume", "ebs": { "deleteOnTermination": true, "encrypted": true, "iops": 100, "kmsKeyId": "image-owner-key-id", ... }, ... }], ... }

Kebijakan IAM

Untuk mengonfigurasi izin distribusi lintas akun di AWS Identity and Access Management (IAM), ikuti langkah-langkah berikut:

  1. Untuk menggunakan AMI Image Builder yang didistribusikan di seluruh akun, pemilik akun tujuan harus membuat peran IAM baru di akun mereka yang dipanggilEC2ImageBuilderDistributionCrossAccountRole.

  2. Mereka harus melampirkan Ec2ImageBuilderCrossAccountDistributionAccesskebijakan peran untuk memungkinkan distribusi lintas akun. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat Kebijakan Terkelola dan Kebijakan Inline dalam Panduan Pengguna AWS Identity and Access Management.

  3. Verifikasi bahwa ID akun sumber ditambahkan ke kebijakan kepercayaan yang dilampirkan pada peran IAM dari akun tujuan. Untuk informasi selengkapnya tentang kebijakan kepercayaan, lihat Kebijakan Berbasis Sumber Daya di Panduan Pengguna. AWS Identity and Access Management

  4. Jika AMI yang Anda distribusikan dienkripsi, pemilik akun tujuan harus menambahkan kebijakan inline berikut ke akun mereka sehingga mereka dapat menggunakan kunci KMS Anda. EC2ImageBuilderDistributionCrossAccountRole PrincipalBagian ini berisi nomor akun mereka. Hal ini memungkinkan Image Builder bertindak atas nama mereka saat digunakan AWS KMS untuk mengenkripsi dan mendekripsi AMI dengan kunci yang sesuai untuk setiap Wilayah.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" } ] }

    Untuk informasi selengkapnya tentang kebijakan sebaris, lihat Kebijakan Sebaris di AWS Identity and Access ManagementPanduan Pengguna.

  5. Jika Anda menggunakan launchTemplateConfigurations untuk menentukan template peluncuran Amazon EC2, Anda juga harus menambahkan kebijakan berikut ke setiap EC2ImageBuilderDistributionCrossAccountRole akun tujuan.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplateVersion", "ec2:ModifyLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/CreatedBy": "EC2 Image Builder" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeLaunchTemplates" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:launch-template/*", "Condition": { "StringEquals": { "aws:RequestTag/CreatedBy": "EC2 Image Builder" } } } ] }

Batas untuk distribusi lintas akun

Ada beberapa batasan saat mendistribusikan image Image Builder di seluruh akun:

  • Akun tujuan dibatasi hingga 50 salinan AMI bersamaan untuk setiap Wilayah tujuan.

  • Jika Anda ingin menyalin AMI virtualisasi paravirtual (PV) ke Wilayah lain, Wilayah tujuan harus mendukung AMI virtualisasi PV. Untuk informasi selengkapnya, lihat Jenis virtualisasi Linux AMI.

  • Anda tidak dapat membuat salinan snapshot terenkripsi yang tidak terenkripsi. Jika Anda tidak menentukan kunci yang dikelola pelanggan AWS Key Management Service (AWS KMS) untuk KmsKeyId parameter, Image Builder menggunakan kunci default untuk Amazon Elastic Block Store (Amazon EBS). Untuk informasi lebih lanjut, lihat Enkripsi Amazon EBS di Panduan Pengguna Amazon Elastic Compute Cloud.

Untuk informasi selengkapnya, lihat CreateDistributionConfigurationdi Referensi API EC2 Image Builder.

Konfigurasikan distribusi lintas akun untuk Image Builder AMI (konsol)

Bagian ini menjelaskan cara membuat dan mengonfigurasi setelan distribusi untuk distribusi lintas akun AMI Image Builder Anda menggunakan. AWS Management Console Mengkonfigurasi distribusi lintas akun memerlukan izin IAM tertentu. Anda harus menyelesaikan Prasyarat bagian ini sebelum melanjutkan.

Untuk membuat setelan distribusi di konsol Image Builder, ikuti langkah-langkah berikut:

  1. Buka konsol EC2 Image Builder di https://console.aws.amazon.com/imagebuilder/.

  2. Pilih Pengaturan distribusi dari panel navigasi. Ini menunjukkan daftar pengaturan distribusi yang dibuat di bawah akun Anda.

  3. Di bagian atas halaman Pengaturan distribusi, pilih Buat pengaturan distribusi. Ini akan membawa Anda ke halaman Buat pengaturan distribusi.

  4. Di bagian Jenis gambar, pilih Amazon Machine Image (AMI) sebagai tipe Output. Ini adalah pengaturan default.

  5. Di bagian Umum, masukkan Nama sumber daya pengaturan distribusi yang ingin Anda buat (wajib).

  6. Di bagian Pengaturan wilayah, masukkan ID akun 12 digit yang ingin Anda distribusikan AMI Anda di akun Target untuk Wilayah yang dipilih, dan tekan Enter. Ini memeriksa pemformatan yang benar, dan kemudian menampilkan ID akun yang Anda masukkan di bawah kotak. Ulangi proses ini untuk menambahkan lebih banyak akun.

    Untuk menghapus akun yang Anda masukkan, pilih X yang ditampilkan di sebelah kanan ID akun.

    Masukkan nama Output AMI untuk setiap Wilayah.

  7. Lanjutkan menentukan pengaturan tambahan apa pun yang Anda perlukan, dan pilih Buat pengaturan untuk membuat sumber daya pengaturan distribusi baru Anda.

Konfigurasikan distribusi lintas akun untuk Image Builder AMI () AWS CLI

Bagian ini menjelaskan cara mengonfigurasi file pengaturan distribusi dan menggunakan create-image perintah di dalam AWS CLI untuk membangun dan mendistribusikan Image Builder AMI di seluruh akun.

Mengkonfigurasi distribusi lintas akun memerlukan izin IAM tertentu. Anda harus menyelesaikan Prasyarat untuk bagian ini sebelum Anda menjalankan create-image perintah.

  1. Konfigurasikan file pengaturan distribusi

    Sebelum Anda menggunakan create-image perintah dalam AWS CLI untuk membuat Image Builder AMI yang didistribusikan ke akun lain, Anda harus membuat struktur DistributionConfiguration JSON yang menentukan ID akun target dalam pengaturan. AmiDistributionConfiguration Anda harus menentukan setidaknya satu AmiDistributionConfiguration di Wilayah sumber.

    File contoh berikut, bernamacreate-distribution-configuration.json, menunjukkan konfigurasi untuk distribusi gambar lintas akun di Wilayah sumber.

    { "name": "cross-account-distribution-example", "description": "Cross Account Distribution Configuration Example", "distributions": [ { "amiDistributionConfiguration": { "targetAccountIds": ["123456789012", "987654321098"], "name": "Name {{ imagebuilder:buildDate }}", "description": "ImageCopy Ami Copy Configuration" }, "region": "us-west-2" } ] }
  2. Buat pengaturan distribusi

    Untuk membuat sumber daya pengaturan distribusi Image Builder menggunakan create-distribution-configurationperintah diAWS CLI, berikan parameter berikut dalam perintah:

    • Masukkan nama distribusi dalam --name parameter.

    • Lampirkan file JSON konfigurasi distribusi yang Anda buat di --cli-input-json parameter.

    aws imagebuilder create-distribution-configuration --name my distribution name --cli-input-json file://create-distribution-configuration.json
    catatan
    • Anda harus menyertakan notasi file:// pada awal jalur file JSON.

    • Jalur untuk file JSON harus mengikuti konvensi yang sesuai untuk sistem operasi dasar tempat Anda menjalankan perintah. Sebagai contoh, Windows menggunakan garis miring terbalik (\) sedangkan Linux menggunakan garis miring (/) untuk merujuk ke jalur direktori.

Anda juga dapat memberikan JSON langsung dalam perintah, menggunakan --distributions parameter.