Kondisi dengan beberapa kunci konteks atau nilai - AWS Identity and Access Management

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

Kondisi dengan beberapa kunci konteks atau nilai

Anda dapat menggunakan Condition elemen kebijakan untuk menguji beberapa kunci konteks atau beberapa nilai untuk satu kunci konteks dalam permintaan. Saat Anda mengajukan permintaan AWS, baik secara terprogram atau melalui AWS Management Console, permintaan Anda mencakup informasi tentang prinsipal, operasi, tag, dan lainnya. Anda dapat menggunakan kunci konteks untuk menguji nilai kunci konteks yang cocok dalam permintaan, dengan kunci konteks yang ditentukan dalam kondisi kebijakan. Untuk mempelajari informasi dan data yang disertakan dalam permintaan, lihat Konteks permintaan.

Logika evaluasi untuk beberapa kunci konteks atau nilai

Sebuah Condition elemen dapat berisi beberapa operator kondisi, dan setiap operator kondisi dapat berisi beberapa pasangan kunci-nilai konteks. Sebagian besar kunci konteks mendukung penggunaan beberapa nilai, kecuali ditentukan lain.

  • Jika pernyataan kebijakan Anda memiliki beberapa operator kondisi, operator kondisi dievaluasi menggunakan logikaAND.

  • Jika pernyataan kebijakan Anda memiliki beberapa kunci konteks yang dilampirkan ke satu operator kondisi, kunci konteks dievaluasi menggunakan logikaAND.

  • Jika operator kondisi tunggal menyertakan beberapa nilai untuk kunci konteks, nilai-nilai tersebut dievaluasi menggunakan logikaOR.

  • Jika operator kondisi pencocokan dinegasikan tunggal menyertakan beberapa nilai untuk kunci konteks, nilai-nilai tersebut dievaluasi menggunakan logika. NOR

Semua kunci konteks dalam blok elemen kondisi harus menyelesaikan ke true untuk memanggil yang diinginkan Allow atau Deny efek. Gambar berikut mengilustrasikan logika evaluasi untuk suatu kondisi dengan beberapa operator kondisi dan pasangan kunci-nilai konteks.

Blok kondisi yang menunjukkan bagaimana AND dan OR diterapkan ke beberapa kunci konteks dan nilai

Misalnya, kebijakan bucket S3 berikut menggambarkan bagaimana gambar sebelumnya direpresentasikan dalam kebijakan. Blok kondisi mencakup operator kondisi StringEquals danArnLike, dan kunci konteks aws:PrincipalTag danaws:PrincipalArn. Untuk memanggil yang diinginkan Allow atau Deny efek, semua kunci konteks di blok kondisi harus diselesaikan ke true. Pengguna yang membuat permintaan harus memiliki kunci tag utama, departemen, dan peran, yang menyertakan salah satu nilai kunci tag yang ditentukan dalam kebijakan. Selain itu, ARN utama pengguna yang membuat permintaan harus cocok dengan salah satu aws:PrincipalArn nilai yang ditentukan dalam kebijakan untuk dievaluasi sebagai benar.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Condition": { "StringEquals": { "aws:PrincipalTag/department": [ "finance", "hr", "legal" ], "aws:PrincipalTag/role": [ "audit", "security" ] }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:user/Ana", "arn:aws:iam::222222222222:user/Mary" ] } } } ] }

Logika evaluasi untuk operator kondisi pencocokan yang dinegasikan

Beberapa operator kondisi, seperti StringNotEquals atauArnNotLike, menggunakan pencocokan yang dinegasikan untuk membandingkan pasangan nilai kunci konteks dalam kebijakan Anda dengan pasangan nilai kunci konteks dalam permintaan. Ketika beberapa nilai ditentukan untuk satu kunci konteks dalam kebijakan dengan operator kondisi pencocokan yang dinegasikan, izin efektif berfungsi seperti logika. NOR Dalam pencocokan yang dinegasikan, logis NOR atau NOT OR mengembalikan nilai true hanya jika semua nilai dievaluasi menjadi false.

Gambar berikut mengilustrasikan logika evaluasi untuk suatu kondisi dengan beberapa operator kondisi dan pasangan kunci-nilai konteks. Angka tersebut mencakup operator kondisi pencocokan yang dinegasikan untuk kunci konteks 3.

Blok kondisi yang menunjukkan bagaimana AND dan OR diterapkan ke beberapa kunci konteks dan nilai saat operator kondisi pencocokan dinegasikan digunakan

Misalnya, kebijakan bucket S3 berikut menggambarkan bagaimana gambar sebelumnya direpresentasikan dalam kebijakan. Blok kondisi mencakup operator kondisi StringEquals danArnNotLike, dan kunci konteks aws:PrincipalTag danaws:PrincipalArn. Untuk memanggil yang diinginkan Allow atau Deny efek, semua kunci konteks di blok kondisi harus diselesaikan ke true. Pengguna yang membuat permintaan harus memiliki kunci tag utama, departemen, dan peran, yang menyertakan salah satu nilai kunci tag yang ditentukan dalam kebijakan. Karena operator ArnNotLike kondisi menggunakan pencocokan yang dinegasikan, ARN utama pengguna yang membuat permintaan tidak boleh cocok dengan nilai yang aws:PrincipalArn ditentukan dalam kebijakan yang akan dievaluasi sebagai true.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Condition": { "StringEquals": { "aws:PrincipalTag/department": [ "finance", "hr", "legal" ], "aws:PrincipalTag/role": [ "audit", "security" ] }, "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:user/Ana", "arn:aws:iam::222222222222:user/Mary" ] } } } ] }