Contoh kebijakan Amazon EC2 Auto Scaling berbasis identitas - EC2Auto Scaling Amazon

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

Contoh kebijakan Amazon EC2 Auto Scaling berbasis identitas

Secara default, pengguna baru di Anda tidak Akun AWS memiliki izin untuk melakukan apa pun. Administrator IAM harus membuat dan menetapkan kebijakan IAM yang memberikan izin identitas IAM (seperti pengguna atau peran) untuk melakukan tindakan API Auto Scaling Amazon EC2.

Untuk mempelajari cara membuat kebijakan IAM dengan menggunakan contoh dokumen kebijakan JSON ini, lihat Membuat kebijakan di tab JSON dalam Panduan Pengguna IAM.

Berikut adalah contoh kebijakan izin.

{ "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*", "Resource": "*" }] }

Kebijakan contoh ini memberikan izin untuk membuat, memperbarui, dan menghapus grup Auto Scaling, tetapi hanya jika grup menggunakan tag. purpose=testing Karena Describe tindakan tidak mendukung izin tingkat sumber daya, Anda harus menentukannya dalam pernyataan terpisah tanpa kondisi. Untuk meluncurkan instance dengan template peluncuran, pengguna juga harus memiliki ec2:RunInstances izin. Untuk informasi selengkapnya, lihat Kontrol penggunaan template peluncuran Amazon EC2 di grup Auto Scaling.

catatan

Anda dapat membuat kebijakan IAM kustom Anda sendiri untuk mengizinkan atau menolak izin identitas IAM (pengguna atau peran) untuk melakukan tindakan Auto Scaling Amazon EC2. Anda dapat melampirkan kebijakan kustom ini ke identitas IAM yang memerlukan izin yang ditentukan. Contoh berikut menunjukkan izin untuk beberapa kasus penggunaan umum.

Beberapa tindakan Amazon EC2 Auto Scaling API memungkinkan Anda untuk menyertakan grup Auto Scaling tertentu dalam kebijakan Anda yang dapat dibuat atau dimodifikasi oleh tindakan tersebut. Anda dapat membatasi sumber daya target untuk tindakan ini dengan menentukan masing-masing ARN grup Auto Scaling. Namun, sebagai praktik terbaik, kami menyarankan Anda menggunakan kebijakan berbasis tag yang mengizinkan (atau menolak) tindakan pada grup Auto Scaling dengan tag tertentu.

Kontrol ukuran grup Auto Scaling yang dapat dibuat

Kebijakan berikut memberikan izin untuk membuat dan memperbarui semua grup Auto Scaling dengan environment=development tag, selama pemohon tidak menentukan ukuran minimum kurang 1 dari atau ukuran maksimum yang lebih besar. 10 Jika memungkinkan, gunakan tag untuk membantu Anda mengontrol akses ke grup Auto Scaling di akun Anda.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "development" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

Atau, jika Anda tidak menggunakan tag untuk mengontrol akses ke grup Auto Scaling, Anda dapat menggunakan ARN untuk mengidentifikasi grup Auto Scaling yang berlaku untuk kebijakan IAM.

Grup Auto Scaling memiliki ARN berikut.

"Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/my-asg"

Anda juga dapat menentukan beberapa ARN dengan melampirkannya dalam daftar. Untuk informasi selengkapnya tentang menentukan ARN sumber daya Resource Auto Scaling Amazon EC2 di elemen, lihat. Sumber daya kebijakan untuk EC2 Auto Scaling Amazon

Kontrol kunci tag dan nilai tag mana yang dapat digunakan

Anda juga dapat menggunakan kondisi dalam kebijakan IAM untuk mengontrol kunci tag dan nilai tag yang dapat diterapkan ke grup Auto Scaling. Untuk memberikan izin untuk membuat atau menandai grup Auto Scaling hanya jika pemohon menentukan tag tertentu, gunakan kunci kondisi. aws:RequestTag Agar hanya memperbolehkan kunci tag tertentu, gunakan kunci ketentuan aws:TagKeys dengan modifier ForAllValues.

Kebijakan berikut mengharuskan pemohon untuk menentukan tag dengan kunci environment dalam permintaan. Nilai "?*" akan mendorong adanya beberapa nilai untuk kunci tag. Untuk menggunakan wildcard, Anda harus menggunakan operator ketentuan StringLike.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

Kebijakan berikut menetapkan bahwa pemohon hanya dapat menandai grup Auto Scaling dengan tag cost-center=cc123 dan, dan hanya purpose mengizinkan purpose=webserver tag dan (tidak ada tag lain yang dapat ditentukan). cost-center

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

Kebijakan berikut mengharuskan pemohon untuk menentukan setidaknya satu tag dalam permintaan, dan hanya mengizinkan cost-center dan owner kunci.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
catatan

Untuk syarat, kunci syarat tidak bersifat peka terhadap huruf besar dan kecil dan nilai syarat bersifat peka huruf besar dan kecil. Oleh karena itu, untuk memaksakan sifat peka terhadap huruf besar atau kecil dari kunci tanda, gunakan kunci syarat aws:TagKeys, di mana kunci tanda ditetapkan sebagai nilai dalam syarat tersebut.

Kontrol grup Auto Scaling mana yang dapat dihapus

Kebijakan berikut memungkinkan penghapusan grup Auto Scaling hanya jika grup memiliki tag. environment=development

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

Atau, jika Anda tidak menggunakan tombol kondisi untuk mengontrol akses ke grup Auto Scaling, Anda dapat menentukan ARN sumber daya dalam Resource elemen untuk mengontrol akses.

Kebijakan berikut memberikan izin kepada pengguna untuk menggunakan tindakan DeleteAutoScalingGroup API, tetapi hanya untuk grup Auto Scaling yang namanya dimulai. devteam-

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" }] }

Anda juga dapat menentukan beberapa ARN dengan melampirkannya dalam daftar. Menyertakan UUID memastikan bahwa akses diberikan ke grup Auto Scaling tertentu. UUID untuk grup baru berbeda dari UUID untuk grup yang dihapus dengan nama yang sama.

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

Kontrol kebijakan penskalaan yang dapat dihapus

Kebijakan berikut memberikan izin untuk menggunakan DeletePolicy tindakan tersebut guna menghapus kebijakan penskalaan. Namun, ini juga menggantikan tindakan jika grup Auto Scaling yang ditindaklanjuti memiliki tanda environment=production. Jika memungkinkan, gunakan tag untuk membantu Anda mengontrol akses ke grup Auto Scaling di akun Anda.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

Kontrol akses ke tindakan penyegaran instans

Kebijakan berikut memberikan izin untuk memulai, memutar kembali, dan membatalkan penyegaran instance hanya jika grup Auto Scaling yang ditindaklanjuti memiliki tag. environment=testing Karena Describe tindakan tidak mendukung izin tingkat sumber daya, Anda harus menentukannya dalam pernyataan terpisah tanpa kondisi.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "testing" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }

Untuk menentukan konfigurasi yang diinginkan dalam StartInstanceRefresh panggilan, pengguna mungkin memerlukan beberapa izin terkait, seperti:

Buat peran tertaut layanan

Auto Scaling Amazon EC2 memerlukan izin untuk membuat peran terkait layanan saat pertama kali pengguna mana pun dalam panggilan Anda melakukan tindakan API Auto Scaling Akun AWS Amazon EC2. Jika peran terhubung layanan tidak ada, Amazon EC2 Auto Scaling akan membuatnya di akun Anda. Peran terkait layanan memberikan izin ke Auto Scaling Amazon EC2 sehingga dapat memanggil orang lain atas nama Anda. Layanan AWS

Agar pembuatan peran otomatis berhasil, pengguna harus memiliki izin untuk tindakan iam:CreateServiceLinkedRole nyata.

"Action": "iam:CreateServiceLinkedRole"

Berikut ini adalah contoh kebijakan izin yang memungkinkan pengguna untuk membuat peran Amazon EC2 Auto Scaling service-linked untuk Amazon EC2 Auto Scaling.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } }] }

Kontrol peran terkait layanan mana yang dapat diteruskan (menggunakan) PassRole

Pengguna yang membuat atau memperbarui grup Auto Scaling dan menentukan peran terkait layanan akhiran kustom dalam permintaan memerlukan izin. iam:PassRole

Anda dapat menggunakan iam:PassRole izin untuk melindungi keamanan kunci yang dikelola AWS KMS pelanggan jika Anda memberikan akses peran terkait layanan yang berbeda ke kunci yang berbeda. Tergantung pada kebutuhan organisasi Anda, Anda mungkin memiliki kunci untuk tim pengembangan, satu lagi untuk tim QA, dan satu lagi untuk tim keuangan. Pertama, buat peran terkait layanan yang memiliki akses ke kunci yang diperlukan, misalnya, peran terkait layanan bernama. AWSServiceRoleForAutoScaling_devteamkeyaccess Kemudian, lampirkan kebijakan ke identitas IAM, seperti pengguna atau peran.

Kebijakan berikut memberikan izin untuk meneruskan AWSServiceRoleForAutoScaling_devteamkeyaccessperan ke grup Auto Scaling mana pun yang namanya dimulai. devteam- Jika identitas IAM yang membuat grup Auto Scaling mencoba menentukan peran terkait layanan yang berbeda, mereka akan menerima kesalahan. Jika mereka memilih untuk tidak menentukan peran terkait layanan, AWSServiceRoleForAutoScalingperan default akan digunakan sebagai gantinya.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } }] }

Untuk informasi lebih lanjut tentang peran layanan terkait akhiran yang disesuaikan, lihat Peran terkait layanan untuk Amazon EC2 Auto Scaling.