

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.

# Clés de contexte IAM et de AWS STS condition
<a name="reference_policies_iam-condition-keys"></a>

Vous pouvez utiliser `Condition` cet élément dans une politique JSON pour tester la valeur des clés incluses dans le contexte de toutes les AWS demandes. Ces clés fournissent des informations sur la demande elle-même ou les ressources référencées par cette dernière. Vous pouvez vérifier que les clés disposent de valeurs spécifiées avant d'autoriser l'action demandée par l'utilisateur. Vous bénéficiez ainsi d'un contrôle détaillé sur la correspondance ou non de vos instructions de politique JSON avec une demande entrante. Pour plus d'informations sur l'utilisation de l'élément `Condition` dans une politique JSON, consultez [Éléments de politique JSON IAM : Condition](reference_policies_elements_condition.md).

Cette rubrique décrit les clés définies et fournies par le service IAM (avec un `iam:` préfixe) et le service AWS Security Token Service (AWS STS) (avec un `sts:` préfixe). Plusieurs autres AWS services fournissent également des clés spécifiques au service qui sont pertinentes pour les actions et les ressources définies par ce service. Pour plus d'informations, consultez [Actions, ressources et clés de condition pour les AWS services](reference_policies_actions-resources-contextkeys.html). La documentation pour un service qui prend en charge des clés de condition possède généralement des informations supplémentaires. Par exemple, pour obtenir des informations sur les clés que pouvez utiliser dans les politiques relatives aux ressources Amazon S3, veuillez consulter [clés de politique Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#AvailableKeys-iamV2) dans le *guide de l'utilisateur service de stockage simple Amazon*.

**Topics**
+ [Clés disponibles pour IAM](#available-keys-for-iam)
+ [Clés disponibles pour la AWS fédération OIDC](#condition-keys-wif)
+ [Clés disponibles pour la fédération basée sur SAML AWS STS](#condition-keys-saml)
+ [Clés de contexte de fédération basées sur le protocole SAML AWS STS interservices](#cross-condition-keys-saml)
+ [Clés disponibles pour AWS STS](#condition-keys-sts)

## Clés disponibles pour IAM
<a name="available-keys-for-iam"></a>

Vous pouvez utilisez les clés de condition suivantes dans des politiques qui contrôlent l'accès aux ressources IAM : 

**iam : AssociatedResourceArn**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Spécifie l'ARN de la ressource à laquelle ce rôle sera associé dans le service de destination. La ressource appartient généralement au service auquel le principal transmet le rôle. Parfois, la ressource peut appartenir à un troisième service. Par exemple, vous pouvez transmettre à Amazon EC2 Auto Scaling un rôle qui sera utilisé sur une instance Amazon EC2. Dans ce cas, la condition correspondrait à l'ARN de l'instance Amazon EC2.   
Cette clé de condition s'applique uniquement à l'[PassRole](id_roles_use_passrole.md)action d'une politique. Elle ne peut pas être utilisée pour limiter une autre action.   
Lorsque vous utilisez la `iam:AssociatedResourceArn` condition dans une politique pour restreindre l'[PassRole](id_roles_use_passrole.md)action, des considérations spéciales s'appliquent si la stratégie est destinée à définir l'accès pour l'[AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html)action. Dans ce cas, vous ne pouvez pas spécifier une région ou un identifiant d’instance dans l’ARN de l’instance EC2. La valeur de l’ARN doit être `arn:aws:ec2:*:CallerAccountId:instance/*`. L’utilisation d’une autre valeur ARN peut conduire à des résultats d’évaluation inattendus.
Utilisez cette clé de condition dans une politique basée sur l’identité pour permettre à une entité de transmettre un rôle, mais uniquement si ce rôle est associé à la ressource spécifiée. Par exemple, vous pouvez autoriser un utilisateur ou un rôle IAM à transmettre n’importe quel rôle au service Amazon EC2 à utiliser avec des instances dans le Compte AWS. L'utilisateur ou le rôle IAM ne serait pas autorisé à transmettre des rôles à d'autres services.  

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "iam:PassedToService": "ec2.amazonaws.com"
        },
        "ArnLike": {
            "iam:AssociatedResourceARN": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ]
        }
    }
}
```
AWS services compatibles avec [iam :](#ck_PassedToService) prennent PassedToService également en charge cette clé de condition.

**iam : Nom AWSService**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Spécifie le AWS service auquel ce rôle est attaché.  
Cette clé de condition est prise en charge par l’opération de l’API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html).  
Pour plus d'informations concernant la prise en charge par les services des rôles liés à un service, consultez [AWS services qui fonctionnent avec IAM](reference_aws-services-that-work-with-iam.md) et recherchez les services affichant **Oui **dans la colonne **Rôle lié à un service**. Choisissez un **Yes** (Oui) ayant un lien permettant de consulter les détails du rôle pour ce service.
Dans cet exemple, vous autorisez une entité à créer un rôle lié à un service en utilisant l’opération de l’API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) si le nom de service est *access-analyzer.amazonaws.com.*    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
       "Effect": "Allow",
       "Action": "iam:CreateServiceLinkedRole",
       "Resource": "*",
       "Condition": {
         "StringLike": {
           "iam:AWSServiceName": "access-analyzer.amazonaws.com"
         }
       }
     }]
 }
```

**iam:FIDO-certification**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie le niveau de certification FIDO de l'appareil MFA au moment de l'enregistrement d'une clé de sécurité FIDO. La certification de l'appareil est extraite du [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Si le statut ou le niveau de certification de votre clé de sécurité FIDO change, celui-ci ne sera pas mis à jour à moins que l'appareil ne soit désenregistré et enregistré de nouveau pour récupérer les informations de certification mises à jour.  
Valeurs possibles de L1, L1plus, L2, L2plus, L3, L3plus  
Dans cet exemple, vous enregistrez une clé de sécurité et récupérez la certification FIDO de niveau 1 plus pour votre appareil.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-certification": "L1plus"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-2-certification**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie le niveau de certification de la validation FIPS-140-2 de l'appareil MFA au moment de l'enregistrement d'une clé de sécurité FIDO. La certification de l'appareil est extraite du [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Si le statut ou le niveau de certification de votre clé de sécurité FIDO change, celui-ci ne sera pas mis à jour à moins que l'appareil ne soit désenregistré et enregistré de nouveau pour récupérer les informations de certification mises à jour.  
Valeurs possibles de L1, L2, L3, L4  
Dans cet exemple, vous enregistrez une clé de sécurité et récupérez la certification FIPS-140-2 de niveau 2 pour votre appareil.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-3-certification**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie le niveau de certification de la validation FIPS-140-3 de l'appareil MFA au moment de l'enregistrement d'une clé de sécurité FIDO. La certification de l'appareil est extraite du [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Si le statut ou le niveau de certification de votre clé de sécurité FIDO change, celui-ci ne sera pas mis à jour à moins que l'appareil ne soit désenregistré et enregistré de nouveau pour récupérer les informations de certification mises à jour.  
Valeurs possibles de L1, L2, L3, L4  
Dans cet exemple, vous enregistrez une clé de sécurité et récupérez la certification FIPS-140-3 de niveau 3 pour votre appareil.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L3"
                }
            }
        }
    ]
                  
 }
```

**iam : OrganizationsPolicyId**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie que la politique avec l' AWS Organizations ID spécifié correspond à la politique utilisée dans la demande. Pour voir un exemple de politique IAM qui utilise cette clé de condition, veuillez consulter [IAM : Afficher les informations du dernier accès au service pour une politique AWS Organizations](reference_policies_examples_iam_service-accessed-data-orgs.md).

**iam : PassedToService**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Spécifie le principal du service auquel un rôle peut être transmis. Cette clé de condition s'applique uniquement à l'[PassRole](id_roles_use_passrole.md)action d'une politique. Elle ne peut pas être utilisée pour limiter une autre action.   
Lorsque vous utilisez cette clé de condition dans une politique, spécifiez le service à l'aide d'un principal service. Un principal de service est le nom d'un service qui peut être spécifié dans l'élément `Principal` d'une politique. Il s'agit du format habituel :`SERVICE_NAME_URL.amazonaws.com`.   
Vous pouvez utiliser `iam:PassedToService` pour limiter vos utilisateurs de sorte qu'ils puissent transmettre des rôles uniquement à des services spécifiques. Par exemple, un utilisateur peut créer un [rôle de service](id_roles.md#iam-term-service-role) qui l'autorise CloudWatch à écrire des données de journal dans un compartiment Amazon S3 en son nom. Ensuite, l'utilisateur doit attacher une politique d'autorisation et une politique d'approbation au nouveau rôle de service. Dans ce cas, la politique d'approbation doit spécifier `cloudwatch.amazonaws.com` dans l'élément `Principal`. Pour consulter une politique qui permet à l'utilisateur de transmettre le rôle CloudWatch, consultez[IAM : transmettre un rôle IAM à un service spécifique AWS](reference_policies_examples_iam-passrole-service.md).  
En utilisant cette clé de condition, vous pouvez vous assurer que les utilisateurs créent des rôles de service uniquement pour les services que vous spécifiez. Par exemple, si un utilisateur de la politique précédente tente de créer un rôle de service pour Amazon EC2, l'opération échouera. L'échec se produit, car l'utilisateur n'est pas autorisé à transmettre le rôle à Amazon EC2.   
Parfois, vous transmettez un rôle à un service, qui le transmet ensuite à un service différent. `iam:PassedToService` inclut uniquement le service final qui endosse le rôle, et non le service intermédiaire qui transmet le rôle.  
Certains services ne prennent pas en charge cette clé de condition.

**iam : PermissionsBoundary**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Vérifie que la politique spécifiée est attachée en tant que limite d'autorisations sur la ressource du principal IAM. Pour plus d'informations, veuillez consulter [Limites d'autorisations pour les entités IAM](access_policies_boundaries.md)

**iam:PolicyARN**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Vérifie l'ARN (Amazon Resource Name) d'une politique gérée dans les demandes qui impliquent ce type de politique. Pour de plus amples informations, veuillez consulter [Contrôle de l'accès aux politiques](access_controlling.md#access_controlling-policies). 

**iam : RegisterSecurityKey**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie l'état actuel de l'activation de l'appareil MFA.  
Valeurs possibles de `Create` ou `Activate`.  
Dans cet exemple, vous enregistrez une clé de sécurité et récupérez la certification FIPS-140-3 de niveau 1 pour votre appareil.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L1"
                }
            }
        }
    ]
                  
 }
```

**Liam :/ResourceTag{{key-name}}**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Vérifie que l'étiquette attachée à la ressource d'identité (utilisateur ou rôle) correspond aux nom et valeur de la clé spécifiée.  
IAM et AWS STS supporte à la fois la clé de condition `iam:ResourceTag` IAM et la clé de condition `aws:ResourceTag` globale.
Vous pouvez ajouter des attributs personnalisés à des ressources IAM sous la forme d'une paire clé-valeur. Pour plus d'informations sur les balises pour les ressources IAM, consultez [Tags pour les Gestion des identités et des accès AWS ressources](id_tags.md). Vous pouvez utiliser `ResourceTag` pour [contrôler l'accès](access_tags.md#access_tags_control-resources) aux ressources AWS , y compris les ressources IAM. Cependant, comme IAM ne prend pas en charge les balises pour les groupes, vous ne pouvez pas utiliser de balises pour contrôler l'accès aux groupes.  
Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise la suppression des utilisateurs avec la balise **status=terminated**. Pour utiliser cette politique, remplacez celle de {{italicized placeholder text}} l'exemple de politique par vos propres informations. Ensuite, suivez les instructions fournies dans [create a policy (créer une politique)](access_policies_create.md) ou [edit a policy (modifier une politique)](access_policies_manage-edit.md).    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "iam:DeleteUser",
        "Resource": "*",
        "Condition": {"StringEquals": {"iam:ResourceTag/{{status}}": "{{terminated}}"}}
    }]
}
```

**iam : ServiceSpecificCredentialAgeDays**  
Fonctionne avec des [opérateurs numériques](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Cette clé de condition limite la création d’informations d’identification spécifiques au service en fonction de leurs paramètres d’expiration. Elle vous permet de contrôler la durée maximale, en jours, des informations d’identification spécifiques au service qui peuvent être créées.  
La plage valide pour les jours est comprise entre 1 et 36 600 (minimum 1 jour, maximum 36 600 jours).  
Cette clé de condition est prise en charge par l’opération de l’API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html).  
Dans cet exemple, vous autorisez un utilisateur à créer des informations d’identification spécifiques au service Amazon Bedrock uniquement si elles expirent dans les 90 jours.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/{{username}}",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "{{bedrock.amazonaws.com}}"
                },
                "NumericLessThanEquals": {
                    "iam:ServiceSpecificCredentialAgeDays": "{{90}}"
                }
            }
        }
    ]
}
```

**iam : ServiceSpecificCredentialServiceName**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Spécifie les AWS services qui peuvent être utilisés lors de la gestion des informations d'identification spécifiques aux services. Cette clé de condition vous permet de restreindre les AWS services autorisés lors de la gestion des informations d'identification spécifiques au service.  
Cette clé de condition est prise en charge par les opérations d’API suivante :  
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html)
Les services suivants sont pris en charge pour les informations d’identification spécifiques au service avec leur formatage de valeur exact :  
+ `bedrock.amazonaws.com`
+ `cassandra.amazonaws.com`
+ `codecommit.amazonaws.com`
Dans cet exemple, vous autorisez un utilisateur à créer des informations d’identification spécifiques au service à l’aide de l’opération d’API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) uniquement pour le service Amazon Bedrock.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/{{username}}",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "{{bedrock.amazonaws.com}}"
                }
            }
        }
    ]
}
```

**iam : DelegationDuration**  
Fonctionne avec des [opérateurs numériques](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Filtre l'accès en fonction de la durée de l'accès temporaire demandé dans une demande de délégation.  
Les fournisseurs de produits peuvent utiliser cette clé de condition pour contrôler la durée maximale qu'ils autorisent dans les demandes de délégation envoyées aux clients. La durée est spécifiée en secondes et détermine la durée de validité des informations d'identification temporaires une fois que le client a libéré le jeton d'échange. Cela aide les fournisseurs de produits à appliquer des politiques internes concernant les limites de durée d'accès en fonction de leur cas d'utilisation.  
Cette clé de condition est prise en charge par l’opération de l’API `CreateDelegationRequest`.  
Dans cet exemple, vous autorisez la création de demandes de délégation uniquement si la durée demandée est inférieure ou égale à 7 200 secondes (2 heures).  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "iam:DelegationDuration": "7200"
                }
            }
        }
    ]
}
```

**iam : NotificationChannel**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtre l'accès en fonction de l'ARN de la rubrique Amazon SNS spécifié pour la réception des notifications de demande de délégation.  
Les fournisseurs de produits peuvent utiliser cette clé de condition pour restreindre les rubriques SNS pouvant être utilisées pour les notifications de demande de délégation dans l'appel CreateDelegationRequest d'API. Les fournisseurs de produits doivent spécifier une rubrique SNS pour recevoir des notifications de changement d'état et échanger des jetons. Cela garantit que les notifications sont envoyées uniquement aux canaux approuvés au sein de l'organisation du fournisseur du produit.  
Cette clé de condition est prise en charge par l’opération de l’API `CreateDelegationRequest`.  
Dans cet exemple, vous autorisez la création de demandes de délégation uniquement si elles utilisent une rubrique SNS spécifique pour les notifications.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:NotificationChannel": "arn:aws:sns:us-east-1:123456789012:delegation-notifications"
                }
            }
        }
    ]
}
```

**iam : TemplateArn**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtre l'accès en fonction de l'ARN du modèle de politique utilisé pour définir les autorisations dans une demande de délégation.  
Les fournisseurs de produits peuvent utiliser cette clé de condition pour contrôler les modèles de politique qui peuvent être utilisés dans l'appel CreateDelegationRequest d'API. Les modèles de politique définissent les autorisations temporaires que les fournisseurs de produits demandent dans les comptes clients. Cela permet aux fournisseurs de produits de restreindre les modèles de politique enregistrés qui peuvent être utilisés lors de la création de demandes de délégation.  
Cette clé de condition est prise en charge par l’opération de l’API `CreateDelegationRequest`.  
Dans cet exemple, vous autorisez la création de demandes de délégation uniquement si elles utilisent un modèle de politique provenant d'un domaine partenaire spécifique.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "iam:TemplateArn": "arn:aws:iam:::delegation-template/partner_*"
                }
            }
        }
    ]
}
```

**iam : DelegationRequestOwner**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtre l'accès en fonction de l' AWS identité ou du principal propriétaire de la demande de délégation.  
Les clients peuvent utiliser cette clé de condition pour contrôler qui peut exécuter des actions sur les demandes de délégation en fonction de la propriété. Le propriétaire d'une demande de délégation est l' AWS identité ou le principal du compte client qui a initié ou reçu la demande de délégation.  
Cette clé de condition est prise en charge par les opérations d’API suivante :  
+ `GetDelegationRequest`
+ `AcceptDelegationRequest`
+ `RejectDelegationRequest`
+ `SendDelegatedToken`
+ `ListDelegationRequests`
+ `UpdateDelegationRequest`
Dans cet exemple, vous autorisez les utilisateurs à gérer uniquement les demandes de délégation dont ils sont propriétaires.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetDelegationRequest",
                "iam:AcceptDelegationRequest",
                "iam:RejectDelegationRequest",
                "iam:SendDelegatedToken",
                "iam:UpdateDelegationRequest",
                "iam:ListDelegationRequests"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:DelegationRequestOwner": "${aws:PrincipalArn}"
                }
            }
        }
    ]
}
```

## Clés disponibles pour la AWS fédération OIDC
<a name="condition-keys-wif"></a>

Vous pouvez utiliser la fédération OIDC pour fournir des informations de sécurité temporaires aux utilisateurs authentifiés via un fournisseur d'identité compatible OpenID Connect (IdP) auprès d'un fournisseur d'identité IAM OpenID Connect (OIDC) dans votre compte. AWS Amazon Cognito GitHub, Login with Amazon et Google sont des exemples de tels fournisseurs. Des jetons d’identité et des jetons d’accès provenant de votre propre IdP peuvent être utilisés, ainsi que des [jetons de compte de service](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-account-tokens) accordés aux charges de travail d’Amazon Elastic Kubernetes Service.

Vous pouvez utiliser les clés contextuelles de condition AWS OIDC pour rédiger des politiques qui limitent l'accès des principaux fédérés aux ressources associées à un fournisseur, une application ou un utilisateur spécifique. Ces clés sont généralement utilisées dans la politique d'approbation d'un rôle. Définissez les clés de condition en utilisant le nom du fournisseur OIDC (`token.actions.githubusercontent.com`) suivi d’une demande (`:aud`) : `token.actions.githubusercontent.com:aud`.

Certaines clés de condition de fédération OIDC peuvent être utilisées dans la session de rôle pour autoriser l’accès aux ressources. Si la valeur est **Oui** dans la colonne **Disponible dans la session**, vous pouvez utiliser ces clés de condition dans les politiques pour définir les accès des utilisateurs dans d'autres AWS services. Lorsqu'une réclamation n'est pas disponible en session, la clé contextuelle de condition OIDC ne peut être utilisée que dans le cadre d'une politique de confiance des rôles pour l'[AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)authentification initiale.

Sélectionnez votre IdP pour voir comment les demandes de votre IdP sont mappées aux clés de contexte de condition IAM dans AWS. Vous trouverez plus d'informations sur les touches pour GitHub et Google dans l'onglet **Par défaut**.

------
#### [ Default ]

La valeur par défaut répertorie les revendications OIDC standard et la manière dont elles sont mappées aux clés de contexte de AWS STS condition. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**. Utilisez ce mappage si votre IdP n’est pas répertorié dans les options de l’onglet. 

GitHub Les workflows Actions et Google en sont quelques exemples IdPs qui utilisent l'implémentation par défaut dans leur jeton d'identification OIDC JWT.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| amr | amr | Oui | 
| aud | azp<br />Si aucune valeur n’est définie pour `azp`, la clé de condition `aud` est mappée à la demande `aud`. | Oui | 
| e-mail | e-mail | Non | 
| oaud | aud | Non | 
| sub | sub | Oui | 

Pour plus d'informations sur l'utilisation des clés contextuelles de condition OIDC avec GitHub, consultez[Configuration d'un rôle pour le fournisseur d'identité GitHub OIDC](id_roles_create_for-idp_oidc.md#idp_oidc_Create_GitHub). Pour de plus amples informations sur les champs Google `aud` et `azp`, veuillez consulter le guide [Google Identity Platform OpenID Connect](https://developers.google.com/identity/protocols/OpenIDConnect). 

**amr**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String). La clé comporte plusieurs valeurs, ce qui signifie que vous l'analysez dans une politique à l'aide d'[opérateurs de définition de condition](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Exemple** : `token.actions.githubusercontent.com:amr`  
La référence des méthodes d’authentification inclut les informations de connexion de l’utilisateur. Elle contient les valeurs suivantes :  
+ Si l'utilisateur n'est pas authentifié, la clé contient uniquement `unauthenticated`.
+ Si l’utilisateur est authentifié, la clé contient la valeur `authenticated` et le nom du fournisseur de connexions utilisé dans l’appel (`accounts.google.com`).

**aud**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemples :**   
+ `accounts.google.com:aud`
+ `token.actions.githubusercontent.com:aud`
Utilisez la clé de condition `aud` pour vérifier que le public correspond à celui spécifié dans la politique. Vous pouvez utiliser la clé aud avec la clé sub pour le même fournisseur d’identité.  
Cette clé de condition est définie à partir des champs de jeton suivants :  
+ `aud`pour le client Google OAuth 2.0 IDs de votre application, lorsque le `azp` champ n'est pas défini. Lorsque le champ `azp` est défini, le champ `aud` correspond à la clé de condition `accounts.google.com:oaud`.
+ `azp` lorsque le champ `azp` est défini. Cela peut se produire pour les applications hybrides dans lesquelles une application Web et une application Android ont un identifiant client Google OAuth 2.0 différent mais partagent le même APIs projet Google. 
Lorsque vous écrivez une politique à l'aide de la clé de condition `accounts.google.com:aud`, vous devez savoir si l'application est une application hybride qui définit le champ `azp`.   
Champ non défini `azp`  
L'exemple de politique suivant fonctionne pour les applications non hybrides qui ne définissent pas le champ `azp`. Dans ce cas, la valeur du champ de jeton d'ID Google `aud` correspond à la fois aux valeurs de clé de condition `accounts.google.com:aud` et `accounts.google.com:oaud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "aud-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```
Champ défini `azp`  
L'exemple de politique suivant fonctionne pour les applications hybrides qui définissent le champ `azp`. Dans ce cas, la valeur du champ de jeton d'ID Google `aud` correspond uniquement à la valeur de clé de condition `accounts.google.com:oaud`. La valeur du champ `azp` correspond à la valeur de clé de condition `accounts.google.com:aud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "azp-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```

**email**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `accounts.google.com:email`  
Cette clé de condition valide l’adresse e-mail de l’utilisateur. La valeur de cette demande peut ne pas être unique à ce compte et peut changer au fil du temps. Par conséquent, vous ne devez pas utiliser cette valeur comme identifiant principal pour vérifier votre enregistrement d’utilisateur.

**oaud**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `accounts.google.com:oaud`  
Cette clé spécifie l’autre public (`aud`) auquel ce jeton d’ID est destiné. Il doit s'agir de l'un des clients OAuth 2.0 IDs de votre application.

**sub**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemples :**  
+ `accounts.google.com:sub`
+ token.actions.githubusercontent.com:sub
Utilisez ces clés pour vérifier que le sujet correspond à celui spécifié dans la politique. Vous pouvez utiliser la clé `sub` avec la clé `aud` pour le même fournisseur d'identité.  
Dans la politique de confiance des rôles suivante, la clé de `sub` condition limite le rôle à la GitHub branche nommée`demo`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::{{111122223333}}:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
          "token.actions.githubusercontent.com:sub": "repo:{{org-name/repo-name}}:ref:refs/heads/{{demo}}"
        }
      }
    }
  ]
}
```

------
#### [ Amazon Cognito ]

Cet onglet explique comment Amazon Cognito mappe les allégations OIDC pour AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.

Pour les rôles utilisés par Amazon Cognito, les clés sont définies par l'URL `cognito-identity.amazonaws.com` suivie de la demande.

Pour plus d’informations sur le mappage des demandes relatives au groupe d’identités, consultez la section [Mappages des fournisseurs par défaut](https://docs.aws.amazon.com/cognito/latest/developerguide/provider-mappings.html) dans le *Guide du développeur Amazon Cognito*. Pour plus d’informations sur le mappage des demandes relatives au groupe d’utilisateurs, consultez la section [Utilisation du jeton d’identification](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) dans le *Guide du développeur Amazon Cognito*.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| amr | amr | Oui | 
| aud | aud | Oui | 
| oaud | aud | Non | 
| sub | sub | Oui | 

**amr**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String). La clé comporte plusieurs valeurs, ce qui signifie que vous l'analysez dans une politique à l'aide d'[opérateurs de définition de condition](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Exemple** : `cognito-identity.amazonaws.com:amr`  
La référence des méthodes d’authentification inclut les informations de connexion de l’utilisateur. Elle contient les valeurs suivantes :  
+ Si l'utilisateur n'est pas authentifié, la clé contient uniquement `unauthenticated`.
+ Si l’utilisateur est authentifié, la clé contient la valeur `authenticated` et le nom du fournisseur de connexions utilisé dans l’appel (`cognito-identity.amazonaws.com`).
Par exemple, la condition suivante de la politique d’approbation d’un rôle Amazon Cognito détermine si l’utilisateur n’est pas authentifié.  

```
"Condition": {
  "StringEquals": 
    { "cognito-identity.amazonaws.com:aud": "us-east-2:{{identity-pool-id}}" },
  "ForAnyValue:StringLike": 
    { "cognito-identity.amazonaws.com:amr": "unauthenticated" }
}
```

**aud**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `cognito-identity.amazonaws.com:aud`  
Client d'application du groupe d'utilisateurs qui a authentifié l'utilisateur. Amazon Cognito affiche la même valeur dans le champ standard `client_id` du jeton d'accès.

**oaud**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `cognito-identity.amazonaws.com:oaud`  
Client d'application du groupe d'utilisateurs qui a authentifié l'utilisateur. Amazon Cognito affiche la même valeur dans le champ standard `client_id` du jeton d'accès.

**sub**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `cognito-identity.amazonaws.com:sub`  
Identifiant unique (UUID), ou sujet, de l'utilisateur authentifié. Le nom d'utilisateur n'est peut-être pas unique dans votre groupe d'utilisateurs. La sous-revendication est le meilleur moyen d’identifier un utilisateur donné. Vous pouvez utiliser la clé `sub` avec la clé `aud` pour le même fournisseur d'identité.  

```
"Condition": {
         "StringEquals": {
            "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
            "cognito-identity.amazonaws.com:sub": [
               "us-east-1:12345678-1234-1234-1234-123456790ab",
               "us-east-1:98765432-1234-1234-1243-123456790ab"
            ]
         }
      }
```

------
#### [ Login with Amazon ]

Cet onglet explique comment Login with Amazon mappe OIDC prétend AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| app\_id | ID d'application | Oui | 
| sub | ID de l’utilisateur | Oui | 
| user\_id | ID de l’utilisateur | Oui | 

**app\_id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `www.amazon.com:app_id`  
Cette clé spécifie le contexte d’audience qui correspond au champ `aud` utilisé par d’autres fournisseurs d’identité.

**sub**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `www.amazon.com:sub`  
Cette clé vérifie que l’ID utilisateur correspond à celui spécifié dans la politique. Vous pouvez utiliser la clé `sub ` avec la clé `aud` pour le même fournisseur d'identité.

**user\_id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `www.amazon.com:user_id`  
Cette clé spécifie le contexte d’audience qui correspond au champ `aud` utilisé par d’autres fournisseurs d’identité. Vous pouvez utiliser la clé `user_id` avec la clé `id` du même fournisseur d’identité.

------
#### [ Facebook ]

Cet onglet explique comment Facebook mappe les affirmations de l'OIDC pour AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| app\_id | ID d'application | Oui | 
| id | id | Oui | 

**app\_id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `graph.facebook.com:app_id`  
Cette clé spécifie que le contexte d’audience correspond au champ `aud` utilisé par d’autres fournisseurs d’identité.

**id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `graph.facebook.com:id`  
Cette clé vérifie que l’ID de l’application (ou du site) correspond à celui spécifié dans la politique.

------
#### [ GitHub ]

Cet onglet explique comment GitHub Actions mappe les revendications OIDC pour AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| acteur | acteur | Non | 
| actor\_id | actor\_id | Non | 
| job\_workflow\_ref | job\_workflow\_ref | Non | 
| référentiels | référentiels | Non | 
| identifiant\_dépôt | identifiant\_dépôt | Non | 
| flux de travail | flux de travail | Non | 
| ref | ref | Non | 
| environment | environment | Non | 
| identifiant d'entreprise | identifiant d'entreprise | Non | 

**acteur**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:actor`  
Cette clé identifie le compte personnel à l'origine de l'exécution du flux de travail. Utilisez-le pour restreindre l'accès à des acteurs spécifiques.

**actor\_id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:actor_id`  
Cette clé vérifie l'ID du compte personnel à l'origine de l'exécution du flux de travail. IDs Les acteurs sont générés par GitHub et sont immuables.

**job\_workflow\_ref**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:job_workflow_ref`  
Cette clé contient le chemin de référence vers le flux de travail réutilisable pour les tâches utilisant un flux de travail réutilisable. Utilisez-le pour restreindre l'accès à des flux de travail spécifiques et pour vous assurer que seuls les flux de travail approuvés peuvent assumer des rôles.

**référentiel**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:repository`  
Cette clé identifie le référentiel à partir duquel le flux de travail est exécuté. Utilisez-le pour limiter l'accès à des GitHub référentiels spécifiques.

**identifiant\_dépôt**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:repository_id`  
Cette clé vérifie l'ID du référentiel à partir duquel le flux de travail est exécuté. IDs Les référentiels sont immuables et ne changent pas même s'ils sont renommés.

**flux de travail**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:workflow`  
Cette clé contient le nom du flux de travail. Utilisez-le pour restreindre l'accès à des flux de travail spécifiques au sein de vos référentiels.

**réf**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:ref`  
Cette clé identifie la référence git (branche ou tag) qui a déclenché l'exécution du flux de travail. Utilisez-le pour limiter l'accès en fonction de branches spécifiques, telles que l'autorisation uniquement `main` ou `production` les branches.

**environment**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:environment`  
Cette clé contient le nom de l'environnement utilisé par la tâche. Utilisez-le pour mettre en œuvre des contrôles d'accès basés sur l'environnement, tels que des autorisations distinctes pour les environnements de développement, de préparation et de production.  
Si la réclamation environnementale est incluse dans votre politique de confiance, un environnement doit être configuré et fourni dans le GitHub flux de travail.

**identifiant d'entreprise**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `token.actions.githubusercontent.com:enterprise_id`  
Cette clé vérifie l'ID de l'entreprise qui contient le référentiel à partir duquel le flux de travail est exécuté. Utilisez-le pour vous assurer que l'accès est limité aux référentiels au sein de votre organisation GitHub d'entreprise.

L'exemple de politique de confiance suivant utilise des revendications personnalisées dans le jeton GitHub OIDC pour limiter l'accès à un rôle.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/token.actions.githubusercontent.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "StringLike": {
                "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
                "token.actions.githubusercontent.com:job_workflow_ref": "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main",
                "token.actions.githubusercontent.com:repository": "octo-org/octo-repo",
                "token.actions.githubusercontent.com:actor": "octocat",
                "token.actions.githubusercontent.com:ref": "refs/heads/main",
                "token.actions.githubusercontent.com:enterprise_id": "345"
               }
           }
        }
    ]
}
```

------
#### [ Google ]

Cet onglet explique comment Google Maps OIDC prétend AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| numéro\_google/organisation | google : numéro\_organisation | Non | 

**numéro\_google/organisation**  
Fonctionne avec des [opérateurs numériques](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
**Exemple** : `accounts.google.com:google/organization_number`  
Cette clé vérifie qu'un jeton représente une identité Google appartenant à une organisation Google Cloud ou Google Workspace spécifique. Utilisez-le pour restreindre l'accès aux utilisateurs d'organisations spécifiques, en veillant à ce que seules les identités de votre organisation puissent assumer le rôle.

L'exemple de politique de confiance suivant utilise la `google/organization_number` revendication pour limiter l'accès à un rôle.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "accounts.google.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "NumericEquals": {
                "accounts.google.com:google/organization_number": "123456"
               }
           }
        }
    ]
}
```

------
#### [ CircleCI ]

Cet onglet explique comment CircleCI mappe les revendications OIDC AWS STS pour conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| oidc.circleci.com/project-id | oidc.circleci.com/project-id | Non | 

**oidc.circleci.com/project-id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `circleci-issuer-url:oidc.circleci.com/project-id`  
Cette clé identifie le projet CircleCI dans lequel la tâche est exécutée. Sa valeur est une chaîne contenant un UUID qui identifie de manière unique le projet CircleCI. Utilisez-le pour restreindre l'accès à des projets CircleCI spécifiques.

L'exemple de politique de confiance suivant utilise la `oidc.circleci.com/project-id` revendication pour limiter l'accès à un rôle.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.circleci.com/org/12345"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "oidc.circleci.com/org/12345:aud": "sts.amazonaws.com",
          "oidc.circleci.com/org/12345:oidc.circleci.com/project-id": "76543210-ba98-fedc-3210-edcba0987654"
        }
      }
    }
  ]
}
```

------
#### [ Oracle Cloud Infrastructure (OCI) ]

Cet onglet explique comment Oracle Cloud Infrastructure mappe les allégations OIDC pour AWS STS conditionner les clés contextuelles. AWS Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les **clés de condition AWS STS ** aux valeurs de la colonne de **demandes JWT IdP**.


| AWS STS clé de condition | Demande JWT IdP | Disponible dans la session | 
| --- | --- | --- | 
| rpst\_id | rpst\_id | Non | 

**rpst\_id**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemple** : `oci-issuer-url:rpst_id`  
Cette clé identifie de manière unique le principal de ressource dans OCI. Utilisez-le pour restreindre l'accès à des principes de ressources OCI spécifiques. Le rpst\_id (Resource Principal Session Token ID) fournit un identifiant stable pour l'authentification basée sur les ressources OCI.

L'exemple de politique de confiance suivant utilise la `rpst_id` revendication pour limiter l'accès à un rôle.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/idcs-abc123ef5678901234abcd.identity.oraclecloud.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:aud": "sts.amazonaws.com",
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:rpst_id": "your-rpst-id"
        }
      }
    }
  ]
}
```

------

### Plus d’informations sur la fédération OIDC
<a name="condition-keys-wif-more-info"></a>


+ [Guide de l'utilisateur d'Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)
+ [Fédération OIDC](id_roles_providers_oidc.md)

## Clés disponibles pour la fédération basée sur SAML AWS STS
<a name="condition-keys-saml"></a>

Si vous utilisez une [fédération basée sur SAML](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html) à l'aide de AWS Security Token Service (AWS STS), vous pouvez inclure des clés de condition supplémentaires dans la politique. 

### Politiques d'approbation de rôle SAML
<a name="condition-keys-saml_trust-policy"></a>

Dans la politique d'approbation d'un rôle, vous pouvez inclure les clés suivantes afin d'établir si le principal est autorisé à endosser le rôle. Hormis `saml:doc`, toutes les valeurs sont dérivées de l'assertion SAML. Tous les éléments de la liste sont disponibles dans l'éditeur visuel de la console IAM lorsque vous créez ou modifiez une politique avec des conditions. Les éléments marqués d'un [`[]` *peuvent* avoir une valeur qui est une liste du type spécifié.

**saml:aud**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
L'URL d'un point de terminaison auquel les assertions SAML sont présentées. La valeur de cette clé provient du champ `SAML Recipient` de l'assertion, *non* du champ `Audience`.

**saml:commonName[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `commonName`.

**saml:cn[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:doc**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Représente le principal utilisé pour endosser le rôle. Le format est{{account-ID}}/{{provider-friendly-name}}, par exemple`123456789012/SAMLProviderName`. La valeur *ID compte* fait référence au compte qui est propriétaire du [fournisseur SAML](id_roles_providers_create_saml.md). 

**saml:edupersonaffiliation[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonassurance[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonentitlement[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonnickname[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonorgdn**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonorgunitdn[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonprimaryaffiliation**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonprimaryorgunitdn**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonprincipalname**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersonscopedaffiliation[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:edupersontargetedid[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduPerson`.

**saml:eduorghomepageuri[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:eduorgidentityauthnpolicyuri[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:eduorglegalname[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:eduorgsuperioruri[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:eduorgwhitepagesuri[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `eduOrg`.

**saml:givenName[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `givenName`.

**saml:iss**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Auteur, représenté par un URN. 

**saml:mail[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `mail`.

**saml:name[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `name`.

**saml:namequalifier**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Valeur de hachage basée sur le nom convivial du fournisseur SAML. La valeur est la concaténation des valeurs suivantes, dans l'ordre et séparées par le caractère '/' :  

1. Valeur de la réponse `Issuer` (`saml:iss`)

1. ID du compte `AWS`.

1.  Nom convivial (dernière partie de l'ARN) du fournisseur SAML dans IAM 
La concaténation de l'ID de compte et du nom convivial du fournisseur SAML est disponible dans les politiques IAM en tant que clé `saml:doc`. Pour plus d’informations, veuillez consulter[Identification unique des utilisateurs dans la fédération SAML](id_roles_providers_saml.md#CreatingSAML-userid).

**saml:organizationStatus[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `organizationStatus`.

**saml:primaryGroupSID[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `primaryGroupSID`.

**saml:sub**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Objet de la demande, qui inclut une valeur qui identifie de manière unique un utilisateur individuel au sein d'une organisation (par exemple, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**saml:sub\_type**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Cette clé peut avoir la valeur `persistent`, `transient`, ou consister en l'URI `Format` complet des éléments `Subject` et `NameID` utilisés dans votre assertion SAML. La valeur `persistent` indique que la valeur de `saml:sub` reste la même pour l'utilisateur entre les sessions. Si la valeur est `transient`, l'utilisateur a une valeur `saml:sub` différente pour chaque session. Pour plus d'informations sur l'attribut `NameID` de l'élément `Format`, consultez [Configuration d’assertions SAML pour la réponse d’authentification](id_roles_providers_create_saml_assertions.md).

**saml:surname[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `surnameuid`.

**saml:uid[]**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `uid`.

**saml:x500 [] UniqueIdentifier**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Attribut `x500UniqueIdentifier`.

Pour obtenir des informations générales sur les attributs `eduPerson` et `eduOrg`, accédez au [site Web EFEDS Wiki](https://wiki.refeds.org/display/STAN/eduPerson). Pour obtenir la liste des attributs `eduPerson`, consultez [Spécifications des classes d'objets eduPerson (201602)](https://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html). 

Les clés de condition dont le type est une liste peuvent inclure plusieurs valeurs. Pour créer des conditions dans la politique pour des valeurs de liste, vous pouvez utiliser des [opérateurs de définition](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) (`ForAllValues`, `ForAnyValue`). Par exemple, pour autoriser un utilisateur dont l'affiliation est « faculté » ou « personnel » (mais pas « étudiant »), vous pouvez utiliser la condition suivante : 

```
"Condition": {
   "ForAllValues:StringLike": {
     "saml:edupersonaffiliation":[ "faculty", "staff"] 
   }
}
```

## Clés de contexte de fédération basées sur le protocole SAML AWS STS interservices
<a name="cross-condition-keys-saml"></a>

Certaines clés de condition de fédération basées sur SAML peuvent être utilisées dans des demandes ultérieures pour autoriser AWS des opérations dans d'autres services et `AssumeRole` appels. Il s'agit des clés de condition suivantes qui peuvent être utilisées dans les politiques de confiance des rôles lorsque les principaux fédérés assument un autre rôle, et dans les politiques de ressources d'autres AWS services pour autoriser l'accès aux ressources par des principaux fédérés. Pour plus d'informations sur l'utilisation de ces clés, consultez la section [À propos de la fédération SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-userid). 

Sélectionnez une clé de condition pour voir la description.
+ [saml:namequalifier](#ck_saml-namequalifier)
+ [saml:sub](#ck_saml-sub)
+ [saml:sub_type](#ck_saml-subtype)

**Note**  
Aucune autre clé de condition pour la fédération basée sur SAML n'est disponible à l'utilisation après la réponse d'authentification initiale du fournisseur d'identité (IdP) externe.

## Clés disponibles pour AWS STS
<a name="condition-keys-sts"></a>

Vous pouvez utiliser les clés de condition suivantes dans les politiques de confiance des rôles IAM pour les rôles assumés à l'aide d'opérations AWS Security Token Service (AWS STS). 

**saml:sub**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Objet de la demande, qui inclut une valeur qui identifie de manière unique un utilisateur individuel au sein d'une organisation (par exemple, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**sts : AWSService Nom**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour spécifier un service dans lequel un jeton porteur fonctionne. Lorsque vous utilisez cette clé de condition dans une politique, spécifiez le service à l'aide d'un principal service. Un principal de service est le nom d'un service qui peut être spécifié dans l'élément `Principal` d'une politique. Par exemple, `codeartifact.amazonaws.com` c'est le principal du AWS CodeArtifact service.  
**Disponibilité** : cette clé est présente dans les demandes qui obtiennent un jeton porteur. Vous ne pouvez pas appeler directement pour AWS STS obtenir un jeton au porteur. Lorsque vous effectuez certaines opérations dans d'autres services, le service demande le jeton au porteur en votre nom.  
Certains AWS services nécessitent que vous soyez autorisé à obtenir un jeton de support de AWS STS service avant de pouvoir accéder à leurs ressources par programmation. Par exemple, AWS CodeArtifact exige des principaux qu'ils utilisent des jetons porteurs pour effectuer certaines opérations. La commande `aws codeartifact get-authorization-token` renvoie un jeton porteur. Vous pouvez ensuite utiliser le jeton porteur pour effectuer des AWS CodeArtifact opérations. Pour de plus amples informations sur les jetons porteurs, veuillez consulter [Jeton porteur de service](id_credentials_bearer.md).   
Vous pouvez utiliser cette clé de condition pour permettre aux entités d'obtenir un jeton porteur à utiliser avec un service spécifique.

**sièges : DurationSeconds**  
Fonctionne avec des [opérateurs numériques](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Utilisez cette clé pour spécifier la durée (en secondes) qu'un principal peut utiliser pour obtenir un jeton AWS AWS STS porteur ou un jeton Web JSON depuis l'[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API.  
**Disponibilité** — Cette clé est présente dans les demandes qui obtiennent un jeton porteur ou un jeton Web JSON depuis l' GetWebIdentityToken API. Vous ne pouvez pas appeler directement pour AWS STS obtenir un jeton au porteur. Lorsque vous effectuez certaines opérations dans d'autres services, le service demande le jeton au porteur en votre nom. La clé ne s'applique pas aux opérations d' AWS STS attribution de rôle.  
Certains AWS services nécessitent que vous soyez autorisé à obtenir un jeton de support de AWS STS service avant de pouvoir accéder à leurs ressources par programmation. Par exemple, AWS CodeArtifact exige des principaux qu'ils utilisent des jetons porteurs pour effectuer certaines opérations. La commande `aws codeartifact get-authorization-token` renvoie un jeton porteur. Vous pouvez ensuite utiliser le jeton porteur pour effectuer des AWS CodeArtifact opérations. Pour de plus amples informations sur les jetons porteurs, veuillez consulter [Jeton porteur de service](id_credentials_bearer.md). 

**sièges : IdentityTokenAudience**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour spécifier le public pour lequel un directeur IAM peut demander des jetons Web JSON (JWTs) à l'aide de l'[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Lorsque cette clé de condition est présente dans une stratégie IAM, les principaux IAM ne peuvent demander des jetons que pour les publics spécifiés dans la politique. Les services externes valident la demande d'audience (« aud ») contenue dans le jeton Web JSON pour s'assurer que le jeton leur était destiné.  
**Disponibilité** — Cette clé est présente dans les demandes adressées à l' GetWebIdentityToken API qui est utilisée pour obtenir des jetons Web JSON (JWTs) pour l'authentification auprès de services externes.  
Lorsque vous utilisez cette clé de condition dans une politique, spécifiez la valeur d'audience qui correspond à l'identifiant du destinataire prévu (par exemple, https://api.example.com).  
L'exemple de politique suivant permet à un principal de demander des jetons pour les services externes spécifiés :  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sts:IdentityTokenAudience": [
                        "https://api2.example.com",
                        "https://api1.example.com"
                    ]
                }
            }
        }
    ]
}
```

**sièges : SigningAlgorithm**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour spécifier l'algorithme cryptographique AWS AWS STS utilisé pour signer les jetons Web JSON (JWTs) générés par l'[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Lorsque vous utilisez cette clé de condition dans une politique, spécifiez soit ES384 (ECDSA avec courbe P-384 et SHA-384) soit RS256 (RSA avec SHA-256).  
**Disponibilité** — Cette clé est présente dans les demandes adressées à l' GetWebIdentityToken API qui est utilisée pour obtenir des jetons Web JSON (JWTs) pour l'authentification auprès de services externes.  
Vous pouvez utiliser cette clé de condition pour obliger les responsables IAM à demander des jetons à l'aide d'algorithmes de signature compatibles avec vos exigences de sécurité ou avec les services externes auxquels vous vous intégrez. ES384 fournit une sécurité et des performances optimales, tout en RS256 offrant une compatibilité accrue avec les systèmes qui ne prennent pas en charge l'ECDSA.  
L'exemple de politique suivant impose aux principaux d'utiliser l'algorithme de ES384 signature :  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "sts:SigningAlgorithm": "ES384"
                }
            }
        }
    ]
}
```

**sièges : ExternalId**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour exiger qu'un principal fournisse un identifiant spécifique lors de la prise en charge d'un rôle IAM.  
**Disponibilité** — Cette clé est présente dans la demande lorsque le principal fournit un identifiant externe tout en assumant un rôle à l'aide de l' AWS API AWS CLI or.   
Identifiant unique qui peut être requis lorsque vous endossez un rôle dans un autre compte. Si l'administrateur du compte auquel appartient le rôle vous a fourni un ID externe, indiquez cette valeur dans le paramètre `ExternalId`. Cette valeur peut être n'importe quelle chaîne, comme une phrase de passe ou un numéro de compte. La fonction principale de l’ID externe est de traiter et de prévenir le problème du délégué confus. Pour de plus amples informations sur l'ID externe et le problème du député confus, veuillez consulter [Accès à des Comptes AWS sites appartenant à des tiers](id_roles_common-scenarios_third-party.md).  
La valeur `ExternalId` peut avoir un minimum de 2 caractères et un maximum de 1 224 caractères. La valeur doit être alphanumérique sans espaces. Elle peut également inclure les symboles suivants : signe plus (\+), signe égal (=), virgule (,), point (.), arobase (@), deux points (:), barre oblique (/) et tiret (-).

**sts :RequestContext/touche *contextuelle***  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour comparer les paires clé-valeur du contexte de session intégrées dans l'assertion contextuelle signée par l'émetteur du jeton sécurisé transmise dans la demande avec les paires clé-valeurs spécifiées dans la politique de confiance des rôles.  
**Disponibilité** — Cette clé est présente dans la demande lorsqu'une assertion de contexte est fournie dans le paramètre de `ProvidedContexts` demande tout en assumant un rôle à l'aide de l'opération AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API.  
Cette clé de contexte a le format suivant : `"sts:RequestContext/context-key":"context-value"` où `context-key` et `context-value` constituent une paire clé-valeur de contexte. Lorsque plusieurs clés de contexte sont intégrées dans l'assertion de contexte signée transmise dans la demande, il y a une clé de contexte pour chaque paire clé-valeur. Vous devez autoriser l'action `sts:SetContext` dans la politique de confiance des rôles afin de permettre à un principal de définir des clés de contexte dans le jeton de session obtenu. Pour en savoir plus sur les clés de contexte IAM Identity Center prises en charge qui peuvent être utilisées avec cette clé, consultez la section [clés de condition AWS STS pour IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.  
Vous pouvez utiliser cette clé dans une politique de confiance des rôles pour appliquer un contrôle d'accès précis basé sur l'utilisateur ou ses attributs lorsqu'il endosse un rôle. Une fois le rôle assumé, l'activité apparaît dans les AWS CloudTrail journaux de l'`AdditionalEventData`attribut, contenant les paires clé-valeur du contexte de session définies par le fournisseur de contexte dans la demande d'attribution du rôle. Cela permet aux administrateurs de différencier plus facilement les sessions de rôle lorsqu'un rôle est utilisé par différents principaux. Les paires clé-valeur sont définies par le fournisseur de contexte spécifié, et non par AWS CloudTrail ou. AWS STS Cela permet au fournisseur de contexte de contrôler le contexte inclus dans les CloudTrail journaux et les informations de session.

**sièges : RequestContextProviders**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Utilisez cette clé pour comparer l'ARN du fournisseur de contexte dans la demande avec l'ARN du fournisseur de contexte spécifié dans la politique de confiance des rôles.  
**Disponibilité** — Cette clé est présente dans la demande lorsqu'une assertion de contexte est fournie dans le paramètre de `ProvidedContexts` demande tout en assumant un rôle à l'aide de l'opération AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API.  
L'exemple de condition suivant vérifie que l'ARN du fournisseur de contexte transmis dans la demande correspond à l'ARN spécifié dans la condition de politique d'approbation des rôles. Nous vous recommandons d’ajouter une vérification de valeur nulle avec `ForAllValues` afin d’éviter que les clés de contexte manquantes ou les clés de contexte avec des valeurs vides ne soient évaluées comme vraies. Pour en savoir plus, consultez [Opérateur de condition pour vérifier l'existence de clés de condition](reference_policies_elements_condition_operators.md#Conditions_Null).    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Action": "sts:SetContext",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
      "ForAllValues:ArnEquals": {
        "sts:RequestContextProviders": [
          "arn:aws:iam::aws:contextProvider/IdentityCenter"
        ]
      },
      "Null": {
        "sts:RequestContextProviders": "false"
      }
    }
  }
}
```

**sièges : RoleSessionName**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour comparer le nom de session spécifié par un principal lorsqu'il endosse un rôle avec la valeur spécifiée dans la politique.  
**Disponibilité** — Cette clé est présente dans la demande lorsque le principal assume le rôle à l' AWS Management Console aide de toute commande CLI assume-role ou de toute opération d' AWS STS `AssumeRole`API.  
Vous pouvez utiliser cette clé dans une politique d'approbation de rôle pour exiger que vos utilisateurs fournissent un nom de session spécifique lorsqu'ils endossent un rôle. Par exemple, vous pouvez exiger que les utilisateurs IAM spécifient leur propre nom d'utilisateur comme nom de session. Une fois que l'utilisateur IAM endosse le rôle, l'activité apparaît dans les [journaux AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) sous le nom de session correspondant à son nom d'utilisateur. Cela permet aux administrateurs de différencier plus facilement les sessions de rôle lorsqu'un rôle est utilisé par différents principaux.  
La politique d'approbation de rôle suivante exige que les utilisateurs IAM dans le compte `111122223333` fournissent leur nom d'utilisateur IAM comme nom de session lorsqu'ils endossent le rôle. Cette exigence est appliquée à l'aide de la [variable de condition ](reference_policies_variables.md) `aws:username` dans la clé de condition. Cette politique permet aux utilisateurs IAM d'endosser le rôle auquel la politique est attachée. Cette politique empêche quiconque utilise des informations d'identification temporaires d'endosser le rôle, car la variable `username` est uniquement présente pour les utilisateurs IAM.  
Vous pouvez utiliser n'importe quelle clé de condition à valeur unique comme [variable](reference_policies_variables.md). Vous ne pouvez pas utiliser de clé de condition à valeurs multiples en tant que variable.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::{{111122223333}}:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "prefix-${aws:username}"}
            }
        }
    ]
}
```
Lorsqu'un administrateur consulte le AWS CloudTrail journal d'une action, il peut comparer le nom de session aux noms d'utilisateur de son compte. Dans l'exemple suivant, l'utilisateur appelé `matjac` a effectué l'opération en utilisant le rôle appelé `MateoRole`. L'administrateur peut alors contacter Mateo Jackson, dont le nom d'utilisateur est `matjac`.  

```
    "assumedRoleUser": {
        "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:{{matjac}}",
        "arn": "arn:aws:sts::111122223333:assumed-role/{{MateoRole}}/{{matjac}}"
    }
```
Si vous autorisez [l'accès entre comptes à l'aide de rôles](id_roles_common-scenarios_aws-accounts.md), les utilisateurs d'un compte peuvent endosser un rôle dans un autre compte. L'ARN de l'utilisateur du rôle assumé répertorié dans CloudTrail inclut le compte *où le rôle existe*. Il n'inclut pas le compte de l'utilisateur qui a endossé le rôle. Les utilisateurs ne sont uniques qu'au sein d'un compte. Par conséquent, nous vous recommandons d'utiliser cette méthode pour vérifier les CloudTrail journaux uniquement pour les rôles assumés par les utilisateurs dans les comptes que vous administrez. Vos utilisateurs peuvent utiliser le même nom d'utilisateur dans plusieurs comptes.

**sièges : SourceIdentity**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour comparer l'identité source spécifiée par un principal lorsqu'il endosse un rôle avec la valeur spécifiée dans la politique.  
**Disponibilité** — Cette clé est présente dans la demande lorsque le principal fournit une identité source tout en assumant un rôle à l'aide d'une commande AWS STS CLI assume-role ou d'une opération d' AWS STS `AssumeRole`API.  
Vous pouvez utiliser cette clé dans une politique d'approbation de rôle pour exiger que vos utilisateurs définissent une identité source spécifique lorsqu'ils endossent un rôle. Par exemple, vous pouvez exiger que votre main-d'œuvre ou vos identités fédérées spécifient une valeur pour l'identité source. Vous pouvez configurer votre fournisseur d'identité (IdP) de sorte qu'il utilise l'un des attributs associés à vos utilisateurs, un nom d'utilisateur ou un e-mail par exemple, comme identité source. L'IdP transmet ensuite l'identité source en tant qu'attribut dans les assertions ou les revendications auxquelles il envoie. AWS La valeur de l'attribut d'identité source identifie l'utilisateur ou l'application qui endosse le rôle.  
Une fois que l'utilisateur endosse le rôle, l'activité apparaît dans les journaux [AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) avec la valeur d'identité source qui a été définie. Cela permet aux administrateurs de déterminer plus facilement qui ou quoi a effectué des actions avec un rôle dans AWS. Vous devez octroyer des autorisations pour l'action `sts:SetSourceIdentity` afin d'autoriser une identité à définir une identité source.   
Contrairement à [`sts:RoleSessionName`](#ck_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 effectuées avec le rôle par l'identité source. 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](id_roles.md#iam-term-role-chaining).   
Vous pouvez utiliser la clé de condition [`aws:SourceIdentity`](reference_policies_condition-keys.md#condition-keys-sourceidentity)globale pour contrôler davantage l'accès aux AWS ressources en fonction de la valeur de l'identité de la source dans les demandes suivantes.   
La politique de confiance de rôle suivante autorise l'utilisateur IAM `AdminUser`à endosser un rôle dans le compte `111122223333`. Elle octroie également l'autorisation à l'interface `AdminUser` de définir une identité source, dans la mesure où l'identité source définie correspond à `DiegoRamirez`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdminUserAssumeRole",
            "Effect": "Allow",
            "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"}
            }
        }
    ]
}
```
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](id_credentials_temp_control-access_monitor.md).

**sièges : TaskPolicyArn**  
Fonctionne avec des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Utilisez cette clé pour comparer l'ARN de politique d'une AssumeRoot demande [sts :](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) avec l'ARN de politique spécifié dans la politique.  
**Disponibilité** — Cette clé est présente dans la demande lorsque vous faites une demande à l'aide de [sts : AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html).  
Les administrateurs peuvent utiliser cette clé de condition dans les politiques IAM pour empêcher certains rôles ou utilisateurs du compte de gestion ou du compte d’administrateur délégué d’effectuer certaines actions lorsqu’ils utilisent les informations d’identification racine. Pour de plus amples informations, veuillez consulter [Réaliser une tâche privilégiée sur un compte AWS Organizations membre](id_root-user-privileged-task.md).

**sièges : TransitiveTagKeys**  
Fonctionne avec des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilisez cette clé pour comparer les clés des balises de session transitoire de la demande avec celles spécifiées dans la politique.   
**Availability** (Disponibilité) : cette clé est présente dans la demande lorsque vous effectuez une demande à l'aide d'informations d'identification de sécurité temporaires. Il s'agit notamment des informations d'identification créées à l'aide d'une opération assume-rôle, ou de l'opération `GetFederationToken`.  
Lorsque vous effectuez une demande à l'aide d'informations d'identification de sécurité temporaires, le [contexte de la demande](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) inclut la clé de contexte `aws:PrincipalTag`. Cette clé inclut une liste de [balises de session](id_session-tags.md), de [balises de session transitoire](id_session-tags.md#id_session-tags_role-chaining) et de balises de rôle. Les balises de session transitoires sont des balises qui perdurent pendant toutes les sessions ultérieures 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](id_roles.md#iam-term-role-chaining).   
Vous pouvez utiliser cette clé de condition dans une politique pour exiger la définition de balises de session spécifiques comme transitoires lorsque vous endossez un rôle ou fédérez un utilisateur.