Kontrol penggunaan template peluncuran Amazon EC2 di grup Auto Scaling - EC2Auto Scaling Amazon

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

Kontrol penggunaan template peluncuran Amazon EC2 di grup Auto Scaling

Amazon EC2 Auto Scaling mendukung penggunaan templat peluncuran Amazon EC2 dengan grup Auto Scaling Anda. Kami menyarankan Anda mengizinkan pengguna untuk membuat grup Auto Scaling dari template peluncuran, karena hal itu memungkinkan mereka untuk menggunakan fitur terbaru Amazon EC2 Auto Scaling dan Amazon EC2. Misalnya, pengguna harus menentukan template peluncuran untuk menggunakan kebijakan instance campuran.

Anda dapat menggunakan AmazonEC2FullAccess kebijakan ini untuk memberi pengguna akses lengkap agar dapat bekerja dengan sumber daya Penskalaan Otomatis Amazon EC2, templat peluncuran, dan sumber daya EC2 lainnya di akun mereka. Atau, Anda dapat membuat kebijakan IAM kustom Anda sendiri untuk memberi pengguna izin halus untuk bekerja dengan templat peluncuran, seperti yang dijelaskan dalam topik ini.

Contoh kebijakan yang dapat Anda sesuaikan untuk penggunaan Anda sendiri

Berikut ini menunjukkan contoh kebijakan izin dasar yang dapat Anda sesuaikan untuk digunakan sendiri. Kebijakan ini memberikan izin untuk membuat, memperbarui, dan menghapus semua grup Auto Scaling, tetapi hanya jika grup menggunakan tag. purpose=testing Kemudian memberikan izin untuk semua Describe tindakan. Karena Describe tindakan tidak mendukung izin tingkat sumber daya, Anda harus menentukannya dalam pernyataan terpisah tanpa kondisi.

Identitas IAM (pengguna atau peran) dengan kebijakan ini memiliki izin untuk membuat atau memperbarui grup Auto Scaling menggunakan templat peluncuran karena mereka juga diberi izin untuk menggunakan tindakan. ec2:RunInstances

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }

Pengguna yang membuat atau memperbarui grup Auto Scaling mungkin memerlukan beberapa izin terkait, seperti:

Izin untuk tindakan yang harus diselesaikan saat meluncurkan instance dicentang saat pengguna berinteraksi dengan grup Auto Scaling. Untuk informasi selengkapnya, lihat Validasi izin untuk dan ec2:RunInstancesiam:PassRole.

Contoh berikut menunjukkan pernyataan kebijakan yang dapat Anda gunakan untuk mengontrol akses yang pengguna IAM harus menggunakan template peluncuran.

Memerlukan template peluncuran yang memiliki tag tertentu

Saat memberikan ec2:RunInstances izin, Anda dapat menentukan bahwa pengguna hanya dapat menggunakan templat peluncuran dengan tag tertentu atau ID tertentu untuk membatasi izin saat meluncurkan instance dengan templat peluncuran. Anda juga dapat mengontrol AMI dan sumber daya lain yang dapat direferensikan dan digunakan oleh siapa pun yang menggunakan templat peluncuran saat meluncurkan instance dengan menentukan izin tingkat sumber daya tambahan untuk panggilan tersebut. RunInstances

Contoh berikut membatasi izin untuk ec2:RunInstances tindakan untuk meluncurkan template yang terletak di Wilayah tertentu dan yang memiliki tag. purpose=testing Ini juga memberi pengguna akses ke sumber daya yang ditentukan dalam template peluncuran: AMI, jenis instance, volume, pasangan kunci, antarmuka jaringan, dan grup keamanan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account-id:instance/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/*" ] } ] }

Untuk informasi selengkapnya tentang penggunaan kebijakan berbasis tag dengan templat peluncuran, lihat Mengontrol akses untuk meluncurkan templat dengan izin IAM di Panduan Pengguna Amazon EC2.

Memerlukan template peluncuran dan nomor versi

Anda juga dapat menggunakan izin IAM untuk menegakkan bahwa template peluncuran dan nomor versi template peluncuran harus ditentukan saat membuat atau memperbarui grup Auto Scaling.

Contoh berikut memungkinkan pengguna untuk membuat dan memperbarui grup Auto Scaling hanya jika template peluncuran dan nomor versi template peluncuran ditentukan. Jika pengguna dengan kebijakan ini menghilangkan nomor versi untuk menentukan versi templat $Latest atau $Default peluncuran, atau mencoba menggunakan konfigurasi peluncuran, tindakan akan gagal.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }

Memerlukan penggunaan layanan metadata instance versi 2 (IMDSv2)

Untuk keamanan ekstra, Anda dapat mengatur izin pengguna agar memerlukan penggunaan templat peluncuran yang memerlukan IMDSv2. Untuk informasi selengkapnya, lihat Mengonfigurasi layanan metadata instans di Panduan Pengguna Amazon EC2.

Contoh berikut menetapkan bahwa pengguna tidak dapat memanggil ec2:RunInstances tindakan kecuali instance juga memilih untuk meminta penggunaan ImDSv2 (ditunjukkan oleh). "ec2:MetadataHttpTokens":"required"

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
Tip

Untuk memaksa instance Auto Scaling pengganti diluncurkan yang menggunakan template peluncuran baru atau versi baru template peluncuran dengan opsi metadata instans yang dikonfigurasi, Anda dapat memulai penyegaran instans. Untuk informasi selengkapnya, lihat Perbarui instans Auto Scaling.

Batasi akses ke sumber daya Amazon EC2

Contoh berikut mengontrol konfigurasi instans yang dapat diluncurkan pengguna dengan membatasi akses ke sumber daya Amazon EC2. Untuk menentukan izin tingkat sumber daya untuk sumber daya yang ditentukan dalam templat peluncuran, Anda harus menyertakan sumber daya dalam pernyataan tindakan. RunInstances

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account-id:launch-template/*", "arn:aws:ec2:region::image/ami-04d5cc9b88example", "arn:aws:ec2:region:account-id:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/sg-903004f88example" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }

Dalam contoh ini, ada dua pernyataan:

  • Pernyataan pertama mengharuskan pengguna meluncurkan instance ke subnet (subnet-1a2b3c4d) tertentu, menggunakan grup keamanan tertentu (sg-903004f88example), dan menggunakan AMI (ami-04d5cc9b88example) tertentu. Ini juga memberi pengguna akses ke sumber daya yang ditentukan dalam template peluncuran: antarmuka jaringan, pasangan kunci, dan volume.

  • Pernyataan kedua memungkinkan pengguna untuk meluncurkan instance hanya menggunakan tipe t2.micro dan t2.small instance, yang mungkin Anda lakukan untuk mengontrol biaya.

    Namun, perhatikan bahwa saat ini tidak ada cara yang efektif untuk sepenuhnya mencegah pengguna yang memiliki izin untuk meluncurkan instance dengan template peluncuran meluncurkan jenis instance lainnya. Ini karena jenis instance yang ditentukan dalam template peluncuran dapat diganti untuk menggunakan tipe instance yang didefinisikan menggunakan pemilihan tipe instance berbasis atribut.

Untuk daftar lengkap izin tingkat sumber daya yang dapat Anda gunakan untuk mengontrol konfigurasi instans yang dapat diluncurkan pengguna, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon EC2 di Referensi Otorisasi Layanan.

Izin diperlukan untuk menandai instance dan volume

Contoh berikut memungkinkan pengguna untuk menandai instance dan volume pada pembuatan. Kebijakan ini diperlukan jika ada tag yang ditentukan dalam template peluncuran. Untuk informasi selengkapnya, lihat Memberikan izin untuk menandai sumber daya selama pembuatan di Panduan Pengguna Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:region:account-id:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }

Izin template peluncuran tambahan

Anda harus memberikan izin kepada pengguna konsol untuk ec2:DescribeLaunchTemplateVersions tindakan ec2:DescribeLaunchTemplates dan tindakan. Tanpa izin ini, data template peluncuran tidak dapat dimuat di wizard grup Auto Scaling, dan pengguna tidak dapat melangkah melalui wizard untuk meluncurkan instance menggunakan template peluncuran. Anda dapat menentukan tindakan tambahan ini dalam Action elemen pernyataan kebijakan IAM.

Validasi izin untuk dan ec2:RunInstancesiam:PassRole

Pengguna dapat menentukan versi template peluncuran mana yang digunakan grup Auto Scaling mereka. Bergantung pada izin mereka, ini bisa berupa versi bernomor tertentu, atau $Default versi $Latest atau dari template peluncuran. Jika yang terakhir, berhati-hatilah. Ini dapat mengesampingkan izin untuk ec2:RunInstances dan iam:PassRole yang ingin Anda batasi.

Bagian ini menjelaskan skenario penggunaan template peluncuran versi terbaru atau default dengan grup Auto Scaling.

Saat pengguna memanggilCreateAutoScalingGroup,UpdateAutoScalingGroup, atau StartInstanceRefresh API, Auto Scaling Amazon EC2 memeriksa izin mereka terhadap versi template peluncuran yang merupakan versi terbaru atau default pada saat itu sebelum melanjutkan permintaan. Ini memvalidasi izin untuk tindakan yang akan diselesaikan saat meluncurkan instance, seperti tindakan dan tindakan. ec2:RunInstances iam:PassRole Untuk mencapai hal ini, kami mengeluarkan panggilan dry run Amazon RunInstancesEC2 untuk memvalidasi apakah pengguna memiliki izin yang diperlukan untuk tindakan tersebut, tanpa benar-benar membuat permintaan. Ketika respons dikembalikan, itu dibaca oleh Amazon EC2 Auto Scaling. Jika izin pengguna tidak mengizinkan tindakan yang diberikan, Auto Scaling Amazon EC2 akan gagal dalam permintaan dan mengembalikan kesalahan kepada pengguna yang berisi informasi tentang izin yang hilang.

Setelah verifikasi awal dan permintaan selesai, setiap kali instans diluncurkan, Amazon EC2 Auto Scaling meluncurkannya dengan versi terbaru atau default, meskipun telah berubah, menggunakan izin peran terkait layanannya. Ini berarti bahwa pengguna yang menggunakan template peluncuran berpotensi memperbaruinya untuk meneruskan peran IAM ke instance meskipun mereka tidak memiliki iam:PassRole izin.

Gunakan tombol autoscaling:LaunchTemplateVersionSpecified kondisi jika Anda ingin membatasi siapa yang memiliki akses untuk mengonfigurasi grup untuk menggunakan $Default versi $Latest atau. Ini memastikan bahwa grup Auto Scaling hanya menerima versi bernomor tertentu saat pengguna memanggil API dan. CreateAutoScalingGroup UpdateAutoScalingGroup Untuk contoh yang menunjukkan cara menambahkan kunci kondisi ini ke kebijakan IAM, lihatMemerlukan template peluncuran dan nomor versi.

Untuk grup Auto Scaling yang dikonfigurasi untuk menggunakan $Latest atau $Default meluncurkan versi templat, pertimbangkan untuk membatasi siapa yang dapat membuat dan mengelola versi template peluncuran, termasuk ec2:ModifyLaunchTemplate tindakan yang memungkinkan pengguna menentukan versi templat peluncuran default. Untuk informasi selengkapnya, lihat Mengontrol izin pembuatan versi di Panduan Pengguna Amazon EC2.

Untuk mempelajari lebih lanjut tentang izin untuk melihat, membuat, dan menghapus templat peluncuran dan meluncurkan versi templat, lihat Mengontrol akses untuk meluncurkan templat dengan izin IAM di Panduan Pengguna Amazon EC2.

Untuk informasi selengkapnya tentang izin tingkat sumber daya yang dapat Anda gunakan untuk mengontrol akses ke RunInstances panggilan, lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon EC2 di Referensi Otorisasi Layanan.