View a markdown version of this page

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 cara mengonfigurasi pengaturan distribusi untuk mengirimkan AMI Pembuat Gambar ke akun lain yang Anda tentukan.

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

Tip

Untuk informasi tentang contoh yang dapat diterapkan yang menyertakan kebijakan AWS KMS utama dan peran akun target, lihat contoh AMI lintas- akun pada. GitHub Repositori yang sama mencakup varian Terraform. Untuk informasi selengkapnya, lihat Jelajahi contoh proyek Pembuat Gambar di GitHub.

catatan

AWS CLI contoh perintah di bagian ini mengasumsikan bahwa Anda sebelumnya telah membuat file JSON resep gambar dan konfigurasi infrastruktur. 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 distribusi AMI lintas akun

Untuk memastikan bahwa akun target dapat berhasil meluncurkan instance dari image Pembuat Gambar Anda, 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 sebuah 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 ia dienkripsi ulang menggunakan kunci yang ditunjuk untuk Wilayah tersebut. Karena Pembuat Gambar 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 berikutnya.

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 sebaris EC2ImageBuilderDistributionCrossAccountRole yang memungkinkan peran untuk 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 akun AWS KMS, lihat Mengizinkan pengguna di akun lain menggunakan kunci KMS di Panduan Peng AWS Key Management Service embang.

Tentukan kunci enkripsi Anda dalam resep gambar, sebagai berikut:

  • Jika Anda menggunakan konsol Image Builder, pilih kunci enkripsi Anda dari daftar drop-down Enkripsi (alias KMS) di bagian Peny impanan (volume) resep Anda.

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

    Cuplikan JSON berikut menunjukkan pengaturan enkripsi untuk resep gambar. Selain memberikan kunci enkripsi Anda, Anda juga harus mengatur ben encrypted dera 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 Pembuat Gambar yang didistribusikan di seluruh akun, pemilik akun tujuan harus membuat peran IAM baru di akun yang dipanggilEC2ImageBuilderDistributionCrossAccountRole.

  2. Mereka harus melampirkan Ec2ImageBuilderCrossAccountDistributionAccess kebijakan ke peran untuk mengaktifkan 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 ke peran IAM akun tujuan. Contoh berikut menunjukkan kebijakan kepercayaan di akun tujuan yang menentukan ID akun dari akun sumber.

    JSON
    { "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "sts:AssumeRole" }] }

    Untuk informasi selengkapnya tentang kebijakan kepercayaan, lihat Resource-Based Kebijakan di Panduan AWS Identity and Access Management Pengguna.

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

    JSON
    { "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 Panduan AWS Identity and Access Management Pengguna.

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

    JSON
    { "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" } } } ] }
  6. Jika Anda menggunakan AWS Systems Manager parameter Penyimpanan Parameter untuk menyimpan ID AMI dari AMI keluaran untuk akun distribusi dan Wilayah, Anda harus menambahkan kebijakan berikut ke akun Anda EC2ImageBuilderDistributionCrossAccountRole di setiap tujuan.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeImages" ], "Resource": "*" } ] }

Batas untuk distribusi lintas akun

Ada beberapa batasan saat mendistribusikan gambar Pembuat Gambar 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 dienkripsi. 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 CreateDistributionConfiguration di Refer ensi API Pembuat Gambar EC2.

Mengkonfigurasi distribusi lintas akun untuk AMI Pembuat Gambar dari konsol

Bagian ini menjelaskan cara membuat dan mengonfigurasi setelan distribusi untuk distribusi lintas akun dari AMI Pembuat Gambar menggunakan. Konsol Manajemen AWS Mengkonfigurasi distribusi lintas akun memerlukan izin IAM tertentu. Anda harus menyelesaikan Prasyarat untuk distribusi AMI lintas akun bagian ini sebelum melanjutkan.

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

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

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

  3. Di bagian atas halaman Peng aturan distribusi, pilih Buat pengaturan distribusi. Ini 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 untuk menambahkan lebih banyak akun.

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

    Masukkan nama AMI keluaran untuk setiap Wilayah.

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

Konfigurasikan distribusi lintas akun untuk AMI Pembuat Gambar dari AWS CLI

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

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

  1. Mengkonfigurasi file pengaturan distribusi

    Sebelum Anda menggunakan create-image perintah di AWS CLI untuk membuat AMI Pembuat Gambar yang didistribusikan ke akun lain, Anda harus membuat struktur DistributionConfiguration JSON yang menentukan ID akun target dalam AmiDistributionConfiguration pengaturan. 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 perintah create-distribution-configuration di AWS 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. Misalnya, Windows menggunakan garis miring terbalik (\) untuk merujuk ke jalur direktori, sementara Linux dan macOS menggunakan garis miring maju (/).

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