Contoh kebijakan berbasis identitas untuk CloudFormation - AWS Bimbingan Preskriptif

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

Contoh kebijakan berbasis identitas untuk CloudFormation

Bagian ini berisi contoh kebijakan berbasis identitas yang menunjukkan cara memberikan dan menolak izin. CloudFormation Anda dapat menggunakan contoh kebijakan ini untuk mulai merancang kebijakan Anda sendiri yang mematuhi prinsip hak istimewa paling sedikit.

Untuk daftar tindakan dan kondisi CloudFormation tertentu, lihat Tindakan, sumber daya, dan kunci kondisi untuk AWS CloudFormation dan AWS CloudFormation kondisi. Untuk daftar jenis sumber daya yang akan digunakan dengan kondisi, lihat referensi jenis AWS sumber daya dan properti.

Izinkan akses tampilan

Akses tampilan adalah jenis akses yang paling tidak memiliki hak istimewa. CloudFormation Kebijakan semacam ini mungkin sesuai untuk para kepala sekolah IAM yang ingin melihat semua tumpukan di CloudFormation. Akun AWS Kebijakan contoh berikut memberikan izin untuk melihat detail CloudFormation tumpukan apa pun di akun.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources" ], "Resource": "*" } ] }

Izinkan pembuatan tumpukan berdasarkan template

Kebijakan contoh berikut memungkinkan prinsipal IAM untuk membuat tumpukan hanya dengan menggunakan CloudFormation templat yang disimpan di bucket Amazon Simple Storage Service (Amazon S3) tertentu. Nama bucket adalahmy-CFN-templates. Anda dapat mengunggah templat yang disetujui ke bucket ini. Kunci cloudformation:TemplateUrl kondisi dalam kebijakan mencegah prinsipal IAM menggunakan templat lain untuk membuat tumpukan.

penting

Izinkan prinsipal IAM memiliki akses hanya-baca ke bucket S3 ini. Ini membantu mencegah prinsipal IAM menambahkan, menghapus, atau memodifikasi templat yang disetujui.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "StringLike": { "cloudformation:TemplateUrl": "https:// my-CFN-templates.s3.amazonaws.com/*" } } } ] }

Tolak pembaruan atau penghapusan tumpukan

Untuk membantu melindungi CloudFormation tumpukan tertentu yang menyediakan AWS sumber daya penting bisnis, Anda dapat membatasi tindakan pembaruan dan penghapusan untuk tumpukan tertentu. Anda dapat mengizinkan tindakan ini hanya untuk beberapa prinsip IAM tertentu dan menolaknya untuk prinsip IAM lainnya di lingkungan. Pernyataan kebijakan berikut ini menolak izin untuk memperbarui atau menghapus CloudFormation tumpukan tertentu dalam tumpukan tertentu Wilayah AWS dan. Akun AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>" } ] }

Pernyataan kebijakan ini menolak izin untuk memperbarui atau menghapus MyProductionStack CloudFormation tumpukan, yang ada di dalam us-east-1 Wilayah AWS dan di. 123456789012 Akun AWS Anda dapat melihat ID tumpukan di CloudFormation konsol. Berikut ini adalah beberapa contoh bagaimana Anda dapat memodifikasi Resource elemen pernyataan ini untuk kasus penggunaan Anda:

  • Anda dapat menambahkan beberapa CloudFormation tumpukan IDs dalam Resource elemen kebijakan ini.

  • Anda dapat menggunakan arn:aws:cloudformation:us-east-1:123456789012:stack/* untuk mencegah prinsipal IAM memperbarui atau menghapus tumpukan apa pun yang ada di dalam dan di us-east-1 Wilayah AWS akun. 123456789012

Langkah penting adalah memutuskan kebijakan mana yang harus berisi pernyataan ini. Anda dapat menambahkan pernyataan ini ke kebijakan berikut:

  • Kebijakan berbasis identitas yang dilampirkan pada prinsipal IAM — Menempatkan pernyataan dalam kebijakan ini membatasi prinsipal IAM tertentu untuk membuat atau menghapus tumpukan tertentu. CloudFormation

  • Batas izin yang dilampirkan pada prinsipal IAM — Menempatkan pernyataan dalam kebijakan ini akan membuat pagar pembatas izin. Ini membatasi lebih dari satu prinsipal IAM untuk membuat atau menghapus CloudFormation tumpukan tertentu, tetapi tidak membatasi semua prinsip di lingkungan Anda.

  • SCP yang dilampirkan ke akun, unit organisasi, atau organisasi — Menempatkan pernyataan dalam kebijakan ini akan membuat pagar pembatas izin. Ini membatasi semua prinsip IAM di akun target, unit organisasi, atau organisasi dari membuat atau menghapus tumpukan tertentu. CloudFormation

    Namun, jika Anda tidak mengizinkan setidaknya satu prinsipal IAM, prinsipal istimewa, untuk memperbarui atau menghapus CloudFormation tumpukan, maka Anda tidak akan dapat membuat perubahan apa pun, bila perlu, pada sumber daya yang disediakan melalui tumpukan ini. Pengguna atau pipeline pengembangan (disarankan) dapat mengasumsikan prinsipal istimewa ini. Jika Anda ingin menerapkan pembatasan sebagai SCP, maka kami merekomendasikan pernyataan kebijakan berikut sebagai gantinya.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>", "Condition": { "ArnNotLike": { "aws:PrincipalARN": [ "<ARN of the allowed privilege IAM principal>" ] } } } ] }

    Dalam pernyataan ini, Condition elemen mendefinisikan prinsip IAM yang dikecualikan dari SCP. Pernyataan ini menolak izin utama IAM untuk memperbarui atau menghapus CloudFormation tumpukan kecuali ARN dari prinsipal IAM cocok dengan ARN dalam elemen. Condition Kunci aws:PrincipalARN kondisi menerima daftar, yang berarti Anda dapat mengecualikan lebih dari satu prinsip IAM dari batasan, sebagaimana diperlukan untuk lingkungan Anda. Untuk SCP serupa yang mencegah modifikasi CloudFormation sumber daya, lihat SCP-CLOUDFORMATION-1 (). GitHub