Sintaksis SCP - AWS Organizations

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

Sintaksis SCP

Kebijakan kontrol layanan (SCPs) menggunakan sintaks serupa dengan kebijakan izin AWS Identity and Access Management (IAM) dan kebijakan berbasis sumber daya (seperti kebijakan bucket Amazon S3). Untuk informasi selengkapnya tentang kebijakan IAM dan sintaksisnya, lihat Gambaran Umum Kebijakan IAM dalam Panduan Pengguna IAM.

SCP adalah file plaintext yang terstruktur sesuai dengan aturan JSON. Ia menggunakan elemen-elemen yang dijelaskan dalam topik ini.

catatan

Semua karakter dalam hitungan SCP Anda terhadap ukuran maksimum-nya. Contoh dalam panduan ini menunjukkan SCPs format dengan ruang putih ekstra untuk meningkatkan keterbacaannya. Namun, untuk menghemat ruang jika ukuran kebijakan Anda mendekati ukuran maksimum, maka Anda dapat menghapus spasi kosong, seperti spasi karakter dan baris putus yang berada di luar tanda kutip.

Untuk informasi umum tentang SCPs, lihatKebijakan kontrol layanan (SCPs).

Ringkasan elemen

Tabel berikut merangkum elemen kebijakan yang dapat Anda gunakan. SCPs Beberapa elemen kebijakan hanya tersedia dalam tindakan penolakan SCPs itu. Kolom Efek yang didukung mencantumkan jenis efek yang dapat Anda gunakan dengan setiap elemen kebijakan SCPs.

Elemen Tujuan Efek didukung

Tindakan

Menentukan AWS layanan dan tindakan yang SCP memungkinkan atau menyangkal.

Allow, Deny

Efek Menentukan apakah pernyataan SCP mengizinkan atau menolak akses ke pengguna dan peran IAM dalam akun.

Allow, Deny

Pernyataan Berfungsi sebagai kontainer untuk elemen kebijakan. Anda dapat memiliki beberapa pernyataan di SCPs.

Allow, Deny

ID Pernyataan (Sid) (Opsional) Menyediakan nama yang ramah untuk pernyataan tersebut.

Allow, Deny

Versi Menentukan aturan sintaksis bahasa yang digunakan untuk memproses kebijakan.

Allow, Deny

Kondisi Menentukan syarat ketika pernyataan ini berlaku.

Allow, Deny

NotAction

Menentukan AWS layanan dan tindakan yang dikecualikan dari SCP. Digunakan sebagai pengganti dari elemen Action.

Allow, Deny

Sumber Daya Menentukan AWS sumber daya yang berlaku SCP.

Allow, Deny

NotResource Menentukan AWS sumber daya yang dikecualikan dari SCP. Digunakan sebagai pengganti dari elemen Resource.

Allow, Deny

Bagian berikut memberikan informasi lebih lanjut dan contoh bagaimana elemen kebijakan digunakan SCPs.

Elemen Action dan NotAction

Nilai untuk NotAction elemen Action or adalah daftar (array JSON) string yang mengidentifikasi AWS layanan dan tindakan yang diizinkan atau ditolak oleh pernyataan.

Setiap string terdiri dari singkatan untuk layanan (seperti "s3", "ec2", "iam", atau "organisasi"), dalam semua huruf kecil, diikuti oleh titik dua dan kemudian tindakan dari layanan tersebut. Tindakan dan tindakan tidak peka huruf besar/kecil. Umumnya, mereka semua dimasukkan dengan setiap kata dimulai dengan huruf besar dan sisanya huruf kecil. Sebagai contoh: "s3:ListAllMyBuckets".

Anda juga dapat menggunakan karakter wildcard seperti asterisk (*) atau tanda tanya (?) dalam SCP:

  • Gunakan tanda bintang (*) sebagai wildcard untuk mencocokkan beberapa tindakan yang berbagi bagian dari nama. Nilai "s3:*" artinya semua tindakan dalam layanan Amazon S3. Nilai hanya "ec2:Describe*" cocok dengan EC2 tindakan yang dimulai dengan “Jelaskan”.

  • Gunakan tanda tanya (?) wildcard untuk mencocokkan satu karakter.

Untuk daftar semua layanan dan tindakan yang mereka dukung dalam kebijakan izin IAM AWS Organizations SCPs dan IAM, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan di Panduan Pengguna IAM.

Untuk informasi selengkapnya, lihat IAM JSON Policy Elements: Action dan IAM JSON Policy Elements: NotAction di Panduan Pengguna IAM.

Contoh elemen Action

Contoh berikut menunjukkan SCP dengan pernyataan yang mengizinkan administrator akun untuk mendelegasikan izin mendeskripsikan, memulai, menghentikan, dan mengakhiri untuk instance di akun. EC2 Ini adalah contoh daftar izinkan, dan berguna ketika kebijakan Allow * default tidak dilampirkan sehingga, secara default, izin secara implisit ditolak. Jika kebijakan Allow * default masih dilampirkan pada akar, OU, atau akun yang dilampiri dengan kebijakan berikut, kebijakan tidak berpengaruh.

JSON
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

Contoh berikut menunjukkan bagaimana Anda dapat menolak akses ke layanan yang Anda ingin tidak gunakan di akun terlampir. Ini mengasumsikan bahwa default "Allow *" SCPs masih melekat pada semua OUs dan root. Kebijakan contoh ini mencegah administrator akun di akun terlampir mendelegasikan izin apa pun untuk layanan IAM, Amazon EC2, dan Amazon RDS. Setiap tindakan dari layanan lain dapat didelegasikan selama tidak ada kebijakan terlampir lain yang menolaknya.

JSON
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

Contoh elemen NotAction

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan NotAction elemen untuk mengecualikan AWS layanan dari efek kebijakan.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

Dengan pernyataan ini, akun yang terpengaruh dibatasi untuk mengambil tindakan dalam yang ditentukan Wilayah AWS, kecuali saat menggunakan tindakan IAM.

Elemen Condition

Anda dapat menentukan Condition elemen dalam mengizinkan dan menolak pernyataan dalam SCP.

Contoh berikut menunjukkan cara menggunakan elemen kondisi dengan pernyataan penolakan dalam SCP untuk membatasi akses ke operasi apa pun di luar eu-central-1 dan eu-west-1 Wilayah, kecuali untuk tindakan dalam layanan yang ditentukan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

Contoh berikut menunjukkan bagaimana menggunakan elemen kondisi dengan pernyataan allow dalam SCP untuk mengizinkan prinsipal tertentu untuk mengakses layanan. AWS

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowServicesForSpecificPrincipal", "Effect":"Allow", "Action":[ "ec2:*", "s3:*", "rds:*", "lambda:*", "cloudformation:*", "iam:*", "cloudwatch:*" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:PrincipalArn":[ "arn:aws:iam::123456789012:role/specific-role" ] } } } ] }

Untuk informasi selengkapnya, lihat Elemen kebijakan IAM JSON: Syarat dalam Panduan Pengguna IAM.

Elemen Effect

Setiap pernyataan harus berisi satu elemen Effect. Nilai dapat berupa Allow atau Deny, salah satu. Ia mempengaruhi setiap tindakan yang tercantum dalam pernyataan yang sama.

Untuk informasi selengkapnya, lihat Elemen Kebijakan IAM JSON: Efek dalam Panduan Pengguna IAM.

"Effect": "Allow"

Contoh berikut menunjukkan SCP dengan pernyataan yang berisi elemen Effect dengan nilai Allow yang mengizinkan pengguna akun untuk melakukan tindakan untuk layanan Amazon S3. Contoh ini berguna dalam sebuah organisasi yang menggunakan strategi daftar izinkan (dimana kebijakan FullAWSAccess default-nya telah dilepaskan sehingga izin secara implisit ditolak secara default). Hasilnya adalah bahwa pernyataan mengizinkan izin Amazon S3 untuk akun terlampir:

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

Meskipun pernyataan ini menggunakan nilai kata kunci Allow yang sama sebagai kebijakan izin IAM, dalam SCP ia tidak benar-benar memberikan izin pengguna untuk melakukan apa pun. Sebagai gantinya, SCPs bertindak sebagai filter yang menentukan izin maksimum untuk akun di organisasi, unit organisasi (OU), atau akun. Dalam contoh sebelumnya, bahkan jika pengguna di akun memiliki kebijakan terkelola AdministratorAccess terlampir, SCP ini membatasi Semua pengguna di akun yang terpengaruh hanya ke tindakan Amazon S3.

"Effect": "Deny"

Dalam pernyataan di mana Effect elemen memiliki nilaiDeny, Anda juga dapat membatasi akses ke sumber daya tertentu atau menentukan kondisi kapan SCPs berlaku.

Berikut ini menunjukkan contoh bagaimana menggunakan kunci syarat dalam pernyataan tolak.

JSON
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

Pernyataan dalam SCP ini menetapkan pagar pembatas untuk mencegah akun yang terpengaruh (di mana SCP dilampirkan ke akun itu sendiri atau ke root organisasi atau OU yang berisi akun), dari meluncurkan instans Amazon jika EC2 instans Amazon tidak disetel ke. EC2 t2.micro Bahkan jika kebijakan IAM yang memungkinkan tindakan ini dilampirkan ke akun, pagar yang dibuat oleh SCP akan mencegahnya.

Resourcedan NotResource elemen

Anda dapat menggunakan karakter wildcard seperti tanda bintang (*) atau tanda tanya (?) dalam elemen sumber daya:

  • Gunakan tanda bintang (*) sebagai wildcard untuk mencocokkan beberapa tindakan yang berbagi bagian dari nama.

  • Gunakan tanda tanya (?) wildcard untuk mencocokkan satu karakter.

Contoh berikut menunjukkan cara menggunakan SCP untuk mencegah pengguna dan peran IAM di akun yang terpengaruh memodifikasi peran IAM administratif umum yang dibuat di semua akun di organisasi Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

Contoh berikut menunjukkan cara menggunakan NotResource elemen untuk mengecualikan model Amazon Bedrock tertentu dari pengaruh kebijakan.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Statement1", "Effect":"Deny", "Action":[ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "NotResource":[ "arn:aws:bedrock:*::foundation-model/model-to-permit" ] } ] }

Untuk informasi selengkapnya, lihat Elemen kebijakan IAM JSON: Sumber Daya dalam Panduan Pengguna IAM.

Elemen Statement

SCP terdiri dari satu atau beberapa elemen Statement. Anda hanya dapat memiliki satu kata kunci Statement dalam kebijakan, tetapi nilai dapat berupa array JSON dari pernyataan (diapit oleh karakter [ ]).

Contoh berikut menunjukkan pernyataan tunggal yang terdiri dari satu elemen Effect, Action, dan Resource.

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

Contoh berikut mencakup dua pernyataan sebagai daftar array dalam satu elemen Statement. Pernyataan pertama memungkinkan semua tindakan, sedangkan yang kedua menyangkal EC2 tindakan apa pun. Hasilnya adalah administrator di akun dapat mendelegasikan izin apa pun kecuali dari Amazon Elastic Compute Cloud (Amazon EC2).

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

Untuk informasi selengkapnya, lihat Elemen kebijakan IAM JSON: Pernyataan dalam Panduan Pengguna IAM.

Elemen ID pernyataan (Sid)

Sid adalah pengidentifikasi opsional yang Anda berikan untuk pernyataan kebijakan. Anda dapat menetapkan nilai Sid untuk setiap pernyataan dalam rangkaian pernyataan. Dalam contoh berikut, SCP menunjukkan sampel Sid.

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

Untuk informasi selengkapnya, lihat Elemen Kebijakan IAM JSON: Id dalam Panduan Pengguna IAM.

Elemen Version

Setiap SCP harus menyertakan elemen Version dengan nilai "2012-10-17". Ini adalah nilai versi yang sama sebagai versi terbaru dari kebijakan izin IAM.

"Version": "2012-10-17",

Untuk informasi selengkapnya, lihat Elemen Kebijakan IAM JSON: Versi dalam Panduan Pengguna IAM.

Elemen yang Tidak Didukung

Elemen-elemen berikut tidak didukung di SCPs:

  • Principal

  • NotPrincipal