clés de contexte de condition globales AWS - AWS Identity and Access Management

clés de contexte de condition globales AWS

Lorsqu'un principal fait une demande à AWS, AWS rassemble les informations de la demande dans un contexte de la demande. Vous pouvez utiliser l'élément Condition d'une politique JSON pour comparer des clés dans le contexte de demande avec les valeurs de clé spécifiées dans votre politique. Pour savoir quand une clé globale figure dans le contexte de la demande, consultez les informations Disponibilité pour chaque clé de condition globale. Pour plus d'informations sur l'utilisation de l'élément Condition dans une politique JSON, consultez Éléments de politique JSON IAM : Condition.

Note

Si vous utilisez des clés de condition disponibles uniquement dans certaines circonstances, vous pouvez utiliser les versions IfExists des opérateurs de condition. Si les clés de condition ne figurent pas dans le contexte de la demande, l'évaluation de la politique peut échouer. Par exemple, utilisez le bloc de condition suivant avec les opérateurs ...IfExists pour déterminer quand la demande provient d'une plage d'adresses IP ou d'un VPC spécifique. Si l'une des clés, ou les deux, ne figurent pas dans le contexte de la demande, la condition renvoie toujours true. Les valeurs ne sont vérifiées que si la clé spécifiée figure dans le contexte de la demande.

"Condition": { "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] }, "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} }

Les clés de condition globale sont des clés de condition avec un préfixe aws:. Les services AWS peuvent prendre en charge les clés de condition globales ou fournir des clés spécifiques au service qui possèdent le préfixe du service. Par exemple, les clés de condition IAM incluent le préfixe iam:. Pour plus d'informations, veuillez consulter Actions, ressources et clés de condition pour les services AWS et sélectionnez le service pour lequel vous souhaitez afficher les clés.

Important

Pour comparer votre condition à un contexte de demande avec plusieurs valeurs de clé, vous devez utiliser les opérateurs d'ensemble ForAllValues ou ForAnyValue. Utilisez des opérateurs d'ensemble uniquement avec des clés de condition à valeurs multiples. N'utilisez pas d'opérateurs d'ensemble avec des clés de condition à valeur unique. Pour de plus amples informations, veuillez consulter Clés de contexte à valeurs multiples.

aws:CalledVia

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer les services de la politique avec les services qui ont créé des demandes au nom du principal IAM (utilisateur ou rôle). Lorsqu'un principal effectue une demande à un service AWS, ce service peut utiliser les informations d'identification du principal pour effectuer des demandes ultérieures à d'autres services. La clé aws:CalledVia contient une liste ordonnée des services de la chaîne ayant effectué des demandes pour le compte du principal.

Par exemple, vous pouvez utiliser AWS CloudFormation pour lire et écrire à partir d'une table Amazon DynamoDB. DynamoDB utilise ensuite le chiffrement fourni par AWS Key Management Service (AWS KMS).

  • Availability (Disponibilité): cette clé est présente dans la demande lorsqu'un service prenant en charge aws:CalledVia utilise les informations d'identification d'un principal IAM pour effectuer une demande à un autre service. Cette clé n'est pas présente si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du mandataire. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.

  • Type de valeur – À valeur multiple

Pour utiliser la clé de condition aws:CalledVia dans une politique, vous devez indiquer au service les principaux pour autoriser ou refuser les demandes de service AWS. AWS prend en charge l'utilisation des principaux de service suivants avec aws:CalledVia.

Principal du service
athena.amazonaws.com
backup.amazonaws.com
cloud9.amazonaws.com
cloudformation.amazonaws.com
databrew.amazonaws.com
dataexchange.amazonaws.com
dynamodb.amazonaws.com
imagebuilder.amazonaws.com
kms.amazonaws.com
mgn.amazonaws.com
nimble.amazonaws.com
omics.amazonaws.com
ram.amazonaws.com
servicecatalog-appregistry.amazonaws.com
sqlworkbench.amazonaws.com

Pour autoriser ou refuser l'accès lorsqu'un service effectue une demande à l'aide des informations d'identification du principal, utilisez la clé de condition aws:ViaAWSService. Cette clé de condition prend en charge les services AWS.

La clé aws:CalledVia est une clé à valeurs multiples. Cependant, vous ne pouvez pas imposer l'ordre en utilisant cette clé dans une condition. Dans l'exemple ci-dessus, User 1 (Utilisateur 1) effectue une demande à AWS CloudFormation, qui appelle DynamoDB, qui appelle AWS KMS. Il s'agit de trois demandes distinctes. L'appel final à AWS KMS est effectué par User 1 (Utilisateur 1) via AWS CloudFormation, puis DynamoDB.


                Exemple d'utilisation d'aws:CalledVia

Dans ce cas, la clé aws:CalledVia dans le contexte de la demande comprend cloudformation.amazonaws.com et dynamodb.amazonaws.com, dans cet ordre. Si vous vous souciez uniquement du fait que l'appel a été effectué via DynamoDB quelque part dans la chaîne des demandes, vous pouvez utiliser cette clé de condition dans votre politique.

Par exemple, la politique suivante permet de gérer la clé AWS KMS nommée my-example-key, mais seulement si DynamoDB est un des services demandeurs. L'opérateur de condition ForAnyValue:StringEquals s'assure que DynamoDB est un des services appelant. Si le principal effectue directement l'appel à AWS KMS, la condition renvoie false et la demande n'est pas autorisée par cette politique.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:111122223333:key/my-example-key", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }

Si vous souhaitez définir le service effectuant le premier ou le dernier appel de la chaîne, vous pouvez utiliser les clés aws:CalledViaLast et aws:CalledViaFirst. Par exemple, la politique suivante permet de gérer la clé nommée my-example-key dans AWS KMS. Ces opérations AWS KMS ne sont autorisées que si plusieurs demandes ont été incluses dans la chaîne. La première demande doit être faite via AWS CloudFormation et la dernière, via DynamoDB. Si d'autres services font des demandes au milieu de la chaîne, l'opération est toujours autorisée.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:111122223333:key/my-example-key", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }

Les clés aws:CalledViaFirst et aws:CalledViaLast sont présentes dans la demande lorsqu'un service utilise les informations d'identification d'un principal IAM pour appeler un autre service. Elles indiquent le premier et le dernier services ayant effectué des appels dans la chaîne de demandes. Par exemple, supposons que AWS CloudFormation appelle un autre service nommé X Service, qui appelle DynamoDB, qui appelle ensuite AWS KMS. L'appel final à AWS KMS est effectué par User 1 via AWS CloudFormation, puis X Service et enfin DynamoDB. Il a été appelé en premier via AWS CloudFormation et en dernier via DynamoDB.


                Exemple d'utilisation d'aws:CalledViaFirst et d'aws:CalledViaLast

aws:CalledViaFirst

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer les services de la politique avec le premier service ayant fait une demande au nom du principal IAM (utilisateur ou rôle). Pour de plus amples informations, veuillez consulter aws:CalledVia.

  • Availability (Disponibilité) : cette clé est présente dans la requête lorsqu'un service utilise les informations d'identification d'un principal IAM pour effectuer au moins une autre requête à un service différent. Cette clé n'est pas présente si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du mandataire. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.

  • Type de valeur – À valeur unique

aws:CalledViaLast

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer les services de la politique avec le dernier service ayant fait une demande au nom du principal IAM (utilisateur ou rôle). Pour plus d'informations, veuillez consulter aws:CalledVia.

  • Availability (Disponibilité) : cette clé est présente dans la requête lorsqu'un service utilise les informations d'identification d'un principal IAM pour effectuer au moins une autre requête à un service différent. Cette clé n'est pas présente si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du mandataire. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.

  • Type de valeur – À valeur unique

aws:CurrentTime

Fonctionne avec des opérateurs de date.

Utilisez cette clé pour comparer la date et l'heure de la demande avec celles spécifiée dans la politique. Pour visualiser un exemple de politique qui utilise cette clé de condition, veuillez consulter AWS : permet l'accès en fonction de la date et de l'heure.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

aws:Ec2InstanceSourceVpc

Fonctionne avec des opérateurs de chaîne.

Cette clé identifie le VPC auquel les informations d'identification du rôle IAM Amazon EC2 ont été fournies. Vous pouvez utiliser cette clé dans une politique avec la clé aws:SourceVPC globale pour vérifier si un appel provient d'un VPC (aws:SourceVPC) qui correspond au VPC auquel un identifiant a été délivré (aws:Ec2InstanceSourceVpc).

  • Disponibilité : cette clé est incluse dans le contexte de la demande lorsque le demandeur signe des demandes avec des informations d’identification de rôle Amazon EC2. Elle peut être utilisée dans les politiques IAM, les politiques de contrôle des services, les politiques de points de terminaison d’un VPC et les politiques de ressources.

  • Type de valeur – À valeur unique

Cette clé peut être utilisée avec des valeurs d'identifiant VPC, mais elle est particulièrement utile lorsqu'elle est utilisée en tant que variable associée à la clé contextuelle aws:SourceVpc. Cette clé contextuelle aws:SourceVpc figure dans le contexte de la demande uniquement si le demandeur utilise un point de terminaison de VPC pour effectuer la demande. Utiliser aws:Ec2InstanceSourceVpc avec aws:SourceVpc permet d’utiliser aws:Ec2InstanceSourceVpc plus largement, car la comparaison porte sur des valeurs qui changent généralement ensemble.

Note

Obligatoire ne figure pas dans EC2-Classic.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSameVPC", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

Dans l'exemple ci-dessus, l'accès est refusé si la valeur aws:SourceVpc n'est pas égale à la valeur aws:Ec2InstanceSourceVpc. La déclaration de politique est limitée aux seuls rôles utilisés en tant que rôles d'instance Amazon EC2 en testant l'existence de la clé conditionnelle ec2:SourceInstanceARN.

La politique utilise aws:ViaAWSService pour permettre à AWS d’autoriser les demandes lorsque des demandes sont effectuées au nom de vos rôles d'instance Amazon EC2. Par exemple, lorsque vous envoyez une demande depuis une instance Amazon EC2 vers un compartiment Amazon S3 chiffré, Amazon S3 passe un appel AWS KMS en votre nom. Certaines clés ne sont pas présentes lorsque la demande est faite à AWS KMS.

aws:Ec2InstanceSourcePrivateIPv4

Fonctionne avec des opérateurs d'adresse IP.

Cette clé identifie l'adresse IPv4 privée de l'elastic network interface principale à laquelle les informations d'identification du rôle IAM Amazon EC2 ont été fournies. Vous devez utiliser cette clé de condition avec sa clé aws:Ec2InstanceSourceVpc associée pour vous assurer de disposer d'une combinaison unique d'ID VPC et d'adresse IP privée source. Utilisez cette clé avec aws:Ec2InstanceSourceVpc pour vous assurer qu'une demande a été faite à partir de la même adresse IP privée à laquelle les informations d'identification ont été transmises.

  • Disponibilité : cette clé est incluse dans le contexte de la demande lorsque le demandeur signe des demandes avec des informations d’identification de rôle Amazon EC2. Elle peut être utilisée dans les politiques IAM, les politiques de contrôle des services, les politiques de points de terminaison d’un VPC et les politiques de ressources.

  • Type de valeur – À valeur unique

Important

Cette clé ne doit pas être utilisée seule dans une instruction Allow. Les adresses IP privées ne sont par définition pas uniques d’un point de vue global. Vous devez utiliser la clé aws:Ec2InstanceSourceVpc chaque fois que vous utilisez la clé aws:Ec2InstanceSourcePrivateIPv4 pour spécifier le VPC à partir duquel les informations d'identification de votre instance Amazon EC2 peuvent être utilisées.

Note

Obligatoire ne figure pas dans EC2-Classic.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

aws:EpochTime

Fonctionne avec des opérateurs de date ou des opérateurs numériques.

Utilisez cette clé pour comparer la date et l'heure de la demande au format Epoch ou Unix avec la valeur spécifiée dans la politique. Cette clé accepte également le nombre de secondes depuis le 1er janvier 1970.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

aws:FederatedProvider

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le fournisseur d'identité (IdP) émetteur du principal avec l'IdP que vous spécifiez dans la politique. Cela signifie qu'un rôle IAM a été endossé à l'aide des opérations AWS STS AssumeRoleWithWebIdentity ou AssumeRoleWithSAML. Lorsque les informations d'identification temporaires de la séance de rôle résultante sont utilisées pour effectuer une demande, le contexte de la demande identifie l'IdP qui a authentifié l'identité fédérée d'origine.

  • Disponibilité – Cette clé est présente lorsque le principal est un principal de séance de rôle et que cette séance a été émise à l'aide d'un fournisseur d'identité tiers.

  • Type de valeur – À valeur unique

Par exemple, si l'utilisateur s'est authentifié via Amazon Cognito, le contexte de la demande inclut la valeur cognito-identity.amazonaws.com. De la même façon, si l'utilisateur s'est authentifié via Login with Amazon, le contexte de la demande inclut la valeur www.amazon.com.

Vous pouvez utiliser n'importe quelle clé de condition à valeur unique comme variable. L'exemple suivant de politique basée sur les ressources utilise la clé aws:FederatedProvider comme variable de politique dans l'ARN d'une ressource. Cette politique permet à tout principal qui s'est authentifié à l'aide d'un IdP d'obtenir des objets à partir d'un compartiment Amazon S3 avec un chemin spécifique au fournisseur d'identité émetteur.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/${aws:FederatedProvider}/*" } }

aws:MultiFactorAuthAge

Fonctionne avec des opérateurs numériques.

Utilisez cette clé pour comparer le nombre de secondes écoulées depuis l'authentification du principal demandeur avec MFA avec le nombre spécifié dans la politique. Pour plus d'informations sur l'authentification MFA, consultez Utilisation de l'authentification multifactorielle (MFA) dans l'interface AWS.

  • Availability (Disponibilité) : cette clé ne figure dans le contexte de la demande que si le principal a été authentifié avec MFA. Si MFA n'a pas été utilisé, cette clé est absente.

  • Type de valeur – À valeur unique

aws:MultiFactorAuthPresent

Fonctionne avec des opérateurs booléens.

Utilisez cette clé pour vérifier si l'authentification multi-facteur (MFA) a été utilisée pour valider les informations d'identification de sécurité temporaires qui ont servi à effectuer la demande.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande uniquement lorsque le principal utilise des informations d'identification temporaires pour effectuer la demande. La clé n'est pas présente dans les demandes de la CLI AWS, de l'API AWS ni du kit SDK AWS effectuées à l'aide d'informations d'identification à long terme.

  • Type de valeur – À valeur unique

Les informations d'identification temporaires sont utilisées pour authentifier les rôles IAM, les utilisateurs fédérés, les utilisateurs IAM avec des jetons temporaires de sts:GetSessionToken, et les utilisateurs de la AWS Management Console. Les clés d'accès utilisateur IAM sont des informations d'identification à long terme, mais, dans certains cas, AWS crée des informations d'identification temporaires au nom des utilisateurs IAM, afin d'effectuer des opérations. Dans ces cas, la clé aws:MultiFactorAuthPresent est présente dans la demande et définie sur la valeur false. Deux scénarios courants peuvent expliquer ce comportement :

  • Les utilisateurs IAM de la console AWS Management Console utilisent sans le savoir des informations d'identification temporaires. Les utilisateurs se connectent à la console avec leur nom d'utilisateur et leur mot de passe, qui sont des informations d'identification à long terme. Toutefois, en arrière-plan, la console génère des informations d'identification temporaires pour le compte de l'utilisateur.

  • Si un utilisateur IAM effectue un appel à un service AWS, le service réutilise les informations d'identification de cet utilisateur pour envoyer une autre demande à un autre service Par exemple, lorsque vous appelez Athena pour accéder à un compartiment Amazon S3, ou lorsque vous utilisez AWS CloudFormation pour créer une instance Amazon EC2. Pour la demande suivante, AWS utilisera des informations d'identification temporaires.

Pour savoir quels services prennent en charge l'utilisation d'informations d'identification temporaires, consultez Services AWS qui fonctionnent avec IAM.

La clé aws:MultiFactorAuthPresent n'est jamais présente lorsqu'une API ou une commande de l'interface de ligne de commande (CLI) est appelée avec des informations d'identification à long terme, telles que des paires de clés d'accès. Par conséquent, nous vous recommandons d'utiliser les versions ...IfExists des opérateurs de condition lors de la vérification de cette clé.

Il est important de comprendre que l'élément Condition suivant ne constitue pas une méthode fiable pour vérifier si une demande est authentifiée avec MFA.

##### WARNING: NOT RECOMMENDED ##### "Effect" : "Deny", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }

Cette combinaison de l'effet Deny, de l'élément Bool et de la valeur false refuse les demandes qui peuvent être authentifiées à l'aide de MFA, mais ne l'ont pas été. Cela s'applique uniquement aux informations d'identification temporaires qui prennent en charge l'utilisation de l'authentification MFA. Cette instruction ne refuse pas l'accès aux demandes effectuées à l'aide d'informations d'identification à long terme, ni aux demandes qui ont été authentifiées avec MFA. Utilisez cet exemple avec précaution, car sa logique est complexe et qu'il ne teste pas si l'authentification MFA a été effectivement utilisée.

De même, n'utilisez pas la combinaison de l'effet Deny, de l'élément Null et de true, car elle se comporte de la même manière et sa logique est encore plus complexe.

Combinaison recommandée

Nous vous recommandons plutôt d'utiliser l'opérateur BoolIfExists pour vérifier si une demande est authentifiée à l'aide de MFA.

"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }

Cette combinaison de Deny, BoolIfExists et false refuse les demandes qui ne sont pas authentifiées à l'aide de MFA. Elle refuse en particulier les demandes provenant d'informations d'identification temporaires qui n'incluent pas l'authentification MFA. Elle refuse également les demandes effectuées à l'aide d'informations d'identification à long terme, telles que des opérations de l'outil AWS CLI ou de l'API AWS effectuées avec des clés d'accès. L'opérateur *IfExists vérifie si la clé aws:MultiFactorAuthPresent existe et est présente ou non. Utilisez cet opérateur si vous souhaitez refuser une demande qui n'est pas authentifiée à l'aide de MFA. Cette solution est plus sécurisée, mais elle peut casser le code ou les scripts qui utilisent des clés d'accès pour accéder à la AWS CLI ou à l'API AWS.

Combinaisons alternatives

Vous pouvez également utiliser l'opérateur BoolIfExists pour autoriser les demandes authentifiées avec MFA et les demandes de la AWS CLI ou de l'API AWS effectuées à l'aide d'informations d'identification à long terme.

"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }

Cette condition correspond à deux cas : si la clé existe et est présente ou si la clé n'existe pas. Cette combinaison de Allow, BoolIfExists et true autorise les demandes qui sont authentifiées à l'aide de MFA, ou les demandes qui ne peuvent pas être authentifiées à l'aide de MFA. Cela signifie que les opérations de l'AWS CLI, de l'API AWS et du kit SDK AWS sont autorisées lorsque le demandeur utilise ses clés d'accès à long terme. Cette combinaison n'autorise pas les demandes provenant d'informations d'identification temporaires qui pourraient, mais n'incluent pas MFA.

Lorsque vous créez une politique à l'aide de l'éditeur visuel de la console IAM et que vous sélectionnez MFA required (MFA obligatoire), cette combinaison s'applique. Ce paramètre nécessite l'authentification MFA pour l'accès à la console, mais autorise un accès par programmation sans authentification MFA.

Sinon, vous pouvez utiliser l'opérateur Bool pour autoriser les demandes par programmation et les demandes de console uniquement lorsqu'elles sont authentifiées à l'aide de MFA.

"Effect" : "Allow", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }

Cette combinaison de Allow, Bool et true autorise uniquement les demandes authentifiées par MFA. Cela s'applique uniquement aux informations d'identification temporaires qui prennent en charge l'utilisation de l'authentification MFA. Cette instruction n'autorise pas l'accès aux demandes effectuées à l'aide de clés d'accès à long terme ou d'informations d'identification temporaires sans authentification MFA.

N'utilisez pas de construction de politique semblable à la suivante pour vérifier la présence de la clé MFA :

##### WARNING: USE WITH CAUTION ##### "Effect" : "Allow", "Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }

Cette combinaison de l'effet Allow, de l'élément Null et de la valeur false autorise uniquement les demandes qui peuvent être authentifiées à l'aide de MFA, que la demande soit réellement authentifiée ou non. Elle autorise toutes les demandes effectuées à l'aide d'informations d'identification temporaires et refuse l'accès aux informations d'identification à long terme. Utilisez cet exemple avec précaution, car il ne teste pas si l'authentification MFA a été effectivement utilisée.

aws:PrincipalAccount

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le compte auquel appartient le principal demandeur avec l'identifiant de compte spécifié dans la politique. Pour les demandes anonymes, le contexte de la demande renvoie anonymous.

  • Disponibilité : cette clé figure dans le contexte de la demande pour toutes les demandes, y compris les requêtes anonymes.

  • Type de valeur – À valeur unique

Dans l'exemple suivant, l'accès est refusé, sauf aux principaux possédant le numéro de compte 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:accountID:resource" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }

aws:PrincipalArn

Fonctionne avec Opérateurs ARN et opérateurs de chaîne. AWS recommande d'utiliser des opérateurs ARN plutôt que des opérateurs de chaîne lors de la comparaison des ARN.

Utilisez cette clé pour comparer l'Amazon Resource Name (ARN) du principal ayant fait la demande avec l'ARN spécifié dans la politique. Pour les rôles IAM, le contexte de la demande renvoie l'ARN du rôle, et non l'ARN de l'utilisateur qui a endossé le rôle.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande pour toutes les demandes signées. Les demandes anonymes n'incluent pas cette clé. Vous pouvez spécifier les types de mandataires suivants dans cette clé de condition :

    • Rôle IAM

    • Utilisateur IAM

    • AWS STS session d'utilisateur fédéré

    • Utilisateur root Compte AWS

  • Type de valeur – À valeur unique

La liste suivante indique la valeur de contexte de demande renvoyée pour les différents types de mandataires que vous pouvez spécifier dans la aws:PrincipalArn clé de condition :

  • Rôle IAM— Le contexte de la requête contient la valeur suivante pour la clé de condition aws:PrincipalArn. Ne spécifiez pas l'ARN de session de rôle présumé comme valeur pour cette clé de condition. Pour en savoir plus sur le rôle présumé de session principale, reportez-vous à la section Principaux de séance de rôle.

    arn:aws:iam::123456789012:role/role-name
  • Utilisateur IAM— Le contexte de la requête contient la valeur suivante pour la clé de conditionaws:PrincipalArn.

    arn:aws:iam::123456789012:user/user-name
  • AWS STS sessions d'utilisateur fédéré— Le contexte de la requête contient la valeur suivante pour la clé de conditionaws:PrincipalArn.

    arn:aws:sts::123456789012:federated-user/user-name
  • Compte AWS utilisateur root— Le contexte de la requête contient la valeur suivante pour la clé de condition aws:PrincipalArn. Lorsque vous spécifiez l'ARN de l'utilisateur root comme valeur pour la aws:PrincipalArn clé de condition, il ne limite les autorisations que pour l'utilisateur root de Compte AWS. Cela diffère de la spécification de l'ARN de l'utilisateur root dans l'élément principal d'une politique basée sur les ressources, qui délègue l'autorité au Compte AWS. Pour en savoir plus sur la spécification de l'ARN de l'utilisateur root dans l'élément principal d'une politique basée sur les ressources, consultez Principaux Compte AWS.

    arn:aws:iam::123456789012:root

    Vous pouvez spécifier l'ARN de l'utilisateur root comme valeur pour la clé de condition aws:PrincipalArn dans les AWS Organizations politiques de contrôle des services (SCP). Les SCP sont un type de stratégie d'organisation que vous pouvez utiliser pour gérer les autorisations dans votre organisation ; elles n'affectent que les comptes des membres dans l'organisation. Une SCP limite les autorisations des utilisateurs et des rôles IAM dans les comptes membres, y compris l'utilisateur racine du compte membre. Pour plus d'informations sur l'effet des SCP sur les autorisations, consultez les effets des SCP sur les autorisations dans le Guide d'utilisation pour les organisations.

aws:PrincipalIsAWSService

Fonctionne avec des opérateurs booléens.

Utilisez cette touche pour vérifier si l'appel à votre ressource est effectué directement par un principal de service AWS. Par exemple, AWS CloudTrail utilise le principal de service cloudtrail.amazonaws.com pour écrire des journaux dans votre compartiment Amazon S3. La clé de contexte de demande est définie sur true lorsqu'un service utilise un principal de service pour effectuer une action directe sur vos ressources. La clé de contexte est définie sur false si le service utilise les informations d'identification d'un principal IAM pour effectuer une demande au nom du principal. Elle est également définie sur false si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du principal.

  • Disponibilité : cette clé est présente dans le contexte de la demande pour toutes les demandes d'API signées utilisant des informations d'identification AWS. Les demandes anonymes n'incluent pas cette clé.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé de condition pour limiter l'accès à vos identités de confiance et à vos emplacements réseau attendus, tout en octroyant l'accès en toute sécurité aux services AWS.

Dans l'exemple suivant de politique de compartiment Amazon S3, l'accès au compartiment est restreint, sauf si la demande provient de vpc-111bbb22 ou d'un principal de service, tel que CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/AWSLogs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }

Dans la vidéo suivante, découvrez comment utiliser la clé de condition aws:PrincipalIsAWSService dans une politique.

aws:PrincipalOrgID

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'identifiant de l'organisation dans AWS Organizations à laquelle appartient le principal demandeur avec l'identifiant spécifié dans la politique.

  • Availability (Disponibilité) : cette clé ne figure dans le contexte de la demande que si le principal est membre d'une organisation. Les demandes anonymes n'incluent pas cette clé.

  • Type de valeur – À valeur unique

Cette clé globale permet d'éviter de répertorier tous les ID de compte pour tous les comptes AWS d'une organisation. Vous pouvez utiliser cette clé de condition pour simplifier la spécification de l'élément Principal d'une politique basée sur une ressource. Vous pouvez spécifier l'ID de l'organisation dans l'élément Condition. Lorsque vous ajoutez et supprimez des comptes, les politiques qui contiennent la clé aws:PrincipalOrgID ajoutent automatiquement les bons comptes et ne nécessitent pas de mise à jour manuelle.

Par exemple, la politique de compartiment Amazon S3 suivante permet aux membres de n'importe quel compte de l'organisation o-xxxxxxxxxxx d'ajouter un objet dans le compartiment policy-ninja-dev.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::policy-ninja-dev/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
Note

Cette condition globale s'applique également au compte de gestion d'une organisation AWS. Cette politique empêche tous les principaux en dehors de l'organisation spécifiée d'accéder au compartiment Amazon S3. Cela inclut tous les services AWS qui interagissent avec vos ressources internes, tels que AWS CloudTrail qui envoie des données de journal à vos compartiments Amazon S3. Pour savoir comment vous pouvez accorder l'accès en toute sécurité aux services AWS, veuillez consulter aws:PrincipalIsAWSService.

Pour en savoir plus sur AWS Organizations, consultez Qu'est-ce que AWS Organizations ? dans le guide de l'utilisateur AWS Organizations.

aws:PrincipalOrgPaths

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le chemin d'accès AWS Organizations du principal qui effectue la demande avec le chemin d'accès spécifié dans la politique. Ce principal peut être un utilisateur IAM, un rôle IAM, un utilisateur fédéré ou un Utilisateur racine d'un compte AWS. Dans une politique, cette clé de condition vérifie que le demandeur est un membre du compte au sein de l'organisation racine ou des unités d'organisation spécifiées dans AWS Organizations. Un chemin AWS Organizations est une représentation textuelle de la structure d'une entité Organizations. Pour de plus amples informations sur l'utilisation et la compréhension des chemins, veuillez consulter Comprendre le chemin d'entité AWS Organizations.

  • Availability (Disponibilité) : cette clé ne figure dans le contexte de la demande que si le principal est membre d'une organisation. Les demandes anonymes n'incluent pas cette clé.

  • Type de valeur – À valeur multiple

Note

Les ID d'organisation sont globalement uniques, mais les ID d'unité d'organisation et les ID racine ne sont uniques qu'au sein d'une organisation. Cela signifie qu'aucune organisation ne partage le même ID d'organisation. Toutefois, une autre organisation peut avoir le même ID d'unité d'organisation ou ID racine que vous. Nous vous recommandons de toujours inclure l'ID d'organisation lorsque vous spécifiez une unité d'organisation ou une racine.

Par exemple, la condition suivante renvoie true pour les principaux de comptes qui sont directement attachés à l'unité d'organisation ou-ab12-22222222, et non à ses unités d'organisation enfants.

"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}

La condition suivante renvoie true pour les principaux d'un compte qui est directement attaché à l'unité d'organisation ou à l'une de ses unités d'organisation enfants. Lorsque vous incluez un caractère générique, vous devez utiliser l'opérateur de condition StringLike.

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"] }}

La condition suivante renvoie true pour les principaux d'un compte qui est directement attaché à l'une des unités d'organisation enfant, mais pas directement à l'unité d'organisation parent. La condition précédente s'applique à l'unité d'organisation ou à tous les enfants. La condition suivante s'applique uniquement aux enfants (et aux enfants de ces enfants).

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"] }}

La condition suivante autorise l'accès à chaque principal de l'organisation o-a1b2c3d4e5, quelle que soit l'unité d'organisation parent.

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"] }}

aws:PrincipalOrgPaths est une clé de condition à valeurs multiples. Les clés multivaluées peuvent avoir plusieurs valeurs dans le contexte de la demande. Lorsque vous utilisez plusieurs valeurs avec l'opérateur de condition ForAnyValue, le chemin d'accès du principal doit correspondre à l'un des chemins spécifiés dans la politique. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter Clés de contexte à valeurs multiples.

"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }

aws:PrincipalServiceName

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le nom du principal de service dans la politique au principal de service qui effectue des demandes à vos ressources. Vous pouvez utiliser cette clé pour vérifier si cet appel est effectué par un principal de service spécifique. Lorsqu'un principal de service effectue une demande directe à vos ressources, la clé aws:PrincipalServiceName contient le nom du principal de service. Par exemple, le nom du principal du service AWS CloudTrail est cloudtrail.amazonaws.com.

  • Disponibilité : cette clé est présente dans la demande lorsque l'appel est effectué par un principal du service AWS. Cette clé n'est présente dans aucun autre cas, notamment les suivants :

    • Si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du principal.

    • Si le service utilise les informations d'identification d'un principal IAM pour effectuer une demande au nom du principal.

    • Si l'appel est effectué directement par un principal IAM.

    • Si l'appel est passé par un demandeur anonyme.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé de condition pour limiter l'accès à vos identités de confiance et à vos emplacements réseau attendus, tout en octroyant l'accès en toute sécurité à un service AWS.

Dans l'exemple suivant de politique de compartiment Amazon S3, l'accès au compartiment est restreint, sauf si la demande provient de vpc-111bbb22 ou d'un principal de service, tel que CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/AWSLogs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }

aws:PrincipalServiceNamesList

Fonctionne avec des opérateurs de chaîne.

Cette clé fournit une liste de tous les noms des principal de service appartenant au service. Il s'agit d'une clé de condition avancée. Vous pouvez l'utiliser pour empêcher le service d'accéder à vos ressources à partir d'une région spécifique uniquement. Certains services peuvent créer des principaux de services régionaux pour indiquer une instance particulière du service dans une région spécifique. Vous pouvez limiter l'accès à une ressource à une instance particulière du service. Lorsqu'un principal de service effectue une demande directe à vos ressources, aws:PrincipalServiceNamesList contient une liste non ordonnée de tous les noms des principaux de services associés à l'instance régionale du service.

  • Disponibilité : cette clé est présente dans la demande lorsque l'appel est effectué par un principal du service AWS. Cette clé n'est présente dans aucun autre cas, notamment les suivants :

    • Si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du principal.

    • Si le service utilise les informations d'identification d'un principal IAM pour effectuer une demande au nom du principal.

    • Si l'appel est effectué directement par un principal IAM.

    • Si l'appel est passé par un demandeur anonyme.

  • Type de valeur – À valeur multiple

aws:PrincipalServiceNamesList est une clé de condition à valeurs multiples. Les clés multivaluées peuvent avoir plusieurs valeurs dans le contexte de la demande. Vous devez utiliser les opérateurs d'ensemble ForAnyValue ou ForAllValues avec l'opérateur de condition de chaîne pour cette clé. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter Clés de contexte à valeurs multiples.

aws:PrincipalTag/tag-key

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer la balise attachée au principal effectuant la demande avec la balise spécifiée dans la politique. Si plusieurs balises sont attachées au principal, le contexte de la demande inclut une clé aws:PrincipalTag pour chaque clé de balise attachée.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande si le principal utilise un utilisateur IAM avec des balises attachées. Elle est incluse pour un principal utilisant un rôle IAM avec des balises attachées ou des balises de session. Les demandes anonymes n'incluent pas cette clé.

  • Type de valeur – À valeur unique

Vous pouvez ajouter des attributs personnalisés à un utilisateur ou un rôle sous la forme d'une paire clé-valeur. Pour plus d'informations sur les balises IAM, consultez Balisage des ressources IAM. Vous pouvez utiliser aws:PrincipalTagpour le contrôle d'accès des principaux AWS.

Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise les utilisateurs avec la balise department=hr à gérer les utilisateurs, groupes ou rôles IAM. Pour utiliser cette politique, remplacez le texte de l'espace réservé en italique dans l'exemple de politique par vos propres informations de ressource. Ensuite, suivez les instructions fournies dans create a policy (créer une politique) ou edit a policy (modifier une politique).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/department": "hr" } } } ] }

Cet exemple montre comment créer une politique basée sur les ressources avec la clé aws:PrincipalTag dans l'ARN des ressources. La politique autorise l'action s3:GetObject uniquement si le nom du compartiment se termine par un nom d'équipe issu de la balise de principal team. Pour utiliser cette politique, remplacez le texte de l'espace réservé en italique dans l'exemple de politique par vos propres informations de ressource. Ensuite, suivez les instructions fournies dans create a policy (créer une politique) ou edit a policy (modifier une politique).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET-${aws:PrincipalTag/team}/" } }

aws:PrincipalType

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le type de principal qui effectue la demande avec le type de principal spécifié dans la politique. Pour plus d'informations, veuillez consulter Spécification d'un principal. Pour des exemples spécifiques de valeurs clés principal, veuillez consulter Valeurs de la clé du principal.

  • Disponibilité : cette clé figure dans le contexte de la demande pour toutes les demandes, y compris les requêtes anonymes.

  • Type de valeur – À valeur unique

aws:referer

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le référent de la demande dans le navigateur client avec le référent spécifié dans la politique. La valeur aws:referer du contexte de la demande est fournie par le principal dans un en-tête HTTP. L'en-tête Referer est inclus dans une demande de navigateur Web lorsque vous sélectionnez un lien sur une page Web. L'en-tête Referer contient l'URL de la page Web où le lien a été sélectionné.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande uniquement si la demande à la ressource AWS a été invoquée par liaison à partir d'une URL de page web dans le navigateur. Cette clé n'est pas incluse pour les demandes de programmation, car elle n'utilise pas de lien de navigateur pour accéder à la ressource AWS.

  • Type de valeur – À valeur unique

Par exemple, vous pouvez accéder à un objet Amazon S3 directement à l'aide d'une URL ou en utilisant l'appel direct de l'API. Pour plus d'informations, consultez la section Opérations d'API Amazon S3 directement à l'aide d'un navigateur web. Lorsque vous accédez à un objet Amazon S3 à partir d'une URL qui existe dans une page web, l'URL de la page web source est utilisée dans aws:referer. Lorsque vous accédez à un objet Amazon S3 en saisissant l'URL dans votre navigateur, aws:referer n'est pas présent. Lorsque vous appelez l'API directement, aws:referer n'est pas non plus présent. Vous pouvez utiliser la clé de condition aws:referer dans une politique pour autoriser les demandes effectuées à partir d'un référent spécifique, comme un lien sur une page Web dans le domaine de votre entreprise.

Avertissement

Utilisez cette clé avec précaution. Il est dangereux d'inclure une valeur d'en-tête de référent connue publiquement. Les tiers non autorisés peuvent utiliser des navigateurs modifiés ou personnalisés pour fournir n'importe quelle valeur aws:referer de leur choix. Pour cette raison, il est recommandé de ne pas utiliser aws:referer pour empêcher les tiers non autorisés d'effectuer directement des demandes AWS. Cette clé est fournie uniquement pour permettre aux clients de protéger leur contenu numérique, stocké notamment dans Amazon S3, contre tout référencement sur des sites tiers non autorisés.

aws:RequestedRegion

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer la région AWS qui a été appelée dans la demande avec la région spécifiée dans la politique. Vous pouvez utiliser cette clé de condition globale pour contrôler les régions qui peuvent être demandées. Pour afficher les régions AWS de chaque service, consultez Points de terminaison et quotas de service dans le document Référence générale d'Amazon Web Services.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

Certains services globaux, tels qu'IAM, ont un point de terminaison unique. Comme ce point de terminaison se trouve physiquement dans la région USA Est (Virginie du Nord), les appels IAM sont toujours effectués vers la région us-east-1. Par exemple, si vous créez une politique qui refuse l'accès à tous les services si la région demandée n'est pas us-west-2, les appels IAM échouent toujours. Pour afficher un exemple de la manière de contourner ce problème, consultez NotAction avec Deny.

Note

La clé de condition aws:RequestedRegion vous permet de contrôler le point de terminaison de service qui est appelé, mais n'a pas d'impact sur l'opération. Certains services ont des impacts entre régions.

Par exemple, Amazon S3 possède des opérations d'API qui s'étendent entre les régions.

  • Vous pouvez appeler s3:PutBucketReplication dans une région (qui est affectée par la clé de condition aws:RequestedRegion), mais d'autres régions sont affectées en fonction des paramètres de configuration des réplications.

  • Vous pouvez invoquer s3:CreateBucket pour créer un compartiment dans une autre région et utiliser la clé de condition s3:LocationConstraint pour contrôler les régions applicables.

Vous pouvez utiliser cette clé de contexte pour limiter l'accès aux services AWS au sein d'un ensemble donné de régions. Par exemple, la politique suivante permet à un utilisateur d'afficher toutes les instances Amazon EC2 dans AWS Management Console. Cependant, elle lui permet d'apporter des modifications aux instances dans Irlande (eu-west-1), Londres (eu-west-2) ou Paris (eu-west-3).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }

aws:RequestTag/clé-balise

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer la paire clé-valeur de balise qui a été transmise dans la demande avec la paire de balises spécifiée dans la politique. Par exemple, vous pouvez vérifier que la demande comprend la clé de balise "Dept" et qu'elle a la valeur "Accounting". Pour de plus amples informations, veuillez consulter Contrôle de l'accès au cours des demandes AWS.

  • Disponibilité : cette clé figure dans le contexte de la demande lorsque les balises sont transmises dans la demande. Lorsque plusieurs balises sont transmises dans la demande, il y a une clé de contexte pour chaque paire clé-valeur de balise.

  • Type de valeur – À valeur unique

Cette clé de contexte est formatée selon le schéma "aws:RequestTag/tag-key":"tag-value", où tag-key et tag-value représentent respectivement une clé de balise et une paire de valeurs. Les clés et les valeurs d'étiquette ne sont pas sensibles à la casse. Cela signifie que si vous spécifiez "aws:RequestTag/TagKey1": "Value1" dans l'élément de condition de votre politique, la condition correspond à une clé de balise de demande nommée TagKey1 ou tagkey1, mais pas aux deux.

Cet exemple montre que même si la clé est à valeur unique, vous pouvez toujours utiliser plusieurs paires clé-valeur dans une requête si les clés sont différentes.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }

aws:ResourceAccount

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'ID de l'Compte AWS du propriétaire de la ressource demandée avec le compte de la ressource dans la politique. Vous pouvez ensuite autoriser ou refuser l'accès à cette ressource en fonction du compte propriétaire de la ressource.

  • Disponibilité : cette clé figure toujours dans le contexte de la demande pour la plupart des services. Les actions suivantes ne prennent pas en charge cette clé :

    • Amazon Elastic Block Store : toutes les actions

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

  • Type de valeur – À valeur unique

Note

Pour des considérations supplémentaires concernant les actions non prises en charge ci-dessus, consultez le référentiel Exemples de politiques relatives aux périmètres de données (français non garanti).

Cette clé est égale à l'ID d'Compte AWS pour lequel les ressources sont évaluées dans la demande.

Pour la plupart des ressources de votre compte, l'ARN contient l'ID du compte propriétaire de cette ressource. Pour certaines ressources, telles que les compartiments Amazon S3, l'ARN de ressource n'inclut pas l'ID de compte. Les deux exemples suivants montrent la différence entre une ressource avec un ID de compte dans l'ARN et un ARN Amazon S3 sans ID de compte :

  • arn:aws:iam::123456789012:role/AWSExampleRole – rôle IAM créé et détenu dans le compte 123456789012.

  • arn:aws:s3:::DOC-EXAMPLE-BUCKET2 : compartiment Amazon S3 créé et détenu dans le compte 111122223333, non affiché dans l'ARN.

Utilisez la console AWS, l'API, ou la CLI pour trouver toutes vos ressources et les ARN correspondants.

Vous élaborez une politique qui refuse les autorisations d'accès aux ressources en fonction de l'ID de compte du propriétaire de la ressource. Par exemple, la politique basée sur l'identité suivante refuse l'accès à la ressource spécifiée si celle-ci n'appartient pas au compte spécifié.

Pour utiliser cette politique, remplacez le texte en italique de l'espace réservé dans l'exemple de politique par vos propres informations de compte.

Important

Cette politique ne permet aucune action. Au lieu de cela, elle utilise l'effet Deny qui refuse explicitement l'accès à toutes les ressources répertoriées dans l'instruction n'appartenant pas au compte répertorié. Utilisez cette politique en combinaison avec d'autres politiques qui autorisent l'accès à des ressources spécifiques.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:account:*" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account" ] } } } ] }

Cette politique refuse l'accès à toutes les ressources pour un service AWS sauf si l'Compte AWS est propriétaire de la ressource.

Note

Certains Services AWS nécessitent l'accès à des ressources appartenant à AWS qui sont hébergées dans un autre Compte AWS. L'utilisation de aws:ResourceAccount dans vos politiques basées sur l'identité peut avoir un impact sur la capacité de votre identité à accéder à ces ressources.

Certains services AWS, tels que AWS Data Exchange, dépendent de l'accès à des ressources en dehors de vos Comptes AWS pour les opérations normales. Si vous utilisez l'élément aws:ResourceAccount dans vos politiques, incluez des déclarations supplémentaires afin de créer des dérogations pour ces services. L'exemple de politique AWS: refuser l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange montre comment refuser l'accès en fonction du compte de la ressource tout en définissant des exceptions pour les ressources appartenant au service.

Utilisez cet exemple de politique comme modèle pour créer vos propres politiques personnalisées. Reportez-vous à votre documentation de service pour plus d'informations.

aws:ResourceOrgID

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'identifiant de l'organisation dans AWS Organizations à laquelle la ressource demandée appartient avec l'identifiant spécifié dans la politique.

  • Disponibilité : cette clé ne figure dans le contexte de la demande que si le compte qui possède la ressource est membre d'une organisation. Cette clé de condition globale ne prend pas en charge les actions suivantes :

    • Amazon Elastic Block Store : toutes les actions

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

  • Type de valeur – À valeur unique

Note

Pour des considérations supplémentaires concernant les actions non prises en charge ci-dessus, consultez le référentiel Exemples de politiques relatives aux périmètres de données (français non garanti).

Cette clé globale renvoie l'ID de l'organisation de la ressource pour une demande donnée. Elle vous permet de créer des règles qui s'appliquent à toutes les ressources d'une organisation qui sont spécifiées dans l'élément Resource d'une politique basée sur l'identité. Vous pouvez spécifier l'ID de l'organisation dans l'élément Condition. Lorsque vous ajoutez et supprimez des comptes, les politiques qui contiennent la clé aws:ResourceOrgID incluent automatiquement les bons comptes et vous n'avez pas besoin de la mettre à jour manuellement.

Par exemple, la politique suivante empêche le principal d'ajouter des objets à la ressource policy-genius-dev, sauf si la ressource Amazon S3 appartient à la même organisation que le principal qui effectue la demande.

Important

Cette politique ne permet aucune action. Au lieu de cela, elle utilise l'effet Deny qui refuse explicitement l'accès à toutes les ressources répertoriées dans l'instruction n'appartenant pas au compte répertorié. Utilisez cette politique en combinaison avec d'autres politiques qui autorisent l'accès à des ressources spécifiques.

{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:partition:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }
Note

Certains Services AWS nécessitent l'accès à des ressources appartenant à AWS qui sont hébergées dans un autre Compte AWS. L'utilisation de aws:ResourceOrgID dans vos politiques basées sur l'identité peut avoir un impact sur la capacité de votre identité à accéder à ces ressources.

Certains services AWS, tels que AWS Data Exchange, dépendent de l'accès à des ressources en dehors de vos Comptes AWS pour les opérations normales. Si vous utilisez la clé aws:ResourceOrgID dans vos politiques, incluez des déclarations supplémentaires afin de créer des dérogations pour ces services. L'exemple de politique AWS: refuser l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange montre comment refuser l'accès en fonction du compte de la ressource tout en définissant des exceptions pour les ressources appartenant au service. Vous pouvez créer une politique similaire pour restreindre l'accès aux ressources de votre organisation à l'aide de la clé aws:ResourceOrgID, tout en tenant compte des ressources appartenant au service.

Utilisez cet exemple de politique comme modèle pour créer vos propres politiques personnalisées. Reportez-vous à votre documentation de service pour plus d'informations.

Dans la vidéo suivante, découvrez comment utiliser la clé de condition aws:ResourceOrgID dans une politique.

aws:ResourceOrgPaths

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le chemin d'accès d'AWS Organizations pour la ressource consultée avec le chemin d'accès spécifié dans la politique. Dans une politique, cette clé de condition vérifie que le demandeur est un membre du compte au sein de l'organisation racine ou des unités d'organisation spécifiées dans AWS Organizations. Un chemin AWS Organizations est une représentation textuelle de la structure d'une entité Organizations. Pour de plus amples informations sur l'utilisation et la compréhension des chemins, veuillez consulter Comprendre le chemin d'entité AWS Organizations.

  • Disponibilité : cette clé ne figure dans le contexte de la demande que si le compte qui possède la ressource est membre d'une organisation. Cette clé de condition globale ne prend pas en charge les actions suivantes :

    • Amazon Elastic Block Store : toutes les actions

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

  • Type de valeur – À valeur multiple

Note

Pour des considérations supplémentaires concernant les actions non prises en charge ci-dessus, consultez le référentiel Exemples de politiques relatives aux périmètres de données (français non garanti).

aws:ResourceOrgPaths est une clé de condition à valeurs multiples. Les clés multivaluées peuvent avoir plusieurs valeurs dans le contexte de la demande. Vous devez utiliser les opérateurs d'ensemble ForAnyValue ou ForAllValues avec l'opérateur de condition de chaîne pour cette clé. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter Clés de contexte à valeurs multiples.

Par exemple, la condition suivante renvoie True pour les ressources qui appartiennent à l'organisation o-a1b2c3d4e5. Lorsque vous incluez un caractère générique, vous devez utiliser l'opérateur de condition StringLike.

"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }

La condition suivante renvoie True pour les ressources avec l'ID d'unité d'organisation ou-ab12-11111111. Elle correspond aux ressources détenues par les comptes rattachés à l'unité d'organisation ou-ab12-11111111 ou à l'une des unités d'organisation enfants.

"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}

La condition suivante renvoie True pour les ressources détenues par des comptes rattachés directement à l'ID d'unité d'organisation ou-ab12-22222222, mais pas aux unités d'organisation enfants. L'exemple suivant utilise l'opérateur de condition StringEquals pour spécifier l'exigence de correspondance exacte pour l'ID d'unité d'organisation et non une correspondance générique.

"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Note

Certains Services AWS nécessitent l'accès à des ressources appartenant à AWS qui sont hébergées dans un autre Compte AWS. L'utilisation de aws:ResourceOrgPaths dans vos politiques basées sur l'identité peut avoir un impact sur la capacité de votre identité à accéder à ces ressources.

Certains services AWS, tels que AWS Data Exchange, dépendent de l'accès à des ressources en dehors de vos Comptes AWS pour les opérations normales. Si vous utilisez la clé aws:ResourceOrgPaths dans vos politiques, incluez des déclarations supplémentaires afin de créer des dérogations pour ces services. L'exemple de politique AWS: refuser l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange montre comment refuser l'accès en fonction du compte de la ressource tout en définissant des exceptions pour les ressources appartenant au service. Vous pouvez créer une politique similaire pour restreindre l'accès aux ressources d'une unité d'organisation (UO) à l'aide de la clé aws:ResourceOrgPaths, tout en tenant compte des ressources appartenant au service.

Utilisez cet exemple de politique comme modèle pour créer vos propres politiques personnalisées. Reportez-vous à votre documentation de service pour plus d'informations.

aws:ResourceTag/tag-key

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer la paire valeur clé d'étiquette que vous spécifiez dans la politique avec la paire valeur clé attachée à la ressource. Par exemple, vous pouvez exiger que l'accès à une ressource soit autorisé uniquement si la clé de balise "Dept" est attachée à la ressource avec la valeur "Marketing". Pour de plus amples informations, veuillez consulter Contrôle de l'accès aux ressources AWS.

  • Disponibilité : cette clé figure dans le contexte de la demande lorsque la ressource demandée possède déjà des balises attachées ou dans les demandes qui créent une ressource avec une balise attachée. Cette clé est renvoyée uniquement pour les ressources qui prennent en charge l'autorisation basée sur les balises. Il y a une clé de contexte pour chaque paire clé-valeur de balise.

  • Type de valeur – À valeur unique

Cette clé de contexte est formatée selon le schéma "aws:ResourceTag/tag-key":"tag-value", où tag-key et tag-value représentent respectivement une clé de balise et une paire de valeurs. Les clés et les valeurs d'étiquette ne sont pas sensibles à la casse. Cela signifie que si vous spécifiez "aws:ResourceTag/TagKey1": "Value1" dans l'élément de condition de votre politique, la condition correspond à une clé de balise de ressource nommée TagKey1 ou tagkey1, mais pas aux deux.

Pour obtenir des exemples d'utilisation de la clé aws:ResourceTag pour contrôler l'accès aux ressources IAM, consultez la section Contrôle de l'accès aux ressources AWS.

Pour obtenir des exemples d'utilisation de la clé aws:ResourceTag pour contrôler l'accès à d'autres ressources AWS, consultez la section Contrôle de l'accès aux ressources AWS à l'aide de balises.

Pour obtenir un didacticiel sur l'utilisation de la clé de condition aws:ResourceTag pour le contrôle d'accès basé sur les attributs (ABAC), reportez-vous à la section Didacticiel IAM : définir les autorisations d'accès aux ressources AWS en fonction des balises.

aws:SecureTransport

Fonctionne avec des opérateurs booléens.

Utilisez cette clé pour vérifier si une demande est envoyée avec SSL. Le contexte de la demande renvoie true ou false. Dans une politique, vous pouvez autoriser des actions spécifiques uniquement si la demande est envoyée avec SSL.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

aws:SourceAccount

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'ID de compte de la ressource effectuant une demande de service à service avec l'ID de compte que vous spécifiez dans la politique.

  • Availability (Disponibilité) : cette clé figure dans le contexte de demande uniquement si l'accès à une ressource déclenche l'appel d'un service AWS à un autre service au nom du propriétaire de la ressource. Le service appelant doit transmettre l'ID de compte de la ressource au service appelé. Cet ID de compte inclut l'ID du compte source.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé de condition pour empêcher un service AWS d'être utilisé en tant que député confus lors de transactions entre services. Définissez la valeur de cette clé de condition sur le compte de la ressource dans la demande. Par exemple, lorsqu'une mise à jour du compartiment Amazon S3 déclenche une publication de rubrique Amazon SNS, le service Amazon S3 appelle l'opération d'API sns:Publish. Dans la politique qui autorise l'opération sns:Publish, définissez la valeur de la clé de condition sur l'ID de compte du compartiment Amazon S3. Pour de plus amples informations sur la façon et le moment de recommander ces clés de condition, consultez la documentation relative aux services AWS que vous utilisez.

aws:SourceArn

Fonctionne avec Opérateurs ARN et opérateurs de chaîne. AWS recommande d'utiliser des opérateurs ARN plutôt que des opérateurs de chaîne lors de la comparaison des ARN.

Utilisez cette clé pour comparer l'Amazon Resource Name (ARN) de la ressource effectuant une demande de service à service avec l'ARN que vous spécifiez dans la politique. L'ARN de la source inclut l'ID de compte. Il n'est donc pas nécessaire d'utiliser aws:SourceAccount avec aws:SourceArn.

Cette clé ne fonctionne pas avec l'ARN du principal qui fait la demande. Utilisez à la place aws:PrincipalArn.

  • Availability (Disponibilité) : cette clé figure dans le contexte de demande uniquement si l'accès à une ressource déclenche l'appel d'un service AWS à un autre service au nom du propriétaire de la ressource. Le service appelant doit transmettre l'ARN de la ressource d'origine au service appelé.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé de condition pour empêcher un service AWS d'être utilisé en tant que député confus lors de transactions entre services. Définissez la valeur de cette clé de condition sur l'ARN de la ressource dans la demande. Par exemple, lorsqu'une mise à jour du compartiment Amazon S3 déclenche une publication de rubrique Amazon SNS, le service Amazon S3 appelle l'opération d'API sns:Publish. Dans la politique qui autorise l'opération sns:Publish, définissez la valeur de la clé de condition sur l'ARN du compartiment Amazon S3. Pour de plus amples informations sur la façon et le moment de recommander ces clés de condition, consultez la documentation relative aux services AWS que vous utilisez.

aws:SourceIdentity

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'identité source qui a été définie par le principal à l'identité source que vous spécifiez dans la politique.

  • Disponibilité : cette clé est incluse dans le contexte de la demande après qu'une identité source a été définie lorsqu'un rôle est endossé au moyen d'une commande de la CLI assume-role AWS STS ou d'une opération d'API AssumeRole AWS STS.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé dans une politique pour autoriser des actions dans AWS par les principaux qui ont défini une identité source lorsqu'ils ont endossé un rôle. L'activité pour l'identité source spécifiée du rôle apparaît dans AWS CloudTrail. Cela permet aux administrateurs de déterminer plus facilement qui ou quoi a effectué des actions avec un rôle dans AWS.

Contrairement à sts:RoleSessionName, une fois l'identité source définie, la valeur ne peut plus être modifiée. Elle est présente dans le contexte de la demande pour toutes les actions entreprises par le rôle. La valeur persiste dans les sessions de rôle suivantes lorsque vous utilisez les informations d'identification de session pour endosser un autre rôle. Le fait d'endosser un rôle à partir d'un autre est appelé chaînage des rôles.

La clé sts:SourceIdentity est présente dans la demande lorsque le principal définit initialement une identité source lorsqu'il endosse un rôle au moyen d'une commande de la CLI assume-role AWS STS ou d'une opération d'API AssumeRole AWS STS. La clé aws:SourceIdentity est présente dans la demande pour toutes les actions qui sont effectuées avec une session de rôle disposant d'un ensemble d'identités source.

La politique de confiance de rôle suivante pour CriticalRole dans un compte 111122223333 contient une condition pour aws:SourceIdentity qui empêche un principal sans identité source définie sur Saanvi ou Diego d'endosser le rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }

Pour en savoir plus sur les informations relatives à l'identité source, veuillez consulter Surveiller et contrôler les actions prises avec les rôles endossés.

aws:SourceIp

Fonctionne avec des opérateurs d'adresse IP.

Utilisez cette clé pour comparer l'adresse IP du demandeur avec celle spécifiée dans la politique. La clé de condition aws:SourceIp ne peut être utilisée que pour les plages d'adresses IP publiques.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande, sauf lorsque le demandeur utilise un point de terminaison VPC pour effectuer la demande.

  • Type de valeur – À valeur unique

La clé de condition aws:SourceIp peut être utilisée dans une politique pour autoriser des principaux à effectuer des demandes uniquement dans une plage IP spécifiée. Toutefois, cette politique refuse l'accès si un service AWS effectue des appels au nom du principal. Dans ce cas, vous pouvez utiliser aws:SourceIp avec la clé aws:ViaAWSService pour vous assurer que la restriction d'IP source s'applique uniquement aux demandes faites directement par un principal.

Note

aws:SourceIp prend en charge des adresses ou une plage d’adresses IP IPv4 et IPv6. Pour plus de détails, consultez la section Mettre à niveau les politiques IAM vers IPv6.

Par exemple, vous pouvez attacher la politique suivante à un utilisateur IAM. Cette politique permet à l'utilisateur de placer directement un objet dans le compartiment Amazon S3 DOC-EXAMPLE-BUCKET3 si l'appel est effectué à partir de l'adresse IP spécifiée. Toutefois, si l'utilisateur effectue une autre demande qui provoque l'appel à Amazon S3 par un service, la restriction d'adresse IP ne s'applique pas. L'instruction PrincipalPutObjectIfIpAddress restreint l'adresse IP uniquement si la demande n'est pas effectuée par un service. L'instruction ServicePutObject autorise l'opération sans restriction d'adresse IP si la demande est effectuée par un service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET3/*", "Condition": { "Bool": {"aws:ViaAWSService": "false"}, "IpAddress": {"aws:SourceIp": "203.0.113.0"} } }, { "Sid": "ServicePutObject", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "Bool": {"aws:ViaAWSService": "true"} } } ] }

Si la demande provient d'un hôte qui utilise un point de terminaison Amazon VPC, la clé aws:SourceIp n'est pas disponible. Vous devez plutôt utiliser une clé spécifique au VPC telle que aws:VpcSourceIp. Pour plus d'informations sur l'utilisation des points de terminaison d'un VPC, veuillez consulter la rubrique Gestion des identités et des accès pour les points de terminaison d'un VPC et les services de points de terminaison d'un VPC dans le Guide AWS PrivateLink.

aws:SourceVpc

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour vérifier si la demande provient du VPC spécifiée dans la politique. Dans une politique, vous pouvez utiliser cette clé pour autoriser l'accès à un seul VPC spécifique. Pour de plus amples informations, veuillez consulter Restriction de l'accès à un VPC spécifique dans le Guide de l'utilisateur service de stockage simple Amazon.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande uniquement si le demandeur utilise un point de terminaison de VPC pour effectuer la demande.

  • Type de valeur – À valeur unique

aws:SourceVpce

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'identifiant du point de terminaison de VPC de la demande avec l'ID du point de terminaison spécifié dans la politique. Dans une politique, vous pouvez utiliser cette clé pour restreindre l'accès à un point de terminaison de VPC spécifique. Pour plus d'informations, veuillez consulter Restriction de l'accès à un point de terminaison d'un VPC spécifique dans le Guide de l'utilisateur service de stockage simple Amazon.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande uniquement si le demandeur utilise un point de terminaison de VPC pour effectuer la demande.

  • Type de valeur – À valeur unique

aws:TagKeys

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer les clés de balise d'une demande avec celles spécifiées dans la politique. Nous vous recommandons, lorsque vous utilisez des politiques pour contrôler l'accès à l'aide de balises, d'utiliser la clé de condition aws:TagKeys pour définir quelles clés de balises sont autorisées. Pour obtenir des exemples de stratégie et de plus amples informations, veuillez consulter Contrôle de l'accès en fonction des clés de balise.

  • Disponibilité : cette clé figure dans le contexte de la demande si l'opération prend en charge le passage de balises dans la demande.

  • Type de valeur – À valeurs multiples

Cette clé de contexte est formatée selon le schéma "aws:TagKeys":"tag-key", où tag-key est une liste de clés d'étiquette sans valeur (par exemple, ["Dept","Cost-Center"]).

Étant donné que vous pouvez inclure plusieurs paires clé-valeur de balise dans une demande, le contenu de la demande peut être une demande à valeurs multiples. Dans ce cas, vous devez utiliser le opérateurs d'ensemble ForAllValues ou ForAnyValue. Pour de plus amples informations, veuillez consulter Clés de contexte à valeurs multiples.

Certains services prennent en charge le balisage avec des opérations de ressource, comme la création, la modification ou de la suppression d'une ressource. Pour autoriser le balisage et les opérations sous la forme d'un seul appel, vous devez créer une politique qui inclut à la fois l'action de balisage et celle de modification de ressource. Vous pouvez ensuite utiliser la clé de condition aws:TagKeys pour imposer l'utilisation de clés de balise spécifiques dans la demande. Par exemple, pour limiter les balises lorsque quelqu'un crée un instantané Amazon EC2, vous devez inclure l'action de création ec2:CreateSnapshot et l'action de balisage ec2:CreateTags dans la politique. Pour afficher une politique correspondant à ce scénario, qui utilise aws:TagKeys, veuillez consulter Création d'un instantané avec des balises dans le Guide de l'utilisateur Amazon EC2 pour instances Linux.

aws:TokenIssueTime

Fonctionne avec des opérateurs de date.

Utilisez cette clé pour comparer la date et l'heure d'émission des informations d'identification de sécurité temporaires avec celles spécifiées dans la politique.

  • Availability (Disponibilité) : cette clé figure dans le contexte de la demande uniquement lorsque le principal utilise des informations d'identification temporaires pour effectuer la demande. La clé n'est pas présente dans les demandes de la AWS CLI, de l'API AWS ou du kit SDK AWS effectuées à l'aide de clés d'accès.

  • Type de valeur – À valeur unique

Pour savoir quels services prennent en charge l'utilisation d'informations d'identification temporaires, consultez Services AWS qui fonctionnent avec IAM.

aws:UserAgent

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'application cliente du demandeur avec l'application spécifiée dans la politique.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

Avertissement

Utilisez cette clé avec précaution. Dans la mesure où le principal fournit la valeur aws:UserAgent dans un en-tête HTTP, les tiers non autorisés peuvent modifier ou personnaliser les navigateurs de manière à fournir n'importe quelle valeur aws:UserAgent. Pour cette raison, il est recommandé de ne pas utiliser aws:UserAgent pour empêcher les tiers non autorisés d'effectuer directement des demandes AWS. Vous pouvez l'utiliser pour autoriser uniquement les applications clientes spécifiques, et uniquement après avoir testé votre politique.

aws:userid

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer l'identifiant principal du demandeur avec l'ID spécifié dans la politique. Pour les utilisateurs IAM, la valeur du contexte de la demande est l'ID utilisateur. Pour les rôles IAM, ce format de valeur peut varier. Pour de plus amples informations sur l'ajout de principaux, veuillez consulter Spécification d'un principal. Pour des exemples spécifiques de valeurs clés principal, veuillez consulter Valeurs de la clé du principal.

  • Disponibilité : cette clé figure dans le contexte de la demande pour toutes les demandes, y compris les requêtes anonymes.

  • Type de valeur – À valeur unique

aws:username

Fonctionne avec des opérateurs de chaîne.

Utilisez cette clé pour comparer le nom d'utilisateur du demandeur avec celui spécifié dans la politique. Pour de plus amples informations sur l'ajout de principaux, veuillez consulter Spécification d'un principal. Pour des exemples spécifiques de valeurs clés principal, veuillez consulter Valeurs de la clé du principal.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande pour les utilisateurs IAM. Les demandes anonymes et les demandes effectuées à l'aide de l'Utilisateur racine d'un compte AWS ou des rôles IAM n'incluent pas cette clé. Les requêtes effectuées à l'aide des informations d'identification IAM Identity Center n'incluent pas cette clé dans le contexte.

  • Type de valeur – À valeur unique

aws:ViaAWSService

Fonctionne avec des opérateurs booléens.

Utilisez cette clé pour vérifier si un service AWS effectue une demande à un autre service en votre nom.

La clé de contexte de demande renvoie true lorsqu'un service utilise les informations d'identification d'un principal IAM pour effectuer une demande au nom du principal. La clé de contexte renvoie false si le service utilise un rôle de service ou un rôle lié à un service pour effectuer un appel au nom du principal. La clé de contexte de demande renvoie également false lorsque le principal effectue l'appel directement.

  • Availability (Disponibilité) : cette clé figure toujours dans le contexte de la demande.

  • Type de valeur – À valeur unique

Vous pouvez utiliser cette clé de condition pour autoriser ou refuser l'accès selon qu'une demande a été effectuée par un service. Pour accéder à un exemple de politique, veuillez consulter AWS : refuse l'accès à AWS en fonction de l'adresse IP source.

aws:VpcSourceIp

Fonctionne avec des opérateurs d'adresse IP.

Utilisez cette clé pour comparer l'adresse IP à partir de laquelle une demande a été effectuée avec celle spécifiée dans la politique. Dans une politique, la clé ne correspond que si la demande provient de l'adresse IP spécifiée et qu'elle passe par un point de terminaison de VPC.

  • Availability (Disponibilité) : cette clé ne figure dans le contexte de la demande que si la demande est effectuée à l'aide d'un point de terminaison de VPC.

  • Type de valeur – À valeur unique

Pour en savoir plus, consultez Contrôle de l'accès aux services avec des points de terminaison d'un VPC dans le guide de l'utilisateur Amazon VPC.

Autres clés de condition inter-services

Les clés de condition générales sont des clés de condition avec un préfixe aws:. Chaque service peut créer ses propres clés de condition. Ces clés de condition spécifiques au service incluent un préfixe correspondant au nom du service, tel que iam: ou sts:.

Les services peuvent créer des clés spécifiques au service qui sont disponibles dans le contexte de demande pour d'autres services. Ces clés sont disponibles sur plusieurs services, mais ne sont pas des clés de condition générales. Par exemple, AWS STS prend en charge les clés de condition de fédération basées sur SAML. Ces clés sont disponibles lorsqu'un utilisateur qui a été fédéré à l'aide de SAML effectue des opérations AWS dans d'autres services. saml:namequalifier et ec2:SourceInstanceArn sont deux autres exemples.

Pour afficher les clés de condition spécifiques au service d'un service, consultez la section Actions, ressources et clés de condition pour les services AWS et sélectionnez le service dont vous souhaitez afficher les clés.