Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Conditions avec plusieurs clés ou valeurs de contexte
Vous pouvez utiliser l'élément Condition
d'une politique pour tester plusieurs clés ou plusieurs valeurs de contexte pour une seule clé de contexte dans une demande. Lorsque vous faites une demande à AWS, soit par programmation, soit par le biais du AWS Management Console, votre demande inclut des informations sur votre principal, votre activité, vos tags, etc. Vous pouvez utiliser des clés de contexte pour tester les valeurs des clés de contexte correspondantes dans la demande, avec les clés de contexte spécifiées dans la condition de politique. Pour en savoir plus sur les informations et les données incluses dans une demande, consultez Contexte de la demande.
Rubriques
Logique d'évaluation pour plusieurs clés ou valeurs de contexte
Un élément Condition
peut contenir plusieurs opérateurs de condition, et chaque opérateur de condition peut également inclure plusieurs paires clé-valeur de contexte. La plupart des clés de contexte prennent en charge l'utilisation de plusieurs valeurs, sauf indication contraire.
-
Si votre instruction de politique dispose de plusieurs opérateurs de condition, ils sont évalués à l'aide d'un opérateur logique
AND
. -
Si votre instruction de politique dispose de plusieurs clés de contexte attachées à un même opérateur de condition, celles-ci sont évaluées à l'aide d'un opérateur logique
AND
. -
Si un même opérateur de condition comprend plusieurs valeurs pour une clé de contexte, ces valeurs sont évaluées à l'aide d'un opérateur logique
OR
. -
Si un même opérateur de condition de correspondance négative comprend plusieurs valeurs pour une clé de contexte, ces valeurs sont évaluées à l'aide d'un opérateur logique
NOR
.
Toutes les clés de contexte d'un bloc d'éléments de condition doivent être résolues sur true (vrai) pour invoquer l'effet Allow
ou Deny
souhaité. La figure suivante illustre la logique d'évaluation d'une condition comportant plusieurs opérateurs de condition et des paires clé-valeur de contexte.
Par exemple, la politique de compartiment S3 suivante illustre la manière dont la figure précédente est représentée dans une politique. Le bloc de conditions comprend les opérateurs de condition StringEquals
et ArnLike
, et les clés de contexte aws:PrincipalTag
et aws:PrincipalArn
. Afin d'invoquer l'effet Allow
ou Deny
souhaité, toutes les clés de contexte du bloc de conditions doivent être résolues sur true (vrai). L'utilisateur qui fait la demande doit disposer des deux clés de balise du principal, department et role, qui incluent l'une des valeurs de clés de balise spécifiées dans la politique. En outre, le principal ARN de l'utilisateur qui fait la demande doit correspondre à l'une des aws:PrincipalArn
valeurs spécifiées dans la politique pour être évalué comme vrai.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-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" ] } } } ] }
Logique d'évaluation des opérateurs de condition de correspondance négative
Certains opérateurs de condition, tels que StringNotEquals
ou ArnNotLike
, utilisent la correspondance négative pour comparer les paires clé-valeur de contexte de votre politique aux paires clé-valeur de contexte d'une demande. Lorsque plusieurs valeurs sont spécifiées pour une même clé de contexte dans une politique avec des opérateurs de condition de correspondance négative, les autorisations effectives fonctionnent comme un opérateur logique NOR
. Dans le cas d'une correspondance négative, un opérateur logique NOR
ou NOT
OR
renvoie la valeur true (vrai) uniquement si toutes les valeurs sont évaluées comme false (fausses).
La figure suivante illustre la logique d'évaluation d'une condition comportant plusieurs opérateurs de condition et des paires clé-valeur de contexte. La figure inclut un opérateur de condition de correspondance négative pour la clé de contexte 3.
Par exemple, la politique de compartiment S3 suivante illustre la manière dont la figure précédente est représentée dans une politique. Le bloc de conditions comprend les opérateurs de condition StringEquals
et ArnNotLike
, et les clés de contexte aws:PrincipalTag
et aws:PrincipalArn
. Afin d'invoquer l'effet Allow
ou Deny
souhaité, toutes les clés de contexte du bloc de conditions doivent être résolues sur true (vrai). L'utilisateur qui fait la demande doit disposer des deux clés de balise du principal, department et role, qui incluent l'une des valeurs de clés de balise spécifiées dans la politique. Étant donné que l'opérateur de ArnNotLike
condition utilise une correspondance négative, le principal ARN de l'utilisateur qui fait la demande ne doit correspondre à aucune des aws:PrincipalArn
valeurs spécifiées dans la politique pour être évalué comme vrai.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-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" ] } } } ] }