Contoh SCP untuk penandaan sumber daya - AWS Organizations

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

Contoh SCP untuk penandaan sumber daya

Mengharuskan tag pada sumber daya yang dibuat tertentu

SCP berikut mencegah pengguna IAM dan peran dalam akun yang terpengaruh membuat jenis sumber daya tertentu jika permintaan tidak menyertakan tag tertentu.

penting

Ingatlah untuk menguji kebijakan berbasis tolak dengan layanan yang Anda gunakan di lingkungan Anda. Contoh berikut adalah blok sederhana menciptakan rahasia yang tidak diberi tag atau menjalankan instans Amazon EC2 yang tidak diberi tag, dan tidak termasuk pengecualian.

Kebijakan contoh berikut ini tidak kompatibel dengan AWS CloudFormation seperti tertulis, karena layanan yang menciptakan rahasia dan menandainya sebagai dua langkah terpisah. Kebijakan contoh ini secara efektif memblokir AWS CloudFormation dari menciptakan rahasia sebagai bagian dari tumpukan, karena tindakan seperti itu akan menghasilkan, namun secara singkat, rahasia yang tidak ditandai seperti yang diharuskan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreateSecretWithNoProjectTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyRunInstanceWithNoProjectTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyCreateSecretWithNoCostCenterTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } }, { "Sid": "DenyRunInstanceWithNoCostCenterTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } } ] }

Untuk daftar semua layanan dan tindakan yang mereka support baik di kebijakan izin SCP AWS Organizations dan IAM, lihat Tindakan, Sumber Daya, Kunci Syarat untuk Layanan AWS di Panduan Pengguna IAM.

Mencegah tag agar tidak dimodifikasi kecuali oleh prinsipal utama yang berwenang

SCP berikut menunjukkan bagaimana kebijakan dapat memungkinkan hanya prinsipal utama yang berwenang untuk memodifikasi tag yang melekat pada sumber daya Anda. Ini adalah bagian penting dari penggunaan kontrol akses berbasis atribut (attribute-based access control/ABAC) sebagai bagian dari strategi keamanan cloud AWS Anda. Kebijakan ini memungkinkan pemanggil untuk memodifikasi tag hanya pada sumber daya di mana tag otorisasi (dalam contoh ini, access-project) sama persis dengan tag otorisasi yang sama yang dilampirkan pada pengguna atau peran yang membuat permintaan. Kebijakan ini juga mencegah pengguna yang berwenang mengubah nilai dari tag yang digunakan untuk otorisasi. Prinsipal utama yang memanggil harus memiliki tag otorisasi untuk membuat perubahan sekaligus.

Kebijakan ini hanya memblokir pengguna yang tidak sah agar tidak mengubah tag. Pengguna yang diotorisasi yang tidak diblokir oleh kebijakan ini harus masih memiliki kebijakan IAM terpisah yang secara eksplisit memberikan izin Allow pada API penandaan yang relevan. Sebagai contoh, jika pengguna Anda memiliki kebijakan administrator dengan Allow */* (izinkan semua layanan dan semua operasi), maka hasil kombinasi pada pengguna administrator yang diizinkan untuk mengubah hanya tag yang memiliki nilai tag otorisasi yang cocok dengan nilai tag otorisasi yang dilampirkan pada prinsipal utama pengguna. Hal ini karena Deny eksplisit dalam kebijakan ini menimpa Allow eksplisit dalam kebijakan administrator.

penting

Contoh ini bukan solusi kebijakan yang lengkap dan tidak boleh digunakan seperti yang ditunjukkan di sini. Contoh ini dimaksudkan hanya untuk menggambarkan bagian dari strategi ABAC dan harus disesuaikan dan diuji untuk lingkungan produksi.

Untuk kebijakan lengkap dengan analisis detail tentang cara kerjanya, lihat Mengamankan tag sumber daya yang digunakan untuk otorisasi dengan menggunakan kebijakan kontrol layanan di AWS Organizations

Ingatlah untuk menguji kebijakan berbasis tolak dengan layanan yang Anda gunakan di lingkungan Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyModifyTagsIfResAuthzTagAndPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "ec2:ResourceTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "ec2:ResourceTag/access-project": false } } }, { "Sid": "DenyModifyResAuthzTagIfPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:RequestTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "ForAnyValue:StringEquals": { "aws:TagKeys": [ "access-project" ] } } }, { "Sid": "DenyModifyTagsIfPrinTagNotExists", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "aws:PrincipalTag/access-project": true } } } ] }