

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.

# Référence de politique JSON IAM
<a name="reference_policies"></a>

Cette section présente la syntaxe, les descriptions et des exemples détaillés des éléments, des variables et de la logique d'évaluation des politiques JSON dans IAM. Pour plus d’informations générales, consultez [Présentation des politiques JSON](access_policies.md#access_policies-json).

Cette référence comprend les sections suivantes.
+  [Référence de l’élément de politique JSON IAM](reference_policies_elements.md) : en savoir plus sur les éléments que vous pouvez utiliser lorsque vous créez une politique. Consultez des exemples de politiques supplémentaires, et découvrez les conditions et les types de données pris en charge, ainsi que la manière dont ils sont utilisés dans différents services. 
+ [Logique d'évaluation de politiques](reference_policies_evaluation-logic.md)— Cette section décrit les AWS demandes, comment elles sont authentifiées et comment AWS utilise les politiques pour déterminer l'accès aux ressources. 
+ [Syntaxe du langage de politique JSON IAM](reference_policies_grammar.md) – Cette section présente une syntaxe formelle du langage de stratégie utilisé pour créer des politiques dans IAM.
+ [AWS politiques gérées pour les fonctions professionnelles](access_policies_job-functions.md) – Cette section répertorie toutes les politiques gérées par AWS qui correspondent directement à des fonctions professionnelles courantes du secteur de l'informatique. Utilisez ces politiques pour accorder les autorisations nécessaires à l'exécution des tâches prévues pour quelqu'un occupant une fonction professionnelle spécifique. Ces politiques consolident les autorisations pour de nombreux services en une politique unique.
+ [AWS clés contextuelles de condition globale](reference_policies_condition-keys.md)— Cette section inclut une liste de toutes les clés de condition AWS globales que vous pouvez utiliser pour limiter les autorisations dans une politique IAM.
+ [Clés de contexte IAM et de AWS STS condition](reference_policies_iam-condition-keys.md)— Cette section inclut une liste de toutes les clés IAM et de AWS STS condition que vous pouvez utiliser pour limiter les autorisations dans une politique IAM.
+ [Actions, ressources et clés de condition pour les AWS services](reference_policies_actions-resources-contextkeys.html) : cette section présente une liste de toutes les opérations d' AWS API que vous pouvez utiliser comme autorisations dans une politique IAM. Elle inclut également les clés de condition spécifiques au service qui peuvent être utilisées pour affiner davantage la demande.

# Référence de l’élément de politique JSON IAM
<a name="reference_policies_elements"></a>

Les documents de politique JSON se composent d'éléments. Les éléments sont répertoriés dans l'ordre général d'utilisation dans une politique. L'ordre des éléments n'a pas d'importance. Par exemple, l'élément `Resource` peut venir avant l'élément `Action`. Il n'est pas nécessaire de spécifier d'éléments `Condition` dans une politique. Pour en savoir plus sur la structure générale et la fonction d'un document de politique JSON, consultez [Présentation des politiques JSON](access_policies.md#access_policies-json).

Certains éléments de politique JSON s'excluent mutuellement. Cela signifie que vous ne pouvez pas créer une politique qui les utilise ensemble. Par exemple, vous ne pouvez pas utiliser `Action` et `NotAction` dans la même instruction de politique. Les autres paires qui s'excluent mutuellement sont notamment `Principal`/`NotPrincipal` et `Resource`/`NotResource`. 

Les détails inclus dans une politique varient pour chaque service, selon les actions autorisées par le service, les types de ressources qu'il contient, etc. Lorsque vous créez des politiques pour un service spécifique, il peut être utile de consulter des exemples de stratégie pour ce service. Pour consulter la liste de tous les services prenant en charge IAM et pour obtenir des liens vers la documentation de ces services relative à IAM et aux politiques, consultez [AWS services qui fonctionnent avec IAM](reference_aws-services-that-work-with-iam.md).

 Lorsque vous créez ou modifiez une politique JSON, IAM peut effectuer une validation de politique pour vous aider à créer une politique efficace. IAM identifie les erreurs de syntaxe JSON, tandis que IAM Access Analyzer fournit des vérifications de politique supplémentaires avec des recommandations pour vous aider à affiner vos politiques. Pour en savoir plus sur la validation de politiques, veuillez consulter [Validation de politique IAM](access_policies_policy-validator.md). Pour en savoir plus sur les vérifications des politiques IAM Access Analyzer et les recommandations exploitables, veuillez consulter [Validation de politique IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

**Topics**
+ [Version](reference_policies_elements_version.md)
+ [Id](reference_policies_elements_id.md)
+ [Statement](reference_policies_elements_statement.md)
+ [Sid](reference_policies_elements_sid.md)
+ [Effect](reference_policies_elements_effect.md)
+ [Principal](reference_policies_elements_principal.md)
+ [NotPrincipal](reference_policies_elements_notprincipal.md)
+ [Action](reference_policies_elements_action.md)
+ [NotAction](reference_policies_elements_notaction.md)
+ [Resource](reference_policies_elements_resource.md)
+ [NotResource](reference_policies_elements_notresource.md)
+ [Condition](reference_policies_elements_condition.md)
+ [Variables et balises](reference_policies_variables.md)
+ [Types de données pris en charge](reference_policies_elements_datatypes.md)

# Éléments de politique JSON IAM : Version
<a name="reference_policies_elements_version"></a>

**Remarque pour lever l'ambiguïté**  
Cet élément de politique JSON `Version` ne représente pas la même chose qu'une *version de politique*. L'élément de politique `Version` est utilisé dans une politique pour définir la version de la langue de la politique. En revanche, une version de politique est créée lorsque vous apportez des modifications à une politique gérée par le client dans IAM. La politique modifiée ne remplace pas la politique existante. À la place, IAM crée une nouvelle version de la politique gérée. Si vous recherchez des informations sur les différentes versions prises en charge qui sont disponibles pour les politiques gérées, consultez [Gestion des versions des politiques IAM](access_policies_managed-versioning.md).

L'élément de politique `Version` spécifie les règles de syntaxe de langage qui doivent être utilisées pour traiter une politique. Pour utiliser toutes les fonctions de politique disponibles, incluez l'élément `Version` suivant **à l'extérieur de** l'élément `Statement` dans toutes vos politiques.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

IAM prend en charge les valeurs d'élément `Version` suivantes :
+ `2012-10-17`. Il s'agit de la version actuelle du langage de politique ; vous devez toujours inclure un élément `Version` et définir sa valeur sur `2012-10-17`. Sinon, vous ne pouvez pas utiliser des fonctions telles que les [variables de politique](reference_policies_variables.md) qui ont été introduites avec cette version.
+ `2008-10-17`. Ceci est une version antérieure du langage de politique. Elle peut figurer dans des politiques existantes antérieures. N'utilisez pas cette version pour les nouvelles politiques ou lors de la mise à jour de politiques existantes. Les nouvelles fonctions, telles que les variables de politique, ne fonctionneront pas avec votre politique. Par exemple, les variables telles que `${aws:username}` ne sont pas reconnues et sont traitées comme des chaînes littérales dans la politique.

# Éléments de politique JSON IAM : Id
<a name="reference_policies_elements_id"></a>

L'élément `Id` spécifie un identifiant facultatif pour la politique. L'ID est utilisé de différentes façons, selon les services. L'ID est autorisé dans les politiques basées sur les ressources, mais pas dans celles basées sur une identité.

Dans le cas de services vous permettant de définir un élément `ID`, il est recommandé d'utiliser un UUID (GUID) comme valeur, ou d'incorporer un UUID dans l'ID pour en garantir l'unicité. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

**Note**  
Certains AWS services (par exemple, Amazon SQS ou Amazon SNS) peuvent nécessiter cet élément et avoir des exigences d'unicité pour celui-ci. Pour obtenir des informations spécifiques à chaque service sur la création de politiques, reportez-vous à la documentation du service que vous utilisez.

# Éléments de politique JSON IAM : Statement
<a name="reference_policies_elements_statement"></a>

L'élément `Statement` constitue l'élément principal d'une politique. Cet élément est obligatoire. L'élément `Statement` peut contenir une seule instruction ou un tableau d'instructions. Chaque bloc d'instruction doit être placé entre accolades \$1 \$1. Pour plusieurs instructions, le tableau doit être placé entre crochets [ ].

```
"Statement": [{...},{...},{...}]
```

L'exemple suivant illustre une politique qui contient un tableau de trois instructions dans un même élément `Statement`. (La politique vous permet d'accéder à votre propre « dossier principal » dans la console Amazon S3.) La politique inclut la variable `aws:username`, qui est remplacée par le nom utilisateur provenant de la demande lors de l'évaluation de la politique. Pour de plus amples informations, veuillez consulter [Introduction](reference_policies_variables.md#policy-vars-intro). 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {"StringLike": {"s3:prefix": [
        "",
        "home/",
        "home/${aws:username}/"
      ]}}
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```

------

# Éléments de politique JSON IAM : Sid
<a name="reference_policies_elements_sid"></a>

Vous pouvez fournir un `Sid` (ID d’instruction) en tant qu’identifiant facultatif pour l’instruction de politique. Vous pouvez affecter une valeur `Sid` à chaque instruction d'un tableau de instructions. Vous pouvez utiliser la valeur `Sid` comme description de l'instruction de politique. Dans un service qui vous permet de spécifier un élément `ID` tel que SQS et SNS, la valeur `Sid` est un simple sous-identifiant de l'ID du document de politique. Dans IAM, la valeur `Sid` doit être unique dans une politique JSON.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExampleStatementID",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

L'élément `Sid` prend en charge les majuscules ASCII (A à Z), les minuscules (a à z) et les chiffres (0 à 9). 

IAM n'expose pas le `Sid` dans l'API IAM. Il n'est pas possible d'extraire une instruction spécifique en vous basant sur cet ID.

**Note**  
Certains AWS services (par exemple, Amazon SQS ou Amazon SNS) peuvent nécessiter cet élément et avoir des exigences d'unicité pour celui-ci. Pour obtenir des informations spécifiques à chaque service sur la création de politiques, reportez-vous à la documentation du service que vous utilisez.

# Éléments de politique JSON IAM : Effect
<a name="reference_policies_elements_effect"></a>

L'élément `Effect` est requis ; il spécifie si l'instruction génère une autorisation ou un refus explicite. Les valeurs valides pour `Effect` sont `Allow` et `Deny`. La valeur `Effect` est sensible à la casse. 

```
"Effect":"Allow"
```

Par défaut, l'accès aux ressources est refusé. Pour autoriser l'accès à une ressource, vous devez définir l'élément `Effect` sur `Allow`. Pour remplacer une autorisation (par exemple, pour remplacer une autorisation qui autrement est en vigueur), vous définissez l'élément `Effect` sur `Deny`. Pour de plus amples informations, veuillez consulter [Logique d'évaluation de politiques](reference_policies_evaluation-logic.md).

# AWS Éléments de politique JSON : Principal
<a name="reference_policies_elements_principal"></a>

Utilisez l'élément `Principal` dans une politique JSON basée sur les ressources pour spécifier le principal qui est autorisé ou non à accéder à une ressource. 

Vous devez utiliser l'élément `Principal` dans les [politiques basées sur les ressources](access_policies_identity-vs-resource.md). Plusieurs services prennent en charge les politiques basées sur les ressources, y compris IAM. Le type de politique basée sur les ressources IAM est une politique d'approbation de rôle. Dans les rôles IAM, utilisez l'élément `Principal` dans la politique d'approbation du rôle pour spécifier qui peut endosser le rôle. Lorsqu'il s'agit d'un accès entre comptes, vous devez spécifier l'identifiant à 12 chiffres du compte approuvé. Pour savoir si les principaux des comptes situés en dehors de votre zone de confiance (organisation ou compte de confiance) ont accès à vos rôles, consultez [Qu'est-ce que l'Analyseur d'accès IAM ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

**Note**  
Après avoir créé le rôle, vous pouvez remplacer le compte par « \$1 » pour autoriser tout le monde à endosser le rôle. Dans ce cas, nous vous recommandons vivement de limiter les personnes autorisées à accéder au rôle d'une autre manière, par exemple avec un élément `Condition` qui limite l'accès à certaines adresses IP. Votre rôle ne doit pas être accessible à n'importe qui \$1

D'autres exemples de ressources prenant en charge les politiques basées sur les ressources incluent un compartiment Amazon S3 ou une interface AWS KMS key.

Vous ne pouvez pas utiliser l'élément `Principal` dans une politique basée sur l'identité. Les politiques basées sur l'identité sont des politiques d'autorisations que vous attachez aux identités IAM (utilisateur, groupes ou rôles) . Dans ces cas, le principal est implicitement l'identité à laquelle est attachée la politique.

**Topics**
+ [Comment spécifier un principal](#Principal_specifying)
+ [Compte AWS principes](#principal-accounts)
+ [Principaux de rôles IAM](#principal-roles)
+ [Principaux de séance de rôle](#principal-role-session)
+ [Principaux fédérés OIDC](#principal-federated-web-identity)
+ [Principaux fédérés SAML](#principal-saml)
+ [Principaux de l'utilisateur IAM](#principal-users)
+ [Principaux d'IAM Identity Center](#principal-identity-users)
+ [AWS STS principes d'utilisateurs fédérés](#sts-session-principals)
+ [AWS principes de service](#principal-services)
+ [AWS principes de service dans les régions adhérentes](#principal-services-in-opt-in-regions)
+ [Tous les principaux](#principal-anonymous)
+ [En savoir plus](#Principal_more-info)

## Comment spécifier un principal
<a name="Principal_specifying"></a>

Vous spécifiez un principal dans l'élément `Principal` d'une politique basée sur les ressources ou des clés de condition prenant en charge les principaux.

Vous pouvez spécifier l'un des principaux suivants dans une politique :
+ Compte AWS et utilisateur root
+ Rôles IAM
+ Séances de rôle 
+ Utilisateurs IAM
+ principaux d’utilisateur fédéré
+ AWS services
+ Tous les principaux

Vous ne pouvez pas identifier un groupe d'utilisateurs en tant que principal dans une politique (telle qu'une politique basée sur les ressources), car les groupes concernent les autorisations, et non l'authentification, et les principaux sont des entités IAM authentifiées.

Vous pouvez spécifier plus d'un principal pour chacun des types de principaux dans les sections suivantes, à l'aide d'un tableau. Les tableaux peuvent inclure une ou plusieurs valeurs. Lorsque vous spécifiez plus d'un principal dans un élément, vous accordez des autorisations à chaque principal. Ceci est un `OR` logique et non un `AND` logique, car vous êtes authentifié comme un unique principal à la fois. Si vous incluez plus d'une valeur, utilisez des crochets (`[` et `]`) et délimitez chaque entrée du tableau par une virgule. L'exemple de politique suivant définit les autorisations pour le compte 123456789012 ou le compte 555555555555.

```
"Principal" : { 
"AWS": [ 
  "123456789012",
  "555555555555" 
  ]
}
```

**Note**  
Vous ne pouvez pas utiliser un caractère générique pour faire correspondre une partie d'un nom de principal ou d'un ARN. 

## Compte AWS principes
<a name="principal-accounts"></a>

Vous pouvez spécifier Compte AWS des identifiants dans l'`Principal`élément d'une politique basée sur les ressources ou dans des clés de condition qui prennent en charge les principaux. Cela délègue l'autorité sur le compte. Lorsque vous autorisez l'accès à un autre compte, un administrateur de ce compte doit alors accorder l'accès à une identité (utilisateur ou rôle IAM) de ce compte. Lorsque vous spécifiez un Compte AWS, vous pouvez utiliser l'ARN du compte (arn:aws:iam : ::root*account-ID*) ou une forme abrégée composée du préfixe suivi de l'identifiant du compte. `"AWS":`

Par exemple, soit un ID de compte `123456789012`, vous pouvez utiliser l'une des méthodes suivantes pour spécifier ce compte dans l'élément `Principal` :

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

```
"Principal": { "AWS": "123456789012" }
```

L'ARN du compte et l'ID de compte abrégé se comportent de la même manière. Les deux délèguent des autorisations au compte. L'utilisation de l'ARN du compte dans l'élément `Principal` ne limite pas les autorisations au seul utilisateur racine du compte. 

**Note**  
Lorsque vous enregistrez une politique basée sur les ressources qui inclut l'ID du compte abrégé, le service peut le convertir en ARN principal. Cela ne modifie pas la fonctionnalité de la politique.

Certains AWS services proposent des options supplémentaires pour spécifier un principal de compte. Par exemple, Amazon S3 vous permet de spécifier un [ID d'utilisateur canonique](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) à l'aide du format suivant :

```
"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }
```

Vous pouvez également en spécifier plusieurs Compte AWS(ou ID utilisateur canonique) en tant que principal à l'aide d'un tableau. Par exemple, vous pouvez spécifier un principal dans une politique de compartiment à l'aide des trois méthodes.

```
"Principal": { 
  "AWS": [
    "arn:aws:iam::123456789012:root",
    "999999999999"
  ],
  "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
}
```

## Principaux de rôles IAM
<a name="principal-roles"></a>

Vous pouvez spécifier le rôle principal IAM ARNs dans l'`Principal`élément d'une politique basée sur les ressources ou dans des clés de condition qui prennent en charge les principaux. Les rôles IAM sont des identités. Dans IAM, les identités sont des ressources auxquelles vous pouvez attribuer des autorisations. Les rôles font confiance à une autre identité authentifiée pour endosser ce rôle. Il s'agit notamment d'un principal dans l’interface AWS ou d'un utilisateur provenant d'un fournisseur d'identité externe (IdP). Lorsqu'un principal ou une identité endosse un rôle, ils reçoivent des informations d'identification de sécurité temporaires avec les autorisations du rôle endossé. Lorsqu'ils utilisent ces informations d'identification de session pour effectuer des opérations AWS, ils jouent *le rôle principal de session*.

Lorsque vous spécifiez un principal de rôle dans une politique basée sur les ressources, les autorisations effectives du principal sont limitées par tous les types de politique limitant les autorisations pour le rôle. Cela inclut les politiques de séance et les limites d'autorisations. Pour plus d’informations sur l'évaluation des autorisations effectives pour une séance de rôle, veuillez consulter [Logique d'évaluation de politiques](reference_policies_evaluation-logic.md).

Pour spécifier l'ARN du rôle dans l'élément `Principal`, utilisez le format suivant :

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
```

**Important**  
Si votre élément `Principal` dans une politique d’approbation de rôle contient un ARN qui pointe vers un rôle IAM spécifique, alors cet ARN se transforme en l’ID principal unique du rôle lorsque vous enregistrez la politique. Cela permet de réduire le risque d'escalade des privilèges par la suppression et la nouvelle création du rôle. Normalement, vous ne voyez pas cet ID dans la console, car IAM utilise une transformation inverse pour revenir au rôle ARN lorsque la politique d'approbation est affichée. Cependant, si vous supprimez le rôle, vous interrompez la relation. La politique ne s'applique plus, même si vous recréez le rôle, étant donné que le nouvel ID du principal du nouveau rôle ne correspond pas à l'ID stocké dans la politique d'approbation. Dans ce cas, l'ID principal apparaît dans les politiques basées sur les ressources, car il n'est plus AWS possible de le mapper à un ARN valide. Le résultat final est que si vous supprimez et recréez un rôle référencé dans l'élément `Principal` d'une politique d'approbation, vous devez modifier le rôle afin de remplacer l'ID du principal, qui est désormais incorrect, par l'ARN correct. L'ARN se transforme à nouveau en nouvel ID principal du rôle lorsque vous enregistrez la politique. Pour plus d'informations, consultez la section [Comprendre AWS la gestion des rôles IAM supprimés dans Politiques](https://repost.aws/articles/ARSqFcxvd7R9u-gcFD9nmA5g/understanding-aws-s-handling-of-deleted-iam-roles-in-policies).

Vous pouvez également spécifier le principal du rôle comme principal dans une politique basée sur les ressources ou [créer une politique d'autorisation étendue](#principal-anonymous) qui utilise la clé de condition `aws:PrincipalArn`. Lorsque vous utilisez cette clé, le principal de séance de rôle reçoit les autorisations en fonction de l'ARN du rôle qui a été endossé, et non de l'ARN de la séance résultante. Comme la clé ARNs de condition AWS n'est pas convertie en IDs, les autorisations accordées à l'ARN du rôle sont conservées si vous supprimez le rôle puis créez un nouveau rôle portant le même nom. Les types de politiques basées sur l'identité, tels que les limites de permissions ou les politiques de session, ne limitent pas les autorisations accordées à l'aide de la clé de condition `aws:PrincipalArn` avec un caractère générique(\$1) dans l'élément `Principal`, à moins que les politiques basées sur l'identité ne contiennent un rejet explicite.

## Principaux de séance de rôle
<a name="principal-role-session"></a>

Vous pouvez spécifier des séances de rôle dans l'élément `Principal`d'une politique basée sur les ressources ou des clés de condition prenant en charge les principaux. Lorsqu'un principal ou une identité endosse un rôle, ils reçoivent des informations d'identification de sécurité temporaires avec les autorisations du rôle endossé. Lorsqu'ils utilisent ces informations d'identification de session pour effectuer des opérations AWS, ils jouent *le rôle principal de session*.

Le format que vous utilisez pour un rôle principal de session dépend de l' AWS STS opération utilisée pour assumer le rôle.

**Important**  
AWS recommande d'utiliser des [principes de rôle IAM dans vos politiques plutôt que des](#principal-roles) principes de session de rôle dans la mesure du possible. Utilisez `Condition` des instructions et des clés de condition pour limiter davantage l'accès lorsque cela est nécessaire.

Pour spécifier l'ARN principal de la session de rôle dans l'`Principal`élément, utilisez le format suivant :

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }
```

En outre, les administrateurs peuvent concevoir un processus pour contrôler la façon dont les séances de rôle sont émises. Par exemple, ils peuvent fournir une solution en un clic à leurs utilisateurs qui crée un nom de séance prévisible. Si votre administrateur procède ainsi, vous pouvez utiliser des principaux de séance de rôle dans vos politiques ou clés de condition. Sinon, vous pouvez spécifier l'ARN du rôle comme principal dans la `aws:PrincipalArn` clé de condition. La façon dont vous spécifiez le rôle comme principal peut modifier les autorisations effectives pour la séance résultante. Pour de plus amples informations, veuillez consulter [Principaux de rôles IAM](#principal-roles). 

## Principaux fédérés OIDC
<a name="principal-federated-web-identity"></a>

Un principal fédéré OIDC est le principal utilisé lors de l'appel d'une AWS STS `AssumeRoleWithWebIdentity` API avec un jeton Web JSON (JWT) à partir d'un IDP conforme à l'OIDC, également connu sous le nom de fournisseur OpenID (OP), pour demander des informations d'identification temporaires. AWS [Un principal fédéré OIDC peut représenter un IDP OIDC dans votre AWS compte, ou les 4 fournisseurs d'identité intégrés :Login with Amazon,Google, et Facebook Amazon Cognito.](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html)

Les utilisateurs, les charges de travail ou les systèmes auxquels un JWT a été attribué par leur IDP OIDC peuvent appeler `AssumeRoleWithWebIdentity` en utilisant le JWT pour demander des informations d'identification de AWS sécurité temporaires pour un rôle IAM configuré pour faire confiance à l'IDP OIDC qui a émis le JWT. Le JWT peut être un jeton d’identification, un jeton d’accès ou un jeton JWT délivré par toute autre méthode, à condition qu’il réponde aux [exigences énumérées par AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html#manage-oidc-provider-prerequisites). Pour plus d’informations, consultez les [Scénarios courants](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_federation_common_scenarios.html) et [Demande d’informations d’identification par le biais d’un fournisseur OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).

Utilisez ce type principal dans votre politique de confiance en matière de rôles pour autoriser ou refuser les autorisations d'appel `AssumeRoleWIthWebIdentity` en utilisant un IDP OIDC existant dans votre Compte AWS ou l'un des quatre intégrés. IDPs Pour spécifier l'ARN principal fédéré OIDC dans l'`Principal`élément d'une politique de confiance des rôles, utilisez l'un des quatre formats suivants pour l'OIDC intégré : IDPs

```
"Principal": { "Federated": "cognito-identity.amazonaws.com" }
```

```
"Principal": { "Federated": "www.amazon.com" }
```

```
"Principal": { "Federated": "graph.facebook.com" }
```

```
"Principal": { "Federated": "accounts.google.com" }
```

Lorsque vous utilisez un fournisseur OIDC, vous l'ajoutez à votre compte, par exemple GitHub, vous spécifiez l'ARN du fournisseur dans la politique de confiance de votre rôle. Cette configuration vous permet de rédiger des politiques IAM qui contrôlent spécifiquement l’accès des utilisateurs authentifiés via votre fournisseur d’identité personnalisé.

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/full-OIDC-identity-provider-URL" }
```

Par exemple, si GitHub était le fournisseur d’identité Web de confiance, l’ARN de session de rôle OIDC dans l’élément `Principal` d’une politique de confiance de rôle utilise le format suivant :

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/tokens.actions.githubusercontent.com" }
```

Pour plus d’informations, consultez [Configuration d’OpenID Connect dans Amazon Web Services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services).

Les principaux fédérés OIDC ne sont pas pris en charge dans les types de politiques autres que les politiques de confiance des rôles.

## Principaux fédérés SAML
<a name="principal-saml"></a>

Un principal *fédéré SAML est un principal* utilisé lors de l'appel d'une AWS STS `AssumeRoleWithSAML` API pour demander des informations d' AWS identification temporaires à l'aide d'une assertion SAML. Vous pouvez utiliser votre fournisseur d’identité (IdP) SAML externe (IdP) pour vous connecter, puis endosser un rôle IAM à l’aide de cette opération. Similaire à`AssumeRoleWithWebIdentity`, `AssumeRoleWithSAML` ne nécessite pas AWS d'informations d'identification pour l'authentification. Au lieu de cela, les utilisateurs s'authentifient d'abord auprès de leur fournisseur d'identité SAML, puis effectuent l'appel d'`AssumeRoleWithSAML`API à l'aide de leur assertion SAML, ou sont redirigés vers la page AWS Sign-in/SAML pour se connecter au. AWS Management Console Pour de plus amples informations sur les principaux pouvant endosser un rôle à l'aide de cette opération, veuillez consulter [Comparez les AWS STS informations d'identification](id_credentials_sts-comparison.md).

Utilisez ce type de principal dans votre politique de confiance des rôles pour autoriser ou rejeter des autorisations en fonction du fournisseur d’identité SAML approuvé. Pour spécifier l'ARN de séance du rôle d'identité SAML dans l'élément `Principal` d'une politique d'approbation de rôle, utilisez le format suivant :

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }
```

## Principaux de l'utilisateur IAM
<a name="principal-users"></a>

Vous pouvez spécifier des utilisateurs IAM dans l'élément `Principal` d'une politique basée sur les ressources ou dans les clés de condition qui prennent en charge les principes.

**Note**  
Dans un élément `Principal`, le nom utilisateur faisant partie d'[*Amazon Resource Name* (ARN)](reference_identifiers.md#identifiers-arns) est sensible à la casse.

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
```

```
"Principal": {
  "AWS": [
    "arn:aws:iam::AWS-account-ID:user/user-name-1", 
    "arn:aws:iam::AWS-account-ID:user/user-name-2"
  ]
}
```

Lors de la spécification d'utilisateurs dans un élément `Principal`, il n'est pas possible d'utiliser un caractère générique (`*`) signifiant « tous les utilisateurs ». Les principaux doivent toujours nommer des utilisateurs spécifiques. 

**Important**  
Si votre élément `Principal` dans une politique d'approbation de rôle comporte un ARN qui pointe vers un utilisateur IAM spécifique, IAM transforme l'ARN en ID du principal unique de l'utilisateur lorsque vous enregistrez la politique. Cela permet de réduire le risque d'escalade des privilèges par la suppression et la nouvelle création de l'utilisateur. Cet ID n'est pas fréquent dans la console, car il existe également une transformation inverse, pour revenir à l'ARN de l'utilisateur, lorsque la politique d'approbation est affichée. Cependant, si vous supprimez l'utilisateur, vous interrompez la relation La politique ne s'applique plus, même si vous recréez l'utilisateur. Cela est dû au fait que le nouvel ID du principal du nouvel utilisateur ne correspond pas à l'ID stocké dans la politique d'approbation. Dans ce cas, l'ID principal apparaît dans les politiques basées sur les ressources, car il n'est plus AWS possible de le mapper à un ARN valide. Par conséquent, si vous supprimez et recréez un utilisateur référencé dans l'élément `Principal` d'une politique d'approbation, vous devez modifier le rôle afin de remplacer l'ID du principal qui est désormais incorrect par l'ARN correct. IAM transforme à nouveau l'ARN en le nouvel ID du principal de l'utilisateur lorsque vous enregistrez la politique.

## Principaux d'IAM Identity Center
<a name="principal-identity-users"></a>

Dans IAM Identity Center, le principal d'une politique basée sur les ressources doit être défini comme étant le principal Compte AWS . Pour spécifier l'accès, faites référence à l'ARN du rôle du jeu d'autorisations dans le bloc de conditions. Pour en savoir, consultez [Référencement des jeux d'autorisations dans les politiques de ressources, Amazon EKS et AWS KMS](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html) (français non garanti) dans le *Guide de l'utilisateur IAM Identity Center*.

## AWS STS principes d'utilisateurs fédérés
<a name="sts-session-principals"></a>

Vous pouvez spécifier des *séances d'utilisateur fédéré* dans l'élément `Principal` d'une politique basée sur les ressources ou dans les clés de condition qui prennent en charge les principaux.

**Important**  
AWS recommande de limiter l'utilisation des sessions utilisateur AWS STS fédérées. À la place, utilisez des [rôles IAM](IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

Un utilisateur principal AWS STS fédéré est créé par le biais de l'`GetFederationToken`opération appelée avec des informations d'identification IAM de longue durée. Les autorisations utilisateur fédérées correspondent à l’intersection entre le principal qui a appelé `GetFederationToken` et les politiques de session transmises en tant que paramètres à l’API `GetFederationToken`.

Dans AWS, les utilisateurs IAM ou an Utilisateur racine d'un compte AWS peuvent s'authentifier à l'aide de clés d'accès à long terme. Pour plus d'informations sur les principaux qui peuvent se fédérer à l'aide de cette opération, veuillez consulter [Comparez les AWS STS informations d'identification](id_credentials_sts-comparison.md).
+ **Utilisateur fédéré IAM** : un utilisateur IAM se fédère à l’aide de l’opération `GetFederationToken` qui donne lieu à une session d’utilisateur fédéré pour cet utilisateur IAM.
+ **Utilisateur racine fédéré** : un utilisateur racine se fédère à l’aide de l’opération `GetFederationToken` qui donne lieu à une session d’utilisateur fédéré pour cet utilisateur racine.

Lorsqu'un utilisateur IAM ou un utilisateur root demande des informations d'identification temporaires pour AWS STS utiliser cette opération, il ouvre une session utilisateur fédérée temporaire. L'ARN de cette séance est basé sur l'identité originale qui a été fédérée.

Pour spécifier l'ARN de la séance d'utilisateur fédéré dans l'élément `Principal`, utilisez le format suivant :

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:federated-user/user-name" }
```

## AWS principes de service
<a name="principal-services"></a>

Vous pouvez spécifier AWS des services dans l'`Principal`élément d'une politique basée sur les ressources ou dans des clés de condition qui prennent en charge les principaux. Un *principal de service* est un identifiant pour un service. 

Les rôles IAM qui peuvent être assumés par un AWS service sont appelés *[rôles de service](id_roles.md#iam-term-service-role)*. Les rôles de service doivent inclure une politique d'approbation. Les *politiques d'approbation* sont des politiques basées sur les ressources attachées à un rôle qui définit les principaux qui peuvent endosser le rôle. Certains rôles de service disposent de politiques d'approbation prédéfinies. Toutefois, dans certains cas, vous devez spécifier le principal du service dans la politique d'approbation. Le principal de service d’une politique IAM ne peut pas être `"Service": "*"`.

**Important**  
L'identifiant d'un principal de service inclut le nom du service et se présente généralement dans le format suivant :  
`service-name.amazonaws.com`

Le principal de service est défini par le service. Vous pouvez rechercher le principal de service pour certains services en ouvrant l’interface [AWS services qui fonctionnent avec IAM](reference_aws-services-that-work-with-iam.md), en vérifiant si le service indique **Oui** dans la colonne **Rôle lié à un service** et en ouvrant le lien **Oui** pour afficher la documentation du rôle lié à un service pour ce service. Recherchez la section **Autorisations de rôles liés à un service** correspondant à ce service pour afficher le principal du service.

L'exemple suivant illustre une politique qui est peut être attachée à un rôle de service. La politique permet à deux services, Amazon ECS et Elastic Load Balancing, d'endosser le rôle. Les services peuvent ensuite effectuer toutes les tâches autorisées par la politique d'autorisation affectée au rôle (non illustré). Pour définir plusieurs principaux de service, vous ne spécifiez pas deux éléments `Service` ; vous ne devez en avoir qu'un seul. À la place, vous utilisez un tableau de plusieurs principaux de service comme valeur d'un élément `Service` unique.

```
"Principal": {
    "Service": [
        "ecs.amazonaws.com",
        "elasticloadbalancing.amazonaws.com"
   ]
}
```

## AWS principes de service dans les régions adhérentes
<a name="principal-services-in-opt-in-regions"></a>

Vous pouvez lancer des ressources dans plusieurs AWS régions et vous devez vous inscrire dans certaines d'entre elles. Pour obtenir la liste complète des régions auxquelles vous devez adhérer, consultez [la section Gestion des AWS régions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) dans le *Références générales AWS*guide.

Lorsqu'un AWS service d'une région optionnelle fait une demande dans la même région, le format du nom principal du service est identifié comme étant la version non régionalisée de son nom principal de service :

`service-name.amazonaws.com`

Lorsqu'un AWS service d'une région optionnelle adresse une demande interrégionale à une autre région, le format du nom principal du service est identifié comme étant la version régionalisée de son nom principal de service :

`service-name.{region}.amazonaws.com`

Par exemple, vous avez une rubrique Amazon SNS dans la région `ap-southeast-1` et un compartiment Amazon S3 dans la région d'adhésion `ap-east-1`. Vous voulez configurer les notifications du compartiment S3 pour publier des messages dans la rubrique SNS. Pour permettre au service S3 de publier des messages dans la rubrique SNS, vous devez accorder au principal de service S3 une autorisation `sns:Publish` via la stratégie d'accès basée sur les ressources de la rubrique.

Si vous spécifiez la version non régionalisée du principal de service S3, `s3.amazonaws.com`, dans la stratégie d'accès à la rubrique, la demande `sns:Publish` du compartiment vers la rubrique échouera. L'exemple suivant indique le principal de service S3 non régionalisé dans l'élément de stratégie `Principal` de la stratégie d'accès à la rubrique SNS.

```
"Principal": { "Service": "s3.amazonaws.com" }
```

Étant donné que le compartiment se trouve dans une région d'adhésion et que la demande est faite en dehors de cette même région, le principal de service S3 apparaît comme le nom du principal de service régionalisé, `s3.ap-east-1.amazonaws.com`. Vous devez utiliser le nom principal du service régionalisé lorsqu'un AWS service d'une région optionnelle adresse une demande à une autre région. Une fois que vous avez spécifié le nom du principal de service régionalisé, si le compartiment adresse une demande `sns:Publish` à la rubrique SNS située dans une autre région, la demande sera réussie. L'exemple suivant indique le principal de service S3 régionalisé dans l'élément de stratégie `Principal` de la stratégie d'accès à la rubrique SNS.

```
"Principal": { "Service": "s3.ap-east-1.amazonaws.com" }
```

Les stratégies de ressources ou les listes d'autorisation basées sur le principal de service pour les demandes inter-région d'une région d'adhésion vers une autre région ne seront réussies que si vous spécifiez le nom du principal de service régionalisé.

**Note**  
Pour les stratégies d'approbation de rôle IAM, nous recommandons d'utiliser le nom du principal de service non régionalisé. Les ressources IAM sont globales et le même rôle peut donc être utilisé dans n'importe quelle région.

## Tous les principaux
<a name="principal-anonymous"></a>

Vous pouvez utiliser un caractère générique (\$1) pour spécifier tous les principaux dans l'élément `Principal` d'une politique basée sur les ressources ou dans les clés de condition prenant en charge les principaux. [Politiques basées sur les ressources](access_policies.md#policies_resource-based) *accorde* des autorisations et les [clés de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) sont utilisées pour limiter les conditions d'une déclaration de politique.

**Important**  
Nous vous recommandons fortement de ne pas utiliser de caractère générique (\$1) dans l'élément `Principal` d'une politique basée sur les ressources avec un effet `Allow`, sauf si vous avez l'intention d'accorder un accès public ou anonyme. Sinon, indiquez les principaux, les services ou les comptes AWS visés dans l'élément `Principal`, puis restreignez davantage l'accès dans l'élément `Condition`. Cela est particulièrement vrai pour les politiques de confiance des rôles IAM, car elles permettent à d'autres principaux de devenir un principal dans votre compte.

Pour les politiques basées sur les ressources, utiliser un caractère générique (\$1) avec un effect `Allow` accorde l'accès à tous les utilisateurs, y compris les utilisateurs anonymes (accès public). Pour les utilisateurs IAM et les principaux de rôle de votre compte, aucune autre autorisation n'est requise. Pour les principaux d'autres comptes, ils doivent également disposer d'autorisations basées sur l'identité dans leur compte qui les autorise à accéder à votre ressource. C'est ce que l'on appelle l'[accès entre comptes](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Pour les utilisateurs anonymes, les éléments suivants sont équivalents :

```
"Principal": "*"
```

```
"Principal" : { "AWS" : "*" }
```

Vous ne pouvez pas utiliser un caractère générique pour une correspondance à une partie d’un nom ou d’un ARN principal.

L'exemple suivant montre une politique basée sur les ressources qui peut être utilisée à la place de [AWS Éléments de politique JSON : NotPrincipal](reference_policies_elements_notprincipal.md) dans le but de refuser explicitement tous les principaux, *à l'exception de* ceux qui sont spécifiés dans l'élément `Condition`. Cette politique doit être [ajoutée à un compartiment Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/add-bucket-policy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UsePrincipalArnInsteadOfNotPrincipalWithDeny",
      "Effect": "Deny",
      "Action": "s3:*",
      "Principal": "*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:user/user-name"
        }
      }
    }
  ]
}
```

------

## En savoir plus
<a name="Principal_more-info"></a>

Pour plus d’informations, consultez les ressources suivantes :
+ [Exemples de politique de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) dans le *Guide de l'utilisateur service de stockage simple Amazon*
+ [Exemples de politiques pour Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#ExamplePolicies_SNS) dans le *Guide du développeur Amazon Simple Notification Service*
+ [Exemples de politique Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) dans le *Guide du développeur Amazon Simple Queue Service*
+ [Politiques de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dans le *Guide du développeur AWS Key Management Service *
+ [Identifiants de compte](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) (français non garanti) dans *Références générales AWS*
+ [Fédération OIDC](id_roles_providers_oidc.md)

# AWS Éléments de politique JSON : NotPrincipal
<a name="reference_policies_elements_notprincipal"></a>

L’élément `NotPrincipal` utilise `"Effect":"Deny"` pour refuser l’accès à tous les principaux, ***sauf*** le principal spécifié dans l’élément `NotPrincipal`. Un principal peut être un utilisateur IAM, un utilisateur principal AWS STS fédéré, un rôle IAM, une session de rôle assumé Compte AWS, un AWS service ou un autre type principal. Pour plus d’informations sur les principaux, consultez [AWS Éléments de politique JSON : Principal](reference_policies_elements_principal.md).

L'élément `NotPrincipal` doit être utilisé avec `"Effect":"Deny"`. Son utilisation avec `"Effect":"Allow"` n'est pas prise en charge. 

**Important**  
Nous ne recommandons pas l’utilisation de `NotPrincipal`pour les nouvelles politiques basées sur les ressources dans le cadre de votre politique de sécurité et d’autorisation. Lorsque vous utilisez l'élément `NotPrincipal`, il peut être difficile de résoudre les problèmes liés à plusieurs types de politique. Nous recommandons plutôt l'utilisation de la clé de contexte `aws:PrincipalArn` avec les opérateurs de condition ARN.

## Points clés
<a name="notprincipal-key-points"></a>
+ L’élément `NotPrincipal` est pris en charge dans des politiques basées sur les ressources pour certains services AWS , y compris les points de terminaison d’un VPC. Les politiques basées sur les ressources sont des politiques que vous intégrez directement à une ressource. Vous ne pouvez pas utiliser l'élément `NotPrincipal` dans une politique IAM basée sur l'identité ni dans une politique d'approbation du rôle IAM.
+ N'utilisez pas de déclarations de politique basée sur les ressources qui incluent un élément de politique `NotPrincipal` ayant un effet `Deny` sur les utilisateurs IAM ou les rôles auxquels est attachée une politique de limite des autorisations. L'élément `NotPrincipal` ayant un effet `Deny` refusera toujours tout principal IAM auquel est attachée une politique de limite des autorisations, quelles que soient les valeurs spécifiées dans l'élément `NotPrincipal`. Certains utilisateurs ou rôles IAM qui auraient autrement eu accès à la ressource n'y ont donc plus accès. Nous vous recommandons de modifier vos déclarations de politique basée sur les ressources afin d'utiliser l'opérateur de condition [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) avec la clé de contexte [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) dans le but de limiter l'accès plutôt que l'élément `NotPrincipal`. Pour plus d'informations sur les limites des autorisations, veuillez consulter [Limites d'autorisations pour les entités IAM](access_policies_boundaries.md).
+ Lorsque vous utilisez `NotPrincipal`, vous devez également spécifier l’ARN du compte du principal non refusé. Dans le cas contraire, la politique peut refuser l'accès à l'ensemble du compte contenant le principal. En fonction du service que vous incluez dans votre politique, AWS peut valider d'abord le compte, puis l'utilisateur. Si un utilisateur assumant un rôle (une personne utilisant un rôle) est en cours d'évaluation, AWS vous pouvez d'abord valider le compte, puis le rôle, puis l'utilisateur assumé. Ce dernier est identifié par le nom de session de rôle qui est spécifié lorsqu'il endosse le rôle. Par conséquent, nous vous recommandons vivement d'inclure explicitement l'ARN du compte d'un utilisateur, ou inclure à la fois l'ARN d'un rôle et l'ARN du compte contenant le rôle.
+ L’élément `NotPrincipal` n’est pas pris en charge dans les politiques de contrôle des services (SCP) et les politiques de contrôle des ressources (RCP).

## Alternatives à l’élément `NotPrincipal`
<a name="notprincipal-alternatives"></a>

Lorsque vous gérez le contrôle d'accès dans AWS, il peut arriver que vous deviez refuser explicitement à tous les principaux l'accès à une ressource, à l'exception d'un ou de plusieurs principaux que vous spécifiez. AWS recommande d'utiliser une instruction Deny avec des clés contextuelles de condition globales pour un contrôle plus précis et un dépannage simplifié. Les exemples suivants montrent d’autres approches utilisant des opérateurs de condition tels que `StringNotEquals` ou `ArnNotEquals` pour refuser l’accès à tous les principaux, à l’exception de ceux spécifiés dans l’élément Condition.

## Exemple de scénario utilisant un rôle IAM
<a name="notprincipal-alternative-role"></a>

Vous pouvez utiliser une politique basée sur les ressources avec une instruction Refuser pour empêcher tous les rôles IAM, à l’exception de ceux spécifiés dans l’élément Condition, d’accéder à vos ressources ou de les manipuler. Cette approche suit le principe AWS de sécurité selon lequel un refus explicite a toujours priorité sur toute instruction d'autorisation et contribue à maintenir le principe du moindre privilège dans l'ensemble de votre AWS infrastructure.

Au lieu d’utiliser `NotPrincipal`, nous vous recommandons d’utiliser une instruction Refuser avec des clés de contexte de condition globales et l’opérateur de condition comme [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) pour autoriser explicitement un rôle IAM à accéder à vos ressources. L’exemple suivant utilise [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) pour autoriser explicitement le rôle `read-only-role` à accéder aux compartiments Amazon S3 dans le dossier `Bucket_Account_Audit`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCrossAuditAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::Bucket_Account_Audit",
        "arn:aws:s3:::Bucket_Account_Audit/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:role/read-only-role"
        }
      }
    }
  ]
}
```

------

## Exemple de scénario utilisant un principal de service
<a name="notprincipal-alternative-service-principal"></a>

Vous pouvez utiliser une instruction Refuser pour empêcher tous les principaux de service, à l’exception de ceux spécifiés dans l’élément `Condition`, d’accéder à vos ressources ou de les manipuler. Cette approche est particulièrement utile lorsque vous devez mettre en œuvre des contrôles d’accès précis ou établir des limites de sécurité entre différents services et applications dans votre environnement AWS .

Au lieu d’utiliser `NotPrincipal`, nous vous recommandons d’utiliser une instruction Refuser avec des clés de contexte de condition globales et l’opérateur de condition [`StringNotEquals`](reference_policies_elements_condition_operators.md#Conditions_String) pour autoriser explicitement un principal de service à accéder à vos ressources. L’exemple suivant utilise `aws:PrincipalServiceName` pour autoriser explicitement le principal de service AWS CodeBuild à accéder aux compartiments Amazon S3 dans le dossier `BUCKETNAME`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyNotCodeBuildAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::BUCKETNAME",
        "arn:aws:s3:::BUCKETNAME/*"
      ],
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalServiceName": "codebuild.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Éléments de politique JSON IAM : Action
<a name="reference_policies_elements_action"></a>

L'élément `Action` décrit les actions spécifiques qui seront accordées ou refusées. Les instructions doivent inclure un élément `Action` ou `NotAction`. Chaque AWS service possède son propre ensemble d'actions qui décrivent les tâches que vous pouvez effectuer avec ce service. Par exemple, la liste des actions pour Amazon S3 se trouve dans [Spécifier les autorisations dans une politique](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) du *guide de l'utilisateur d'Amazon Simple Storage Service*, la liste des actions pour Amazon EC2 se trouve dans le manuel [Amazon EC2 API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html) Reference, et la liste des actions Gestion des identités et des accès AWS pour se trouve dans [le](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) IAM API Reference. Pour consulter la liste d'actions d'autres services, reportez-vous à la [documentation](https://aws.amazon.com/documentation) de référence de l'API pour le service requis.

AWS fournit également des informations de référence de service au format JSON afin de rationaliser l'automatisation des flux de travail de gestion des politiques. Grâce aux informations de référence du service, vous pouvez accéder aux actions, aux ressources et aux clés de condition disponibles à Services AWS partir de fichiers lisibles par machine. Pour plus d’informations, consultez les [Informations sur les Service AWS simplifiés pour l’accès programmatique](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html) dans la Référence des autorisations de service.

Vous spécifiez une valeur en utilisant un espace de noms du service comme préfixe d'action (`iam`, `ec2` `sqs`, `sns`, `s3`, etc.), suivi du nom de l'action à autoriser ou refuser. Le nom doit correspondre à une action prise en charge par le service. Le préfixe et le nom d'action ne sont pas sensibles à la casse. Par exemple, `iam:ListAccessKeys` est identique à `IAM:listaccesskeys`. Les exemples suivants illustrent les éléments `Action` pour différents services.

**Action Amazon SQS**

```
"Action": "sqs:SendMessage"
```

**Action Amazon EC2**

```
"Action": "ec2:StartInstances"
```

**Action IAM**

```
"Action": "iam:ChangePassword"
```

**Actions Amazon S3**

```
"Action": "s3:GetObject"
```

Vous pouvez spécifier plusieurs valeurs pour l'élément `Action`.

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

Vous pouvez utiliser des caractères génériques à plusieurs caractères (`*`) et des caractères génériques à un seul caractère (`?`) pour donner accès à toutes les actions proposées par le produit spécifique. AWS Par exemple, l'élément `Action` suivant s'applique à toutes les actions S3.

```
"Action": "s3:*"
```

Vous pouvez aussi utiliser des caractères génériques (`*` ou `?`) dans le nom d’action. Par exemple, l'élément `Action` suivant s'applique à toutes les actions IAM qui incluent la chaîne `AccessKey`, y compris `CreateAccessKey`, `DeleteAccessKey`, `ListAccessKeys` et `UpdateAccessKey`.

```
"Action": "iam:*AccessKey*"
```

Certains services vous permettent de limiter les actions disponibles. Par exemple, Amazon SQS vous permet de ne mettre à disposition qu'un sous-ensemble de toutes les actions Amazon SQS possibles. Dans ce cas, le caractère générique `*` ne permet pas de contrôler entièrement la file d'attente ; il autorise uniquement le sous-ensemble d'actions que vous avez partagées. Pour de plus amples informations, veuillez consulter [Comprendre les autorisations](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes) dans le *Guide du développeur Amazon Simple Storage Service*.

# Éléments de politique JSON IAM : NotAction
<a name="reference_policies_elements_notaction"></a>

`NotAction` est un élément de politique avancé qui correspond de manière explicite à tout *sauf à* la liste spécifiée des actions. L'utilisation de `NotAction` peut entraîner une politique plus courte en répertoriant uniquement quelques actions qui ne devraient pas correspondre, plutôt que d'inclure une longue liste d'actions qui correspondront. Les actions spécifiées dans `NotAction` ne sont pas affectées par l’effet `Allow` ou `Deny` d’une déclaration de politique. En revanche, cela signifie que toutes les actions ou services applicables non répertoriés sont autorisés si vous utilisez l'effet `Allow`. En outre, ces actions ou services non répertoriés sont refusées si vous utilisez l'effet `Deny`. Lorsque vous utilisez `NotAction` avec l'élément `Resource`, vous fournissez la portée de la politique. C'est ainsi que l'on AWS détermine les actions ou les services applicables. Pour plus d'informations, consultez l'exemple de politique suivant : 

**NotAction avec Allow** 

Vous pouvez utiliser l'`NotAction`élément dans une instruction `"Effect": "Allow"` pour donner accès à toutes les actions d'un AWS service, à l'exception des actions spécifiées dans`NotAction`. Vous pouvez l'utiliser avec l'élément `Resource` pour fournir la portée de la politique, en limitant les actions autorisées aux actions pouvant être exécutées sur la ressource spécifiée.

L'exemple suivant permet aux utilisateurs d'accéder à toutes les actions Amazon S3 pouvant être exécutées sur une ressource S3 *sauf* pour supprimer un compartiment. Cette politique n'autorise pas non plus les actions dans d'autres services, car les actions d'autres services ne sont pas applicables aux ressources S3.

```
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "arn:aws:s3:::*",
```

Il peut arriver que vous souhaitiez autoriser l'accès à un grand nombre d'actions. En utilisant l'élément `NotAction`, vous inversez de manière efficace l'instruction, ce qui réduit la liste des actions. Par exemple, en raison AWS du grand nombre de services, vous souhaiterez peut-être créer une politique permettant à l'utilisateur de tout faire sauf d'accéder aux actions IAM.

L'exemple suivant permet aux utilisateurs d'accéder à toutes les actions de tous les AWS services, à l'exception d'IAM.

```
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
```

Soyez vigilant lorsque vous utilisez l'élément `NotAction` et `"Effect": "Allow"` dans la même instruction ou une instruction différente dans une politique. `NotAction` correspond à tous les services et les actions qui ne sont pas répertoriés de manière explicite ou applicables à la ressource spécifiée, et peut accorder aux utilisateurs plus d'autorisations que vous n'auriez souhaité.

**NotAction avec Deny**

Vous pouvez utiliser l'élément `NotAction` dans une instruction avec `"Effect": "Deny"` pour refuser un accès à l'ensemble des ressources répertoriées sauf pour les actions spécifiées dans l'élément `NotAction`. Cette combinaison n'autorise pas les éléments répertoriés, mais à la place elle refuse de manière explicite les actions non répertoriées. Vous devez toujours autoriser les actions que vous souhaitez autoriser.

L'exemple conditionnel suivant refuse l'accès aux actions non-IAM si l'utilisateur n'est pas connecté lorsqu'il utilise MFA. Si l'utilisateur est connecté lorsqu'il utilise MFA, le test `"Condition"` échoue et l'instruction `"Deny"` finale n'a aucun effet. Notez, toutefois, que ceci n'accorde à l'utilisateur l'accès à aucune action, mais ne fait que refuser explicitement toutes les autres actions sauf les actions IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyAllUsersNotUsingMFA",
        "Effect": "Deny",
        "NotAction": "iam:*",
        "Resource": "*",
        "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
    }]
}
```

------

Pour obtenir un exemple de politique qui refuse l'accès aux actions en dehors de régions spécifiques, à l'exception des actions provenant de services spécifiques, veuillez consulter [AWS: refuse l'accès AWS en fonction de la région demandée](reference_policies_examples_aws_deny-requested-region.md).

# Éléments de politique JSON IAM : Resource
<a name="reference_policies_elements_resource"></a>

L’élément `Resource` d’une déclaration de politique IAM définit l’objet ou les objets auxquels la déclaration s’applique. Les instructions doivent inclure un élément `Resource` ou `NotResource`.

Vous indiquez une ressource à l’aide d’un Amazon Resources Name (ARN). Le format de l'ARN dépend de la ressource à laquelle vous faites référence Service AWS et de la ressource spécifique à laquelle vous faites référence. Bien que le format de l’ARN varie, vous utilisez toujours un ARN pour identifier une ressource. Pour plus d'informations sur le format de ARNs, consultez[IAM ARNs](reference_identifiers.md#identifiers-arns). Pour plus d'informations sur la façon de spécifier une ressource, reportez-vous à la documentation du service pour lequel vous souhaitez rédiger une instruction.

**Note**  
Certains Services AWS ne vous permettent pas de définir des actions pour des ressources individuelles. Dans ces cas, toutes les actions répertoriées dans `Action`ou l’élément `NotAction` s’appliquent à toutes les ressources de ce service. Dans ce cas, vous utilisez le caractère générique (`*`) dans l’élément `Resource`.

L'exemple suivant fait référence à une file d'attente Amazon SQS spécifique.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

L’exemple suivant fait référence à un utilisateur IAM nommé `Bob` dans un Compte AWS.

**Note**  
Dans l'élément `Resource`, le nom de l'utilisateur IAM est sensible à la casse.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Utilisation de caractères génériques dans une ressource ARNs
<a name="reference_policies_elements_resource_wildcards"></a>

Vous pouvez utiliser des caractères génériques (`*` et `?`) dans les segments individuels d’un ARN (les parties séparées par des deux points) pour représenter :
+ Toute combinaison de caractères (`*`)
+ Tout caractère unique (`?`)

Vous pouvez utiliser plusieurs `*` ou `?` dans chaque segment. Si le caractère générique `*` est le dernier caractère d’un segment d’ARN de ressource, il peut s’étendre pour correspondre au-delà des limites des deux points. Nous vous recommandons d’utiliser des caractères génériques (`*` et `?`) dans les segments d’ARN séparés par deux points.

**Note**  
Vous ne pouvez pas utiliser de caractère générique dans le segment de service qui identifie le AWS produit. Pour plus d'informations sur les segments ARN, consultez [Identifiez les AWS ressources avec Amazon Resource Names (ARNs)](reference-arns.md)

L'exemple suivant fait référence à tous les utilisateurs IAM dont le chemin d'accès est `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

L'exemple suivant fait référence à tous les éléments d'un compartiment Amazon S3 spécifique.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

Le caractère astérisque (`*`) peut se développer pour remplacer tout ce qui se trouve dans un segment, y compris des caractères tels qu’une barre oblique (`/`) qui pourrait autrement sembler être un délimiteur dans un espace de noms de service donné. Par exemple, considérez l'ARN Amazon S3 suivant comme la même logique d'extension générique qui s'applique à tous les services.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

Les caractères génériques de l'ARN s'appliquent à tous les objets suivants dans le compartiment, et pas seulement au premier objet répertorié.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Considérez les deux derniers objets de la liste précédente. Un nom d’objet Amazon S3 peut commencer ou se terminer par la barre oblique (`/`) du délimiteur classique. Bien que `/` fonctionne comme un délimiteur, ce caractère n’a pas de signification spécifique lorsqu’il est utilisé dans un ARN de ressource. Il est traité de la même manière que n'importe quel autre caractère valide. L'ARN ne correspondrait pas aux objets suivants :

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Spécification de plusieurs ressources
<a name="reference_policies_elements_resource_multiple-resources"></a>

Vous pouvez spécifier plusieurs ressources dans l'`Resource`élément à l'aide d'un tableau de ARNs. L'exemple suivant fait référence à deux tables DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Utilisation de variables de politique dans les ressources ARNs
<a name="reference_policies_elements_resource_policy-variables"></a>

Dans l'élément `Resource`, vous pouvez utiliser des [variables de politique](reference_policies_variables.md) JSON dans la partie de l'ARN qui identifie la ressource spécifique (autrement dit, dans la partie finale de l'ARN). Par exemple, vous pouvez utilisez la clé `{aws:username}` au sein de l'ARN de la ressource pour indiquer que le nom de l'utilisateur actuel doit être inclus dans le nom de la ressource. L'exemple suivant montre comment utiliser la clé `{aws:username}` dans un élément `Resource`. La politique autorise l'accès à une table Amazon DynamoDB correspondant au nom de l'utilisateur actuel.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Pour plus d'informations sur les variables de politique JSON, consultez [Éléments des politiques IAM : variables et balises](reference_policies_variables.md).

# Éléments de politique JSON IAM : NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` est un élément de politique avancé qui correspond explicitement à chaque ressource, à l'exception de celles spécifiées. L'utilisation de `NotResource` peut entraîner une politique plus courte en répertoriant uniquement quelques ressources qui ne devraient pas correspondre, plutôt que d'inclure une longue liste de ressources qui correspondront. Ceci est particulièrement utile pour les politiques applicables au sein d'un même service AWS . 

Prenons l'exemple d'un groupe nommé `HRPayroll`. Les membres de `HRPayroll` ne doivent pas être autorisés à accéder aux ressources Amazon S3 sauf au dossier `Payroll` dans le compartiment `HRBucket`. La politique suivante refuse de manière explicite l'accès à toutes les ressources Amazon S3 autres que celles répertoriées. Notez, toutefois, que cette politique n'accorde à l'utilisateur aucun accès aux ressources.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

En règle générale, pour refuser de manière explicite l'accès à une ressource vous rédigez une politique qui utilise `"Effect":"Deny"` et inclut un élément `Resource` qui répertorie individuellement chaque dossier. Toutefois, dans ce cas, chaque fois que vous ajoutez un dossier à `HRBucket`, ou une ressource à Amazon S3 à laquelle personne ne doit accéder, vous devez ajouter son nom à la liste dans l’élément `Resource`. Si vous utilisez un élément `NotResource` à la place, les utilisateurs verront leur accès aux nouveaux dossiers automatiquement refusé sauf si vous ajoutez les noms des dossiers à l'élément `NotResource`. 

Lorsque vous utilisez `NotResource`, n'oubliez pas que les ressources spécifiées dans cet élément sont les *seules* ressources qui ne sont pas limitées. Toutes les ressources qui s'appliqueraient à l'action sont limitées. Dans l'exemple ci-dessus, la politique affecte uniquement les actions Amazon S3, et donc uniquement les ressources Amazon S3. Si l’élément `Action` comprenait également des actions Amazon EC2, la politique refuserait alors l’accès à toutes les ressources EC2 non spécifiées dans l’élément `NotResource`. Pour savoir quelles actions d'un service permettent de spécifier l'ARN d'une ressource, consultez [Actions, ressources et clés de condition pour les AWS services](reference_policies_actions-resources-contextkeys.html).

## NotResource avec d'autres éléments
<a name="notresource-element-combinations"></a>

Vous ne devez **jamais** utiliser les éléments `"Effect": "Allow"`, `"Action": "*"` et `"NotResource": "arn:aws:s3:::HRBucket"` ensemble. Cette déclaration est très dangereuse, car elle autorise toutes les actions AWS sur toutes les ressources à l'exception du compartiment `HRBucket` S3. Elle autoriserait même l'utilisateur à s'ajouter une politique qui lui permettrait d'accéder à `HRBucket`. Ne le faites pas. 

Soyez vigilant lorsque vous utilisez l'élément `NotResource` et `"Effect": "Allow"` dans la même instruction ou une instruction différente dans une politique. `NotResource` autorise tous les services et ressources qui ne sont pas répertoriés de manière explicite et peut accorder aux utilisateurs plus d'autorisations que vous n'auriez souhaité. L'utilisation de l'élément `NotResource` et `"Effect": "Deny"` dans la même instruction refuse les services et les ressources qui ne sont pas répertoriés de manière explicite.

# Éléments de politique JSON IAM : Condition
<a name="reference_policies_elements_condition"></a>

L'élément `Condition` (ou *bloc* `Condition`) vous permet de spécifier des conditions lorsqu'une politique est appliquée. L’élément `Condition` est facultatif. Dans l'élément `Condition`, vous créez des expressions dans lesquelles vous utilisez des [opérateurs de condition](reference_policies_elements_condition_operators.md) (égal, inférieur à, etc.) pour faire correspondre les clés et valeurs de contexte de la politique avec les clés et valeurs du contexte de la demande. Pour de plus amples informations sur le contexte de la demande, veuillez consulter [Composants d’une requête](intro-structure.md#intro-structure-request).

```
"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
```

La clé de contexte que vous spécifiez dans une condition de politique peut être une [clé de contexte de condition globale](reference_policies_condition-keys.md) ou une clé de contexte spécifique au service. Les clés de contexte de condition globale possèdent le préfixe `aws:`. Les clés de contexte spécifiques au service possèdent le préfixe du service. Par exemple, Amazon EC2 vous permet d'écrire une condition à l'aide de la clé de contexte `ec2:InstanceType`, qui est propre à ce service. Pour connaître les clés de contexte IAM spécifiques au service ayant le préfixe `iam:`, veuillez consulter la rubrique [Clés de contexte IAM et de AWS STS condition](reference_policies_iam-condition-keys.md).

Les *noms* de clé de contexte ne sont pas sensibles à la casse. Par exemple, inclure la clé de contexte `aws:SourceIP` revient à tester `AWS:SourceIp`. La sensibilité à la casse des *valeurs* des clés de contexte dépend de l'[opérateur de condition](reference_policies_elements_condition_operators.md) que vous utilisez. Par exemple, la condition suivante inclut l'opérateur `StringEquals` pour garantir que seules les demandes effectuées par `john` correspondent. Les utilisateurs nommés `John` se voient refuser l'accès.

```
"Condition" : { "StringEquals" : { "aws:username" : "john" }}
```

La condition suivante utilise l'opérateur [`StringEqualsIgnoreCase`](reference_policies_elements_condition_operators.md#Conditions_String) pour la correspondance avec les utilisateurs nommés `john` ou `John`.

```
"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "john" }}
```

Certaines clés de contexte prennent en charge des paires clé-valeur qui vous permettent de spécifier une partie du nom de clé. Les exemples incluent la clé de [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md#condition-keys-requesttag)contexte AWS KMS [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context), la clé de contexte et la clé de [`ResourceTag/tag-key`](reference_policies_condition-keys.md#condition-keys-resourcetag)contexte prises en charge par plusieurs services.
+ Si vous utilisez la clé de contexte `ResourceTag/tag-key` pour un service comme [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#amazon-ec2-keys), vous devez spécifier un nom de clé pour `tag-key`. 
+ **Les noms de clé 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.
+ AWS les services qui prennent en charge ces attributs peuvent vous permettre de créer plusieurs noms de clés qui ne diffèrent qu'au cas par cas. Par exemple, vous pouvez baliser une instance Amazon EC2 avec les interfaces `ec2=test1` et `EC2=test2`. Lorsque vous utilisez une condition comme `"aws:ResourceTag/EC2": "test1"` pour autoriser l'accès à cette ressource, le nom de clé correspond aux deux balises, mais une seule valeur correspond. Cela peut entraîner des échecs de condition inattendus.

**Important**  
En tant que bonne pratique, assurez-vous que les membres de votre compte suivent une convention de dénomination cohérente pour les attributs avec paire clé-valeur. Les exemples incluent les balises ou les contextes de chiffrement AWS KMS . Vous pouvez l'appliquer en utilisant la clé de [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)contexte pour le balisage ou [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys)pour le contexte de AWS KMS chiffrement.
+ Pour obtenir une liste de tous les opérateurs de condition et une description de leur fonctionnement, veuillez consulter la rubrique [Opérateurs de condition](reference_policies_elements_condition_operators.md).
+ Sauf indication contraire, toutes les clés de contexte peuvent comporter plusieurs valeurs. Pour savoir comment traiter des clés de contexte qui ont plusieurs valeurs, veuillez consulter la rubrique [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+ Pour obtenir la liste de l'ensemble des clés de contexte disponibles dans le monde entier, veuillez consulter la rubrique [AWS clés contextuelles de condition globale](reference_policies_condition-keys.md).
+ Pour les clés de contexte de condition définies par chaque service, voir [Actions, ressources et clés de condition pour les AWS services](reference_policies_actions-resources-contextkeys.html).

## Contexte de la demande
<a name="AccessPolicyLanguage_RequestContext"></a>

Lorsqu'un [principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) fait une [demande](intro-structure.md#intro-structure-request) à AWS, AWS rassemble les informations de la demande dans un contexte de demande. Le contexte de la demande comprend des informations sur le principal, les ressources, les actions et d’autres propriétés environnementales. L’évaluation de la politique fait correspondre les propriétés de la politique aux propriétés envoyées dans la demande afin d’évaluer et d’autoriser les actions que vous pouvez effectuer dans AWS.

Vous pouvez utiliser l'élément `Condition` d'une politique JSON pour tester des clés de contexte spécifiques par rapport au contexte de la demande. Par exemple, vous pouvez créer une politique qui utilise la clé de CurrentTime contexte [aws :](reference_policies_condition-keys.md#condition-keys-currenttime) pour [permettre à un utilisateur d'effectuer des actions dans un intervalle de dates spécifique uniquement](reference_policies_examples_aws-dates.md).

L’exemple suivant montre une représentation du contexte de la demande lorsque Martha Rivera envoie une demande pour désactiver son dispositif MFA.

```
Principal: AROA123456789EXAMPLE
Action: iam:DeactivateMFADevice
Resource: arn:aws:iam::user/martha
Context:
  – aws:UserId=AROA123456789EXAMPLE:martha
  – aws:PrincipalAccount=1123456789012
  – aws:PrincipalOrgId=o-example
  – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR
  – aws:MultiFactorAuthPresent=true
  – aws:MultiFactorAuthAge=2800
  – aws:CurrentTime=...
  – aws:EpochTime=...
  – aws:SourceIp=...
```

Le contexte de la demande est mis en correspondance avec une politique qui autorise les utilisateurs à supprimer leur propre dispositif authentification multifactorielle (MFA), mais uniquement s’ils se sont connectés à l’aide de la MFA au cours de la dernière heure (3 600 secondes).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowRemoveMfaOnlyIfRecentMfa",
        "Effect": "Allow",
        "Action": [
            "iam:DeactivateMFADevice"
        ],
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"}
        }
    }
}
```

------

Dans cet exemple, la politique correspond au contexte de la demande : l’action est la même, la ressource correspond au caractère générique « \$1 » et la valeur pour `aws:MultiFactorAuthAge` est 2 800, qui est inférieure à 3 600. La politique autorise donc cette demande d’autorisation.

AWS évalue chaque clé de contexte de la politique et renvoie une valeur *vraie* ou *fausse*. L'absence de clé de contexte dans la demande est considérée comme une absence de correspondance.

Le contexte de la demande peut renvoyer les valeurs suivantes :
+ **True** : si le demandeur s'est connecté avec MFA au cours de la dernière heure ou moins, la condition renvoie la valeur *true*.
+ **False** : si le demandeur s'est connecté avec MFA il y a plus d'une heure, la condition renvoie la valeur *false*.
  + **Absence : si le demandeur a fait une demande à l'aide de ses clés d'accès utilisateur IAM dans l' AWS API AWS CLI or, la clé n'est pas présente**. Dans ce cas, la clé est manquante et il n'y a pas de correspondance.

**Note**  
Dans certains cas, lorsque la valeur de la clé de condition n’est pas présente, la condition peut toujours retourner vraie. Par exemple, si vous ajoutez le qualificateur `ForAllValues`, la demande renvoie vrai si la clé de contexte ne figure pas dans la demande. Pour éviter que des clés de contexte manquantes ou des clés de contexte contenant des valeurs vides ne soient considérées comme vraies, vous pouvez inclure l’[opérateur de condition Null](reference_policies_elements_condition_operators.md#Conditions_Null) dans votre politique avec une valeur `false` pour vérifier si la clé de contexte existe et si sa valeur n’est pas nulle.

## Bloc Condition
<a name="AccessPolicyLanguage_ConditionBlock"></a>

L'exemple suivant illustre le format de base d'un élément `Condition` :

```
"Condition": {"StringLike": {"s3:prefix": ["jane/*"]}}
```

Une valeur de la demande est représentée par une clé de contexte. Dans ce cas, il s'agit de `s3:prefix`. La valeur clé de contexte est comparée à une valeur que vous spécifiez comme valeur littérale, par exemple `jane/*`. Le type de comparaison à effectuer est spécifié par l'[opérateur de condition](reference_policies_elements_condition_operators.md) (ici, `StringLike`). Vous pouvez créer des conditions qui comparent des chaînes, des dates, des numéros et autres à l'aide d'opérateurs de comparaison booléens standard comme est égal à, supérieur à ou inférieur à. Lorsque vous utilisez des [opérateurs de chaîne](reference_policies_elements_condition_operators.md#Conditions_String) ou des [opérateurs ARN](reference_policies_elements_condition_operators.md#Conditions_ARN), vous pouvez également utiliser une [variable de politique](reference_policies_variables.md) dans la valeur de clé de contexte. L'exemple suivant inclut la variable `aws:username`. 

```
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
```

Dans certains cas, les clés de contexte peuvent contenir plusieurs valeurs. Par exemple, une demande à Amazon DynamoDB peut retourner ou mettre à jour plusieurs attributs d'une table. Une politique d'accès aux tables DynamoDB peut inclure la clé de contexte `dynamodb:Attributes`, qui contient tous les attributs spécifiés dans la demande. Vous pouvez tester les divers attributs de la demande par rapport à une liste d'attributs autorisés dans une politique à l'aide d'opérateurs de définition dans l'élément `Condition`. Pour de plus amples informations, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

Lorsque la politique est évaluée lors d'une demande, AWS remplace la clé par la valeur correspondante de la demande. (Dans cet exemple, AWS utiliserait la date et l'heure de la demande.) L'évaluation de la condition retourne True ou False, ce qui est pris en compte pour déterminer si la politique dans sa totalité autorise ou refuse la demande. 

### Plusieurs valeurs dans un élément Condition
<a name="Condition-multiple-conditions"></a>

Un élément `Condition` peut contenir plusieurs opérateurs de condition, et chaque opérateur de condition peut également inclure plusieurs paires clé-valeur de contexte. L'illustration suivante décrit ce scénario. 

![\[diagrammes de deux blocs de l’opérateur à conditions. Le premier bloc inclut deux espaces réservés aux clés contextuelles, chacun contenant plusieurs valeurs. Le second bloc de conditions inclut une clé de contexte à valeurs multiples.\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block.diagram.png)


Pour de plus amples informations, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

# Éléments de politique JSON IAM : Opérateurs de condition
<a name="reference_policies_elements_condition_operators"></a>

<a name="topiclist"></a>

Utilisez les opérateurs de condition de l'élément `Condition` pour faire correspondre la clé de condition et la valeur de la politique avec les valeurs du contexte de la demande. Pour en savoir plus sur l'élément `Condition`, consultez [Éléments de politique JSON IAM : Condition](reference_policies_elements_condition.md).

L'opérateur de condition que vous pouvez utiliser dans une politique dépend de la clé de condition que vous choisissez. Vous pouvez choisir une clé de condition globale ou une clé de condition spécifique au service. Pour savoir quel opérateur de condition vous pouvez utiliser pour une clé de condition globale, veuillez consulter [AWS clés contextuelles de condition globale](reference_policies_condition-keys.md). Pour savoir quel opérateur de condition vous pouvez utiliser pour une clé de condition spécifique à un service, consultez [Actions, ressources et clés de condition pour les AWS services](reference_policies_actions-resources-contextkeys.html) et choisissez le service que vous souhaitez consulter.

**Important**  
Si la clé que vous spécifiez dans une condition de stratégie n'est pas présente dans le contexte de la requête, les valeurs ne correspondent pas et la condition est *fausse*. Si la condition de stratégie requiert qu'il n'y ait *aucune* correspondance de clé, tels que `StringNotLike` ou `ArnNotLike` et la touche de droite n'est pas présente, la condition est *vraie*. Cette logique s'applique à tous les opérateurs de condition sauf[... IfExists](#Conditions_IfExists)et [Contrôle nul](#Conditions_Null). Ces opérateurs testent si la clé est présente (existe) dans le contexte de demande.

Les opérateurs de condition peuvent être regroupés dans les catégories suivantes :
+ [String](#Conditions_String)
+ [Numérique](#Conditions_Numeric)
+ [Date et heure](#Conditions_Date)
+ [Booléen](#Conditions_Boolean)
+ [Binaire](#Conditions_BinaryEquals)
+ [Adresse IP](#Conditions_IPAddress)
+ [Amazon Resource Name (ARN)](#Conditions_ARN) (disponible uniquement pour certains services.)
+ [... IfExists](#Conditions_IfExists)(vérifie si la valeur clé existe dans le cadre d'une autre vérification)
+ [Null check](#Conditions_Null) (vérifie si la valeur de clé existe en tant que vérification autonome)

## Opérateurs de condition de chaîne
<a name="Conditions_String"></a>

Les opérateurs de condition de chaîne permettent de créer des éléments `Condition` qui limitent l'accès après comparaison d'une clé à une valeur de chaîne.
+  **Variables de politiques** – [Prises en charge](reference_policies_variables.md)
+ **Caractères génériques** – [Pris en charge](#Conditions_String-wildcard)


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `StringEquals`   |  Correspondance exacte, respect de la casse  | 
|   `StringNotEquals`   |  Correspondance négative  | 
|   `StringEqualsIgnoreCase`   |  Correspondance exacte, non respect de la casse  | 
|   `StringNotEqualsIgnoreCase`   |  Correspondance négative, non respect de la casse  | 
|   `StringLike`   | Correspondance avec respect de la casse. Les valeurs peuvent inclure un caractère générique (\$1) correspondant à plusieurs caractères et un caractère générique (?) correspondant à un seul caractère n'importe où dans la chaîne. Vous devez spécifier des caractères génériques pour obtenir des correspondances de chaînes partielles.   Si une clé contient plusieurs valeurs, `StringLike` peut être qualifié avec les opérateurs d'ensemble `ForAllValues:StringLike` et `ForAnyValue:StringLike`. Pour de plus amples informations, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).   | 
|   `StringNotLike`   |  Correspondance avec non respect de la casse. Les valeurs peuvent inclure un caractère générique (\$1) correspondant à plusieurs caractères ou un caractère générique (?) correspondant à un seul caractère n'importe où dans la chaîne.  | 

**Example opérateur de condition de chaîne**  
Par exemple, l'instruction suivante contient un élément `Condition` qui utilise la clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) pour spécifier que le principal qui fait la requête doit être balisé avec la catégorie de tâche `iamuser-admin` .    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}
```
Si la clé que vous spécifiez dans une condition de politique n'est pas présente dans le contexte de demande, les valeurs ne correspondent pas. Dans cet exemple, la clé `aws:PrincipalTag/job-category` est présente dans le contexte de demande si le principal utilise un utilisateur IAM avec des balises attachées. Elle est également incluse pour un principal utilisant un rôle IAM avec des balises ou des balises de session attachées. Si un utilisateur sans la balise tente d'afficher ou de modifier une clé d'accès, la condition renvoie `false` et la demande est implicitement refusée par cette instruction.  
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – iamuser-admin</pre>  |  Correspondance | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – dev-ops</pre>  | Aucune correspondance | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  |  Aucun `aws:PrincipalTag/job-category` dans le contexte de la demande.  | Aucune correspondance | 

**Example utilisation d’une variable de politique avec une chaîne d’opérateur de condition**  
L'exemple suivant utilise l'opérateur de condition `StringLike` pour établir une correspondance entre une chaîne et une [variable de politique](reference_policies_variables.md) afin de créer une politique qui permet à un utilisateur IAM de se servir de la console Amazon S3 pour gérer son propre « répertoire de base » dans un compartiment Amazon S3. La politique autorise les actions spécifiées dans un compartiment S3 si l'élément `s3:prefix` correspond à l'un des modèles spécifiés.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "",
            "home/",
            "home/${aws:username}/"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```
Le tableau suivant montre comment cette politique AWS est évaluée pour différents utilisateurs en fonction de la [aws:username](reference_policies_condition-keys.md#condition-keys-username) valeur dans le contexte de la demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  | <pre>aws:username:<br />  – martha_rivera</pre>  | <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/martha_rivera/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  <pre>aws:username:<br />  – nikki_wolf</pre>  |  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/nikki_wolf/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  Aucun `aws:username` dans le contexte de la demande.  | Aucune correspondance | 
Pour consulter un exemple de politique qui montre comment utiliser l’élément `Condition` pour limiter l’accès à des ressources en fonction d’un ID d’application et d’un ID utilisateur pour la fédération OIDC consultez [Amazon S3 : permet aux utilisateurs Amazon Cognito d'accéder aux objets dans leur compartiment](reference_policies_examples_s3_cognito-bucket.md). 

### Opérateurs de condition de chaîne à valeurs multiples
<a name="conditions_string_multivalued"></a>

Si une clé dans la demande contient plusieurs valeurs, les opérateurs de chaîne peuvent être qualifiés avec les opérateurs d’ensemble `ForAllValues` et `ForAnyValue`. Pour plus d’informations sur la logique d’évaluation de plusieurs clés ou valeurs de contexte, consultez [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Opérateur de condition | Description | 
| --- | --- | 
|  `ForAllValues:StringEquals` `ForAllValues:StringEqualsIgnoreCase`  |  Toutes les valeurs de la clé de condition dans la demande doivent correspondre à au moins une des valeurs de votre politique.  | 
|  `ForAnyValue:StringEquals` `ForAnyValue:StringEqualsIgnoreCase`  |  Au moins une valeur clé de condition dans la demande doit correspondre à l’une des valeurs de votre politique.  | 
|  `ForAllValues:StringNotEquals` `ForAllValues:StringNotEqualsIgnoreCase`  |  Correspondance négative. Aucune des valeurs de la clé de contexte dans la demande ne correspond à l’une des valeurs de clé de contexte dans votre politique.  | 
|  `ForAnyValue:StringNotEquals` `ForAnyValue:StringNotEqualsIgnoreCase`  |  Correspondance négative. Au moins une valeur de clé de contexte dans la demande ne doit PAS correspondre à l’une des valeurs de la clé de contexte dans votre politique.  | 
|  `ForAllValues:StringLike`  |  Toutes les valeurs de la clé de condition dans la demande doivent correspondre à au moins une des valeurs de votre politique.  | 
|  `ForAnyValue:StringLike`  |  Au moins une valeur clé de condition dans la demande doit correspondre à l’une des valeurs de votre politique.  | 
|  `ForAllValues:StringNotLike`  |  Correspondance négative. Aucune des valeurs de la clé de contexte dans la demande ne correspond à l’une des valeurs de clé de contexte dans votre politique.  | 
|  `ForAnyValue:StringNotLike`  |  Correspondance négative. Au moins une valeur de clé de contexte dans la demande ne doit PAS correspondre à l’une des valeurs de la clé de contexte dans votre politique.  | 

**Example utilisation de `ForAnyValue` avec une chaîne d’opérateur de condition**  
Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise l'utilisation de l'action `CreateTags` d'Amazon EC2 pour attacher des balises à une instance. Lorsque vous utilisez `StringEqualsIgnoreCase`, vous pouvez attacher des balises uniquement si la balise contient la clé `environment` et les valeurs `preprod` ou `storage`. Lorsque vous ajoutez `IgnoreCase` à l’opérateur, vous autorisez toute valeur de balise existante en majuscules, telle que `preprod`, `Preprod` et `PreProd`, à être résolue en vrai.  
Lorsque vous ajoutez le modificateur `ForAnyValue` avec la clé de condition [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys), au moins une valeur de clé de balise dans la demande doit correspondre à la valeur `environment`. La comparaison `ForAnyValue` est sensible à la casse, ce qui empêche les utilisateurs d’utiliser une casse incorrecte pour la clé de balise, par exemple en utilisant `Environment` au lieu de `environment`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "StringEqualsIgnoreCase": {
        "aws:RequestTag/environment": [
          "preprod",
          "storage"
        ]
      },
      "ForAnyValue:StringEquals": {
        "aws:TagKeys": "environment"
      }
    }
  }
}
```
 Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.   


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – costcenter<br />aws:RequestTag/environment:<br />  – PreProd</pre>  | Correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – Environment<br />aws:RequestTag/Environment:<br />  – preprod</pre>  | Aucune correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – costcenter<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Aucune correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Aucun `aws:TagKeys` dans le contexte de la demande. <pre>aws:RequestTag/environment:<br />  – storage</pre>  | Aucune correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre> Aucun `aws:RequestTag/environment` dans le contexte de la demande.  | Aucune correspondance  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Aucun `aws:TagKeys` dans le contexte de la demande. Aucun `aws:RequestTag/environment` dans le contexte de la demande.  | Aucune correspondance  | 

### Correspondance des caractères génériques
<a name="Conditions_String-wildcard"></a>

Les opérateurs de condition de chaîne réalisent une correspondance sans modèle qui n'applique pas de format prédéfini. Les opérateurs de condition ARN et de condition de date constituent un sous-ensemble d'opérateurs de chaîne qui appliquent une structure à la valeur de la clé de condition.

Nous vous recommandons d’utiliser des opérateurs de condition qui correspondent aux valeurs auxquelles vous comparez les clés. Par exemple, vous devez utiliser [Opérateurs de condition de chaîne](#Conditions_String) lorsque vous comparez des clés à des valeurs de chaîne. De même, vous devez utiliser [Opérateurs de condition d'Amazon Resource Name (ARN)](#Conditions_ARN) lorsque vous comparez des clés à des valeurs d’ARN.

**Example**  
Cet exemple montre comment créer une limite autour des ressources de votre organisation. La condition de cette politique refuse l'accès aux actions Amazon S3 sauf si la ressource à laquelle vous accédez se trouve dans un ensemble spécifique d'unités organisationnelles (OUs) dans AWS Organizations. Un chemin AWS Organizations est une représentation textuelle de la structure d’une entité d’organisation.  
La condition exige que `aws:ResourceOrgPaths` contienne l’un des chemins d’UO répertoriés. Comme `aws:ResourceOrgPaths` il s'agit d'une condition à valeurs multiples, la politique utilise `ForAllValues:StringNotLike` l'opérateur pour comparer les valeurs de `aws:ResourceOrgPaths` à la liste de OUs la politique.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:ResourceOrgPaths": [
            "o-acorg/r-acroot/ou-acroot-mediaou/",
            "o-acorg/r-acroot/ou-acroot-sportsou/*"
          ] 
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-sportsou/costcenter/</pre>  | Correspondance | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-mediaou/costcenter/</pre>  | Aucune correspondance | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  |  Aucun `aws:ResourceOrgPaths:` dans la demande.  | Aucune correspondance | 

## Opérateurs de condition numériques
<a name="Conditions_Numeric"></a>

Les opérateurs de condition numériques permettent de créer des éléments `Condition` qui limitent l'accès après comparaison d'une clé à un entier ou une valeur décimale.
+  **Variables de politiques** – Non prises en charge
+ **Caractères génériques** – Non pris en charge


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `NumericEquals`   |  Correspondance  | 
|   `NumericNotEquals`   |  Correspondance négative  | 
|   `NumericLessThan`   |  Correspondance « Inférieur à »  | 
|   `NumericLessThanEquals`   |  Correspondance « Inférieur ou égal à »  | 
|   `NumericGreaterThan`   |  Correspondance « Supérieur à »  | 
|   `NumericGreaterThanEquals`   |  Correspondance « Supérieur ou égal à »  | 

Par exemple, l'instruction suivante contient un élément `Condition` qui utilise l'opérateur de condition `NumericLessThanEquals` avec la clé `s3:max-keys` pour spécifier que le demandeur peut répertorier *jusqu'à* 10 objets dans `amzn-s3-demo-bucket` à la fois.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {"NumericLessThanEquals": {"s3:max-keys": "10"}}
  }
}
```

------

Si la clé que vous spécifiez dans une condition de politique n'est pas présente dans le contexte de demande, les valeurs ne correspondent pas. Dans cet exemple, la clé `s3:max-keys` est toujours présente dans la demande lorsque vous effectuez l'opération `ListBucket`. Si cette politique autorisait toutes les opérations Amazon S3, seules les opérations incluant la clé de contexte `max-keys` avec une valeur inférieure ou égale à 10 seraient autorisées. 

## Opérateurs de condition de date
<a name="Conditions_Date"></a>

Les opérateurs de conditions de date vous permettent de créer `Condition` des éléments qui limitent l'accès en comparant une clé à une date/time valeur. Vous pouvez utiliser ces opérateurs de condition avec la clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) ou [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime). Vous devez spécifier date/time des valeurs avec l'une des [implémentations du W3C des formats de date ISO 8601 ou en utilisant l'](http://www.w3.org/TR/NOTE-datetime)heure Epoch (UNIX). 
+  **Variables de politiques** – Non prises en charge
+ **Caractères génériques** – Non pris en charge


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `DateEquals`   |  Correspondance à une date spécifique  | 
|   `DateNotEquals`   |  Correspondance négative  | 
|   `DateLessThan`   |  Correspondance avant une date et heure spécifiques  | 
|   `DateLessThanEquals`   |  Correspondance à ou avant une date et heure spécifiques  | 
|   `DateGreaterThan`   |  Correspondance après une date et heure spécifiques  | 
|   `DateGreaterThanEquals`   |  Correspondance à ou après une date et heure spécifiques  | 

Par exemple, l’instruction suivante contient un élément `Condition` qui utilise l’opérateur de condition `DateGreaterThan` avec la clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime). Cette condition spécifie que les informations d'identification de sécurité temporaires utilisées pour effectuer la demande ont été publiées en 2020. Cette politique peut être mise à jour par programme tous les jours pour s'assurer que les membres du compte utilisent de nouvelles informations d'identification.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "DateGreaterThan": {
                "aws:TokenIssueTime": "2020-01-01T00:00:01Z"
            }
        }
    }
}
```

------

Si la clé que vous spécifiez dans une condition de politique n'est pas présente dans le contexte de demande, les valeurs ne correspondent pas. La clé `aws:TokenIssueTime` n'est présente dans le contexte de demande que lorsque le principal utilise des informations d'identification temporaires pour effectuer la demande. La clé n'est pas présente dans AWS CLI les demandes AWS d'API ou de AWS SDK effectuées à l'aide de clés d'accès. Dans cet exemple, si un utilisateur IAM tente d'afficher ou de modifier une clé d'accès, la demande est refusée.

## Opérateurs de condition booléens
<a name="Conditions_Boolean"></a>

Les opérateurs de condition booléens permettent de créer des éléments `Condition` qui limitent l’accès après comparaison d’une clé à `true` ou `false`.

Si une clé contient plusieurs valeurs, les opérateurs booléens peuvent être qualifiés avec les opérateurs d’ensemble `ForAllValues` et `ForAnyValue`. Pour plus d’informations sur la logique d’évaluation de plusieurs clés ou valeurs de contexte, consultez [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+  **Variables de politiques** – [Prises en charge](reference_policies_variables.md)
+ **Caractères génériques** – Non pris en charge


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `Bool`   |  Correspondance booléenne  | 
|   `ForAllValues:Bool`   |  À utiliser avec le type de données Array of Bool. Toutes les valeurs booléennes dans les valeurs clés du contexte doivent correspondre aux valeurs booléennes de votre politique. Pour empêcher les opérateurs `ForAllValues` d’évaluer les clés de contexte manquantes ou les clés de contexte avec des valeurs vides comme Autorisé, vous pouvez inclure l’[opérateur de condition Null](#Conditions_Null) dans votre politique.  | 
|   `ForAnyValue:Bool`   |  À utiliser avec le type de données Array of Bool. Au moins l’une des valeurs booléennes dans les valeurs clés du contexte doit correspondre aux valeurs booléennes de votre politique.  | 

**Example opérateur de condition booléens**  
L politique basée sur l’identité suivante utilise l’opérateur de condition `Bool` avec la clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) pour refuser la réplication d’objets et de balises d’objets vers le compartiment de destination et son contenu si la demande n’est pas effectuée via SSL.  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "BooleanExample",
      "Action": "s3:ReplicateObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – false</pre>  | Correspondance | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – true</pre>  | Aucune correspondance | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  |  Aucun `aws:SecureTransport` dans le contexte de la demande.  | Aucune correspondance | 

## Opérateurs de condition binaires
<a name="Conditions_BinaryEquals"></a>

L’opérateur de condition `BinaryEquals` vous permet de créer des éléments `Condition` qui analysent les valeurs de clé qui utilisent un format binaire. Il compare la valeur de la clé spécifiée, octet par octet, à une représentation encodée au format [Base64](https://en.wikipedia.org/wiki/Base64) de la valeur binaire dans la politique. Si la clé que vous spécifiez dans une condition de politique n'est pas présente dans le contexte de demande, les valeurs ne correspondent pas.
+  **Variables de politiques** – Non prises en charge
+ **Caractères génériques** – Non pris en charge

```
"Condition" : {
  "BinaryEquals": {
    "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="
  }
}
```


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – QmluYXJ5VmFsdWVJbkJhc2U2NA==</pre>  | Correspondance | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – ASIAIOSFODNN7EXAMPLE</pre>  | Aucune correspondance | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  |  Aucun `key` dans le contexte de la demande.  | Aucune correspondance | 

## Opérateurs de condition d'adresse IP
<a name="Conditions_IPAddress"></a>

Les opérateurs de condition d'adresse IP vous permettent de créer `Condition` des éléments qui limitent l'accès en comparant une clé à une IPv6 adresse IPv4 ou à une plage d'adresses IP. Vous utilisez ces opérateurs avec la clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip). La valeur doit être au format CIDR standard (par exemple, 203.0.113.0/24 ou 2001 : : 1234:5678 : :/64). DB8 Si vous spécifiez une adresse IP sans préfixe de routage associé, IAM utilise la valeur de préfixe par défaut `/32`.

Certains AWS services sont compatibles IPv6, en utilisant : : pour représenter une plage de 0. Pour savoir si un service est compatible IPv6, consultez sa documentation.
+  **Variables de politiques** – Non prises en charge
+ **Caractères génériques** – Non pris en charge


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `IpAddress`   |  Adresse IP ou plage d'adresses IP spécifiée  | 
|   `NotIpAddress`   |  Toutes les adresses IP à l'exception de l'adresse IP ou de la plage d'adresse IP spécifiée  | 

**Example Opérateur de condition d’adresse IP**  
L’instruction suivante utilise l’opérateur de condition `IpAddress` avec la clé `aws:SourceIp` pour spécifier que la demande doit provenir d’une adresse IP comprise dans la plage 203.0.113.0 à 203.0.113.255.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}
```
La clé de condition `aws:SourceIp` est résolue à l'aide de l'adresse IP d'où provient la demande. Si la demande provient d'une instance Amazon EC2, `aws:SourceIp` correspond à l'adresse IP publique de l'instance.   
Si la clé que vous spécifiez dans une condition de politique n'est pas présente dans le contexte de demande, les valeurs ne correspondent pas. La clé `aws:SourceIp` figure toujours dans le contexte de demande, sauf lorsque le demandeur utilise un point de terminaison VPC pour effectuer la demande. Dans ce cas, la condition renvoie `false` et la demande est implicitement refusée par cette instruction.  
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 203.0.113.1</pre>  | Correspondance | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 198.51.100.1</pre>  | Aucune correspondance | 
L'exemple suivant montre comment combiner IPv4 les IPv6 adresses afin de couvrir toutes les adresses IP valides de votre organisation. Nous vous recommandons de mettre à jour les politiques de votre organisation en fonction de vos plages d' IPv6 adresses, en plus des IPv4 plages dont vous disposez déjà, afin de vous assurer que les politiques continuent de fonctionner pendant votre transition IPv6.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "someservice:*",
    "Resource": "*",
    "Condition": {
      "IpAddress": {
        "aws:SourceIp": [
          "203.0.113.0/24",
          "2001:DB8:1234:5678::/64"
        ]
      }
    }
  }
}
```
La clé de condition `aws:SourceIp` fonctionne uniquement dans une politique JSON si vous appelez l'API que vous testez directement en tant qu'utilisateur. En revanche, si vous utilisez un service pour appeler le service cible en votre nom, ce service voit l'adresse IP du service appelant plutôt que celle de l'utilisateur d'origine. Par exemple, cela peut se produire si vous utilisez AWS CloudFormation pour appeler Amazon EC2 en vue de créer automatiquement des instances. Actuellement, il n'est pas possible de transmettre l'adresse IP d'origine au service cible via un service appelant à des fins d'évaluation dans une politique JSON. Pour ces types d'appels d'API de service, vous ne devez pas utiliser la clé de condition `aws:SourceIp`.

## Opérateurs de condition d'Amazon Resource Name (ARN)
<a name="Conditions_ARN"></a>

Les opérateurs de condition d'Amazon Resource Name (ARN) permettent de créer des éléments `Condition` qui limitent l'accès après comparaison d'une clé à un ARN. L'ARN est considéré comme étant une chaîne.
+  **Variables de politiques** – [Prises en charge](reference_policies_variables.md)
+ **Caractères génériques** – [Pris en charge](reference_policies_elements_resource.md#reference_policies_elements_resource_wildcards)


****  

| Opérateur de condition | Description | 
| --- | --- | 
|   `ArnEquals`, `ArnLike`  |  Correspondance à l'ARN avec respect de la casse. Chacun des six composants de l'ARN, séparés par deux points, est vérifié séparément et chacun peut inclure un caractère générique correspondant à plusieurs caractères (\$1) ou un caractère générique correspondant à un caractère (?). Les opérateurs de condition `ArnEquals` et `ArnLike` se comportent de manière identique.  | 
|   `ArnNotEquals`, `ArnNotLike`  |  Correspondance négative à l'ARN. Les opérateurs de condition `ArnNotEquals` et `ArnNotLike` se comportent de manière identique.  | 

**Example Opérateur de condition de l’ARN**  
L'exemple de politique basée sur les ressources suivant montre une politique attachée à une file d'attente Amazon SQS à laquelle vous souhaitez envoyer des messages SNS. Elle donne l'autorisation à Amazon SNS d'envoyer des messages à une ou plusieurs files d'attente de votre choix, mais uniquement si le service envoie le message pour le compte d'une ou plusieurs rubriques Amazon SNS spécifiques. Vous spécifiez la file d'attente dans le champ `Resource`, tandis que la rubrique Amazon SNS est la valeur de la clé `SourceArn`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sns.amazonaws.com"
        },
        "Action": "SQS:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:123456789012:QUEUE-ID",
        "Condition": {
            "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:TOPIC-ID"
            }
        }
    }
}
```
La clé [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) figure dans le contexte de demande uniquement si une ressource déclenche un service pour appeler un autre service au nom du propriétaire de la ressource. Si un utilisateur IAM tente d'effectuer cette opération directement, la condition renvoie `false` et la demande est implicitement refusée par cette instruction.  
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:123456789012:TOPIC-ID</pre>  | Correspondance | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:777788889999:TOPIC-ID</pre>  | Aucune correspondance | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  |  Aucun `aws:SourceArn` dans le contexte de la demande.  | Aucune correspondance | 

### Opérateurs de condition d’ARN à valeurs multiples
<a name="conditions_arn_multivalued"></a>

Si une clé dans la demande contient plusieurs valeurs, les opérateurs d’ARN peuvent être qualifiés avec les opérateurs d’ensemble `ForAllValues` et `ForAnyValue`. Pour plus d’informations sur la logique d’évaluation de plusieurs clés ou valeurs de contexte, consultez [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Opérateur de condition | Description | 
| --- | --- | 
|  `ForAllValues:ArnEquals` `ForAllValues:ArnLike`  |  Tous les éléments contenus ARNs dans le contexte de la demande doivent correspondre à au moins un des modèles d'ARN de votre politique.  | 
|  `ForAnyValue:ArnEquals` `ForAnyValue:ArnLike`  |  Au moins un ARN du contexte de la demande doit correspondre à un des modèles ARN de votre politique.  | 
|  `ForAllValues:ArnNotEquals` `ForAllValues:ArnNotLike`  |  Correspondance négative. Aucun des éléments contenus ARNs dans le contexte de la demande ne peut correspondre aux modèles d'ARN de chaîne de votre politique.  | 
|  `ForAnyValue:ArnNotEquals` `ForAnyValue:ArnNotLike`  |  Correspondance négative. Au moins un ARN dans le contexte de la demande ne doit PAS correspondre à l’un des modèles ARN de votre politique.  | 

**Example utilisation de `ForAllValues` avec un d’opérateur de condition d’ARN**  
L'exemple suivant permet `ForAllValues:ArnLike` de créer ou de mettre à jour une source de livraison logique pour les CloudWatch journaux Amazon Logs. Le bloc de condition inclut la clé de condition [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys)pour filtrer la ressource générant le journal ARNs transmise dans la demande. À l'aide de cet opérateur de condition, tous les éléments de la demande doivent correspondre à au moins un ARN de la politique. ARNs     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "logs:PutDeliverySource",
            "Resource": "arn:aws:logs:us-east-1:123456789012:delivery-source:*",
            "Condition": {
                "ForAllValues:ArnLike": {
                    "logs:LogGeneratingResourceArns": [
                        "arn:aws:cloudfront::123456789012:distribution/*",
                        "arn:aws:cloudfront::123456789012:distribution/support*"
                    ]
                }
            }
        }
    ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.  


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter</pre>  | Correspondance | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/support2025</pre>  | Correspondance | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/admin</pre>  | Aucune correspondance | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:777788889999:distribution/costcenter</pre>  | Aucune correspondance | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  |  Aucun `logs:LogGeneratingResourceArns` dans le contexte de la demande.  | Correspondance  | 
Le qualificateur `ForAllValues` renvoie la valeur true si la demande ne comprend pas de clés de contexte ou si la valeur de clé de contexte aboutit à un jeu de données nul, tel qu’une chaîne vide. Pour éviter que des clés de contexte manquantes ou des clés de contexte contenant des valeurs vides ne soient considérées comme vraies, vous pouvez inclure l’[opérateur de condition Null](#Conditions_Null) dans votre politique avec une valeur `false` pour vérifier si la clé de contexte existe et si sa valeur n’est pas nulle.

## ... IfExists opérateurs de conditions
<a name="Conditions_IfExists"></a>

Vous pouvez ajouter `IfExists` à la fin de n'importe quel nom d'opérateur de condition, à l'exception de la condition `Null`, par exemple,`StringLikeIfExists`. Ceci équivaut à spécifier que « Si la clé de condition est présente dans le contexte de la requête, la clé doit être traitée comme spécifié dans la politique. Si la clé n'est pas présente, la condition évalue l'élément de condition comme vrai. » Les autres éléments de condition dans l'instruction peuvent toujours se traduire par une absence de correspondance, mais pas par une clé manquante lors de la vérification avec `...IfExists`. Si vous utilisez un élément `"Effect": "Deny"` avec un opérateur de condition négatif tel que `StringNotEqualsIfExists`, la demande est toujours refusée, même si la clé de condition n’est pas présente.

**Exemple d'utilisation de `IfExists`**

De nombreuses clés de condition contiennent des informations se rapportant à un type spécifique de ressources et elles ne sont présentes que lorsque vous accédez à ce type de ressources. Ces clés de condition n'existent pas pour les autres types de ressources. Le fait que l'instruction ne s'applique qu'à un type spécifique de ressources ne pose pas problème. Toutefois, dans certains scénarios, une même instruction peut s'appliquer à plusieurs types de ressources, par exemple lorsque l'instruction de politique référence les actions de plusieurs services ou lorsqu'une action donnée d'un service accède à différents types de ressources dans un même service. Dans ce cas, l'inclusion d'une clé de condition applicable uniquement à une des ressources dans l'instruction de politique peut provoquer l'échec de l'élément `Condition` et de ce fait, l'élément `"Effect"` ne s'applique pas.

Prenons l'exemple de politique suivant :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "THISPOLICYDOESNOTWORK",
    "Effect": "Allow",
    "Action": "ec2:RunInstances",
    "Resource": "*",
    "Condition": {"StringLike": {"ec2:InstanceType": [
      "t1.*",
      "t2.*",
      "m3.*"
    ]}}
  }
}
```

------

L'*intention* de la politique précédente est de permettre à l'utilisateur de lancer n'importe quelle instance de type `t1`, `t2` ou `m3`. Toutefois, le lancement d'une instance requiert non seulement l'accès à l'instance proprement dite, mais également à de nombreuses ressources telles que des images, des paires de clés, des groupes de sécurité, etc. L'ensemble de l'instruction est évalué par rapport à chaque ressource requise pour le lancement de l'instance. Ces ressources supplémentaires n'ont pas la clé de condition `ec2:InstanceType` et, par conséquent, la vérification `StringLike` échoue et l'utilisateur n'est autorisé à lancer *aucun* type d'instance. 

Pour éviter ce problème, utilisez l'opérateur de condition `StringLikeIfExists` à la place. De cette façon, le test n'est effectué que si la clé de condition existe. Cela peut être interprété comme suit : « Si la ressource en cours de vérification est dotée d'une clé de condition `ec2:InstanceType`, l'action peut uniquement être autorisée si la valeur de la clé commence par `t1.`, `t2.` ou `m3.`. Si la ressource en cours de vérification n'est pas dotée de cette clé de condition, peu importe. » L'astérisque (\$1) figurant dans les valeurs des clés de condition, lorsqu'il est utilisé avec l'opérateur de condition `StringLikeIfExists`, est interprété comme un caractère générique pour obtenir des correspondances de chaînes partielles. L'instruction `DescribeActions` inclut les actions requises pour afficher l'instance dans la console.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunInstance",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "StringLikeIfExists": {
          "ec2:InstanceType": [
            "t1.*",
            "t2.*",
            "m3.*"
          ]
        }
      }
    },
    {
      "Sid": "DescribeActions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeVpcs",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – t1.micro</pre>  | Correspondance | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – m2.micro</pre>  | Aucune correspondance | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  |  Aucun `ec2:InstanceType` dans le contexte de la demande.  | Correspondance | 

## Opérateur de condition pour vérifier l'existence de clés de condition
<a name="Conditions_Null"></a>

Utilisez un opérateur de condition `Null` pour vérifier si une clé de condition est absente au moment de l'autorisation. Dans l'instruction de politique, utilisez `true` (la clé n'existe pas ; elle est nulle) ou `false` (la clé existe et sa valeur n'est pas nulle).

Vous ne pouvez pas utiliser une [variable de politique](reference_policies_variables.md) avec l'opérateur de condition `Null`.

Par exemple, vous pouvez utiliser cet opérateur de condition pour déterminer si un utilisateur utilise des informations d’identification temporaires ou ses propres informations d’identification pour effectuer une demande. S'il utilise des informations d'identification temporaires, la clé `aws:TokenIssueTime` existe et elle est dotée d'une valeur. L’exemple suivant illustre une condition qui spécifie que l’utilisateur doit avoir recours à des informations d’identification temporaires (la clé ne peut pas être absente) pour exécuter l’API Amazon EC2.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"ec2:*",
      "Effect":"Allow",
      "Resource":"*",
      "Condition":{"Null":{"aws:TokenIssueTime":"false"}}
  }
}
```

------

# Conditions avec plusieurs clés ou valeurs de contexte
<a name="reference_policies_condition-logic-multiple-context-keys-or-values"></a>

Vous pouvez utiliser l'élément `Condition` d'une politique pour tester plusieurs clés ou plusieurs valeurs de contexte pour une seule clé de contexte dans une demande. Lorsque vous faites une demande AWS, par programmation ou par le biais du AWS Management Console, votre demande inclut des informations sur votre principal, votre fonctionnement, vos balises, etc. Vous pouvez utiliser des clés de contexte pour tester les valeurs des clés de contexte correspondantes dans la demande, avec les clés de contexte spécifiées dans la condition de politique. Pour en savoir plus sur les informations et les données incluses dans une demande, consultez [Contexte de la demande](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext).

**Topics**
+ [Logique d'évaluation pour plusieurs clés ou valeurs de contexte](#reference_policies_multiple-conditions-eval)
+ [Logique d'évaluation des opérateurs de condition de correspondance négative](#reference_policies_multiple-conditions-negated-matching-eval)

## Logique d'évaluation pour plusieurs clés ou valeurs de contexte
<a name="reference_policies_multiple-conditions-eval"></a>

Un élément `Condition` peut contenir plusieurs opérateurs de condition, et chaque opérateur de condition peut également inclure plusieurs paires clé-valeur de contexte. La plupart des clés de contexte prennent en charge l'utilisation de plusieurs valeurs, sauf indication contraire.
+ Si votre instruction de politique dispose de plusieurs [opérateurs de condition](reference_policies_elements_condition_operators.md), ils sont évalués à l'aide d'un opérateur logique `AND`.
+ Si votre instruction de politique dispose de plusieurs clés de contexte attachées à un même opérateur de condition, celles-ci sont évaluées à l'aide d'un opérateur logique `AND`.
+ Si un même opérateur de condition comprend plusieurs valeurs pour une clé de contexte, ces valeurs sont évaluées à l'aide d'un opérateur logique `OR`.
+ Si un même opérateur de condition de correspondance négative comprend plusieurs valeurs pour une clé de contexte, ces valeurs sont évaluées à l'aide d'un opérateur logique `NOR`. 

Toutes les clés de contexte d'un bloc d'éléments de condition doivent être résolues sur true (vrai) pour invoquer l'effet `Allow` ou `Deny` souhaité. La figure suivante illustre la logique d'évaluation d'une condition comportant plusieurs opérateurs de condition et des paires clé-valeur de contexte.

![\[Bloc de conditions illustrant l'application des opérateurs AND et OR à plusieurs valeurs et clés de contexte\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_2.diagram.png)


Par exemple, la politique de compartiment S3 suivante illustre la manière dont la figure précédente est représentée dans une politique. Le bloc de conditions comprend les opérateurs de condition `StringEquals` et `ArnLike`, et les clés de contexte `aws:PrincipalTag` et `aws:PrincipalArn`. Afin d'invoquer l'effet `Allow` ou `Deny` souhaité, toutes les clés de contexte du bloc de conditions doivent être résolues sur true (vrai). L'utilisateur qui fait la demande doit disposer des deux clés de balise du principal, *department* et *role*, qui incluent l'une des valeurs de clés de balise spécifiées dans la politique. De plus, l'ARN principal de l'utilisateur qui fait la demande doit correspondre à l'une des valeurs `aws:PrincipalArn` spécifiées dans la politique pour être évalué comme true (vrai).

------
#### [ JSON ]

****  

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

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn: <br />  arn:aws:iam::222222222222:user/Mary</pre>  |  **Match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Aucune correspondance** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Aucune correspondance** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  |  Aucun `aws:PrincipalTag/role` dans le contexte de la demande. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Aucune correspondance**  | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Aucun `aws:PrincipalTag` dans le contexte de la demande. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Aucune correspondance**  | 

## Logique d'évaluation des opérateurs de condition de correspondance négative
<a name="reference_policies_multiple-conditions-negated-matching-eval"></a>

Certains [opérateurs de condition](reference_policies_elements_condition_operators.md), tels que `StringNotEquals` ou `ArnNotLike`, utilisent la correspondance négative pour comparer les paires clé-valeur de contexte de votre politique aux paires clé-valeur de contexte d'une demande. Lorsque plusieurs valeurs sont spécifiées pour une même clé de contexte dans une politique avec des opérateurs de condition de correspondance négative, les autorisations effectives fonctionnent comme un opérateur logique `NOR`. Dans le cas d'une correspondance négative, un opérateur logique `NOR` ou `NOT OR` renvoie la valeur true (vrai) uniquement si toutes les valeurs sont évaluées comme false (fausses).

La figure suivante illustre la logique d'évaluation d'une condition comportant plusieurs opérateurs de condition et des paires clé-valeur de contexte. La figure inclut un opérateur de condition de correspondance négative pour la clé de contexte 3.

![\[Bloc de conditions illustrant l'application des opérateurs AND et OR à plusieurs valeurs et clés de contexte lorsqu'un opérateur de condition de correspondance négative est utilisé\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_Negated_NOR_2.diagram.png)


Par exemple, la politique de compartiment S3 suivante illustre la manière dont la figure précédente est représentée dans une politique. Le bloc de conditions comprend les opérateurs de condition `StringEquals` et `ArnNotLike`, et les clés de contexte `aws:PrincipalTag` et `aws:PrincipalArn`. Afin d'invoquer l'effet `Allow` ou `Deny` souhaité, toutes les clés de contexte du bloc de conditions doivent être résolues sur true (vrai). L'utilisateur qui fait la demande doit disposer des deux clés de balise du principal, *department* et *role*, qui incluent l'une des valeurs de clés de balise spécifiées dans la politique. Puisque l'opérateur de condition `ArnNotLike` utilise la correspondance négative, l'ARN principal de l'utilisateur qui fait la demande ne doit pas correspondre à l'une des valeurs `aws:PrincipalArn` spécifiées dans la politique pour être évalué comme true (vrai).

------
#### [ JSON ]

****  

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

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki<br /></pre>  |  **Match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Aucune correspondance** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Aucune correspondance** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | >Aucun `aws:PrincipalTag/role` dans le contexte de la demande. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Aucune correspondance** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Aucun `aws:PrincipalTag` dans le contexte de la demande. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Aucune correspondance**  | 

# Clés de contexte à valeur unique ou à valeurs multiples
<a name="reference_policies_condition-single-vs-multi-valued-context-keys"></a>

La différence entre les clés de contexte à valeur unique et à valeurs multiples réside dans le nombre de valeurs dans le [contexte de la requête](intro-structure.md#intro-structure-request), et non du nombre de valeurs dans la condition de la politique.
+ Les clés de contexte de condition à *valeur unique* ont au plus une valeur dans le contexte de la demande. Par exemple, lorsque vous balisez des ressources AWS, chaque balise de ressource est stockée sous forme de paire clé-valeur. Comme une clé de balise de ressource ne peut avoir qu’une seule valeur de balise, [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) est une clé de contexte à valeur unique. N'utilisez pas d'opérateur d'ensemble de conditions avec une clé de contexte à valeur unique.
+ Les clés de contexte de condition *à valeurs multiples* peuvent comporter plusieurs valeurs dans le contexte de la demande. Par exemple, lorsque vous balisez des ressources AWS, vous pouvez inclure plusieurs paires clé-valeur de balise dans une seule demande. Ainsi, [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) est une clé de contexte à valeurs multiples. Les clés de contexte à valeurs multiples nécessitent un opérateur d'ensemble de conditions.

Par exemple, une demande peut provenir d'un seul point de terminaison d'un VPC au maximum. [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) est donc une clé de contexte à valeur unique. Étant donné qu'un service peut avoir plus d'un nom de principal de service qui appartient au service, [aws:PrincipalServiceNamesList](reference_policies_condition-keys.md#condition-keys-principalservicenameslist) est une clé de contexte à valeurs multiples.

**Important**  
La différence entre les clés de contexte à valeur unique et à valeurs multiples dépend du nombre de valeurs dans le contexte de la demande, et non du nombre de valeurs dans la condition de la politique.

## Points clés
<a name="reference_policies_condition-key-points"></a>
+ Les classifications *À valeur unique* et *À valeurs multiples* sont incluses dans la description de chaque clé de contexte de condition, dans le *Type de valeur* de la rubrique [AWS clés contextuelles de condition globale](reference_policies_condition-keys.md).
+ Les clés de contexte à valeurs multiples dans la [référence d’autorisation de service](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) utilisent un préfixe `ArrayOf` suivi du type d’opérateur de condition, tel que `ArrayOfString` ou `ArrayOfARN`, indiquant que la demande peut inclure plusieurs valeurs pour une clé de contexte de condition.
+ Vous pouvez utiliser n’importe quelle clé de contexte à valeur unique disponible en tant que variable de politique, mais vous ne pouvez pas utiliser une clé de contexte à valeurs multiples en tant que variable de politique. Pour de plus amples informations sur les variables de politique, veuillez consulter [Éléments des politiques IAM : variables et balises](reference_policies_variables.md).
+ Lors de l’utilisation de clés de contexte comprenant des paires clé-valeur, il est important de noter que même s’il peut y avoir plusieurs valeurs de clé de balise, chacun `tag-key` ne peut avoir qu’une seule valeur.
  + [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag), [aws:RequestTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-requesttag) et [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) sont des clés de contexte à valeur unique.
  + [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) définit les clés de balise autorisées dans une demande, mais n’inclut pas les valeurs des clés de balise. Comme vous pouvez inclure plusieurs paires clé-valeur dans une demande, `aws:TagKeys` est une clé de contexte à valeurs multiples.
+ Les clés de contexte à valeurs multiples nécessitent un opérateur d'ensemble de conditions. N'utilisez pas d'opérateurs d'ensemble de conditions `ForAllValues` ou `ForAnyValue` avec des clés de contexte à valeur unique. L'utilisation d'opérateurs d'ensembles de conditions avec des clés de contexte à valeur unique peut entraîner des politiques trop permissives.

## Définir les opérateurs pour les clés de contexte à valeurs multiples
<a name="reference_policies_condition-multi-valued-context-keys"></a>

Pour comparer votre clé de contexte de condition à un [contexte de demande](intro-structure.md#intro-structure-request) à valeurs multiples, vous devez utiliser les opérateurs d'ensemble `ForAllValues` ou `ForAnyValue`. Ces opérateurs d'ensembles sont utilisés pour comparer deux ensembles de valeurs, tels que l'ensemble de balises dans une demande et l'ensemble de balises dans une condition de politique.

Ces qualificatifs `ForAllValues` et `ForAnyValue` ajoutent une fonctionnalité d’opération d’ensemble à l’opérateur de condition afin que vous puissiez tester les clés de contexte avec plusieurs valeurs par rapport à plusieurs valeurs de clé de contexte dans une condition de politique. En outre, si vous incluez une clé de contexte à valeurs multiples dans votre politique avec un caractère générique ou une variable, vous devez également utiliser l'[opérateur de condition](reference_policies_elements_condition_operators.md#Conditions_String) `StringLike`. Les valeurs de clé de condition multiples doivent être placées entre crochets, comme dans un [tableau](reference_policies_grammar.md#policies-grammar-json), par exemple, `"Key2":["Value2A", "Value2B"]`.

### ForAllValues
<a name="reference_policies_condition-forallvalues"></a>

Le qualificateur `ForAllValues` vérifie si la valeur de chaque membre du contexte de la demande correspond à l’opérateur de condition qui suit le qualificateur. La condition renvoie la valeur `true` si chaque valeur de clé de contexte de la demande correspond à une valeur de clé de contexte de la politique. Il renvoie également `true` s’il n’y a aucune clé de contexte dans la demande.

**Important**  
Faites preuve de vigilance si vous utilisez `ForAllValues` avec un effet `Allow`, car cela peut être trop permissif si la présence de clés de contexte manquantes dans le contexte de la demande est inattendue. Vous devez toujours inclure l’opérateur de condition [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) dans votre politique avec une valeur `false` pour vérifier si la clé de contexte existe et si sa valeur n’est pas nulle. Pour obtenir un exemple, consultez [Contrôle de l'accès en fonction des clés de balise](access_tags.md#access_tags_control-tag-keys).

#### Exemple d'opérateur ForAllValues d'ensemble
<a name="reference_policies_condition-forallvalues-example"></a>

Dans l'exemple suivant, ForAllValues est utilisé avec aws : TagKeys pour permettre aux utilisateurs de supprimer des balises spécifiques attribuées à une instance EC2. Cette politique permet aux utilisateurs de supprimer uniquement les balises `environment` et `cost-center`. Vous pouvez les supprimer séparément ou ensemble. Les clés de balise dans la demande doivent correspondre exactement aux clés spécifiées dans la politique.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                },
                "Null": {
                    "aws:TagKeys": "false"
                }
            }
        }
    ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Aucune correspondance**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  |  Aucun `aws:TagKeys` dans le contexte de la demande.  |  **Aucune correspondance**  | 

Notez que dans le dernier exemple, le résultat est « Aucune correspondance » car la vérification de la condition Null empêche la correspondance lorsque la clé de contexte est manquante. Une bonne pratique consiste à éviter les politiques trop permissives.

### ForAnyValue
<a name="reference_policies_condition-foranyvalue"></a>

Le qualificateur `ForAnyValue` teste si au moins un membre de l’ensemble des valeurs de clé de contexte de la demande correspond à au moins un membre de l’ensemble des valeurs de clé de contexte de votre condition de politique. La condition renvoie la valeur `true` si l’une des valeurs de clé de contexte de la demande correspond à l’une des valeurs de clé de contexte de la politique. Si aucune clé de contexte correspondante n’est trouvée ou si la clé n’existe pas, la condition renvoie `false`.

**Important**  
Lorsque vous utilisez `ForAnyValue` avec un effet `Deny`, si la clé de contexte n’est pas présente dans la demande, la politique est évaluée comme **Aucune correspondance**. Pour garantir un comportement cohérent, ajoutez une vérification de condition [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) explicite dans votre politique afin de vérifier si la clé de contexte existe. 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).

#### Exemple d'opérateur ForAnyValue d'ensemble
<a name="reference_policies_condition-foranyvalue-example"></a>

Dans l'exemple suivant, ForAnyValue est utilisé avec aws : TagKeys pour permettre aux utilisateurs de supprimer des balises spécifiques attribuées à une instance EC2. Cette politique permet aux utilisateurs de supprimer les balises pour une instance si les clés de balise spécifiées dans la demande incluent `environment` ou `cost-center`. La demande peut inclure des clés de balise supplémentaires en plus de celles spécifiées dans la politique, mais doit inclure au moins une des clés spécifiées pour correspondre à la condition.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                }
            }
        }
    ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – dept</pre>  |  **Aucune correspondance**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  |  Aucun `aws:TagKeys` dans le contexte de la demande.  |  **Aucune correspondance**  | 

# Exemples de politiques de conditions
<a name="reference_policies_condition_examples"></a>

Dans les politiques IAM, vous pouvez spécifier plusieurs valeurs pour les clés de contexte à valeur unique et à valeurs multiples à des fins de comparaison avec le contexte de la demande. L'ensemble suivant d'exemples de politiques montre les conditions de politique avec plusieurs clés et valeurs de contexte.

**Note**  
Si vous souhaitez envoyer une politique à inclure dans ce guide de référence, utilisez le bouton **Commentaire** situé au bas de cette page. Pour accéder à des exemples de politiques IAM basées sur l'identité, veuillez consulter la rubrique [Exemples de politiques basées sur l'identité IAM](access_policies_examples.md).

## Exemples de politiques de conditions : clés de contexte à valeur unique
<a name="reference_policies_condition_example_library_single-valued"></a>
+ Plusieurs blocs de conditions avec des clés de contexte à valeur unique. ([Voir cet exemple](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-1).)
+ Un bloc de conditions avec plusieurs clés et valeurs de contexte à valeur unique. ([Voir cet exemple](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-2).)

## Exemples de politiques de conditions : clés de contexte à valeurs multiples.
<a name="reference_policies_condition_example_library_multi-valued"></a>
+ Politique de refus avec opérateur d'ensemble de conditions `ForAllValues`. ([Voir cet exemple](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-1).)
+ Politique de refus avec opérateur d'ensemble de conditions `ForAnyValue`. ([Voir cet exemple](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-2).)

# Exemples de clés de contexte à valeurs multiples
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

L'ensemble suivant d'exemples de politiques montre comment créer des conditions de politique à l'aide de clés de contexte à valeurs multiples.

## Exemple : politique de refus avec opérateur de jeu de conditions ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

Les exemples suivants montrent comment utiliser une politique basée sur l’identité pour interdire l’utilisation d’actions de balisage IAM lorsque des préfixes de clé de balise spécifiques sont inclus dans la demande. Les valeurs pour [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) incluent un caractère générique (\$1) pour la correspondance partielle des chaînes. La politique inclut l'opérateur d'ensemble `ForAllValues` avec la clé de contexte `aws:TagKeys`, car la clé de contexte de la demande peut inclure plusieurs valeurs. Afin que la clé de contexte `aws:TagKeys` corresponde, chaque valeur du contexte de la demande doit correspondre à au moins une valeur de la politique.

L’opérateur d’ensemble `ForAllValues` renvoie également vrai s’il n’y a aucune clé de contexte dans la demande.

Vous pouvez éviter que des clés de contexte manquantes ou des clés de contexte contenant des valeurs vides ne soient considérées comme vraies en incluant l’opérateur de condition `Null` dans votre politique avec une valeur `false` pour vérifier si la clé de contexte de la demande existe et si sa valeur n’est pas nulle. Pour de plus amples informations, veuillez consulter [Opérateur de condition pour vérifier l'existence de clés de condition](reference_policies_elements_condition_operators.md#Conditions_Null).

**Important**  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.

**Example Refuser une seule valeur de condition de politique pour une clé de contexte à valeurs multiples**  
Dans l’exemple suivant, la politique refuse les demandes dont les valeurs pour `aws:TagKeys` dans la demande n’incluent pas le préfixe **key1**. Le contexte de demande peut comporter plusieurs valeurs, mais en raison de l’opérateur d’ensemble de conditions `ForAllValues`, toutes les valeurs de clé de balise du contexte de demande doivent commencer par le préfixe **key1**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.  


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Aucune correspondance** Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Aucune correspondance** Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key2:audit</pre>  | **Match** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande.  | **Match** | 

**Example Refuser plusieurs valeurs de condition de politique pour une clé de contexte à valeurs multiples**  
Dans l’exemple suivant, la politique refuse les demandes dont les valeurs pour `aws:TagKeys` dans la demande n’incluent pas le préfixe **key1** ou **key2**. Le contexte de demande peut comporter plusieurs valeurs, mais en raison de l’opérateur d’ensemble de conditions `ForAllValues`, toutes les valeurs de clé de balise du contexte de demande doivent commencer par le préfixe **key1** ou **key2**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.  


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Aucune correspondance** Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Aucune correspondance** Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **Aucune correspondance** Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key3:legal</pre>  | **Match**  | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande.  | **Match** | 

## Exemple : politique de refus avec opérateur de jeu de conditions ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

L'exemple de politique basée sur l'identité suivant interdit la création d'instantanés de volumes d'instance EC2 si des instantanés sont balisés à l'aide de l'une des clés de balise spécifiées dans la politique, `environment` ou `webserver`. La politique inclut l'opérateur d'ensemble `ForAnyValue` avec la clé de contexte `aws:TagKeys`, car la clé de contexte de la demande peut inclure plusieurs valeurs. Si votre demande de balisage inclut l'une des valeurs de clés de balise spécifiées dans la politique, la clé de contexte `aws:TagKeys` renvoie la valeur true en invoquant l'effet de la politique de refus.

**Important**  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  |  **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **Aucune correspondance** Peut être autorisé par une autre instruction. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande.  | **Aucune correspondance** Peut être autorisé par une autre instruction.  | 

# Exemples de stratégies de clé de contexte à valeur unique
<a name="reference_policies_condition_examples-single-valued-context-keys"></a>

L'ensemble suivant d'exemples de politiques montre comment créer des conditions de politique à l'aide de clés de contexte à valeur unique.

## Exemple : plusieurs blocs de conditions avec des clés de contexte à valeur unique
<a name="reference_policies_condition_examples-single-valued-context-keys-1"></a>

Lorsqu'un bloc de conditions comporte plusieurs conditions, chacune associée à une seule clé de contexte, toutes les clés de contexte doivent aboutir à la valeur true pour que l'effet `Allow` ou `Deny` souhaité soit invoqué. Lorsque vous utilisez des opérateurs de condition de correspondance négative, la logique d'évaluation de la valeur de la condition est inversée.

L'exemple suivant permet aux utilisateurs de créer des volumes EC2 et d'appliquer des balises à des volumes pendant la création de volume. Le contexte de la demande doit inclure une valeur pour la clé de contexte `aws:RequestTag/project` et la valeur de la clé de contexte `aws:ResourceTag/environment` peut être n'importe quoi, sauf la production.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/project": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

Le contexte de demande doit inclure une valeur de balise de projet et ne peut pas être créé pour qu'une ressource de production puisse invoquer l'effet `Allow`. Le volume EC2 suivant a été créé avec succès, car le nom du projet est `Feature3` avec une balise de ressource `QA`.

```
aws ec2 create-volume \
    --availability-zone us-east-1a \
    --volume-type gp2 \
    --size 80 \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=project,Value=Feature3},{Key=environment,Value=QA}]'
```

## Exemple : un bloc de conditions avec plusieurs clés et valeurs de contexte à valeur unique
<a name="reference_policies_condition_examples-single-valued-context-keys-2"></a>

Lorsqu'un bloc de conditions contient plusieurs clés de contexte et que chaque clé de contexte possède plusieurs valeurs, chaque clé de contexte doit aboutir à true pour au moins une valeur de clé afin que l'effet `Allow` ou `Deny` souhaité soit invoqué. Lorsque vous utilisez des opérateurs de condition de correspondance négative, la logique d'évaluation de la valeur de clé de contexte est inversée.

L'exemple suivant permet aux utilisateurs de démarrer et d'exécuter des tâches sur des clusters Amazon Elastic Container Service.
+ Le contexte de la demande doit inclure `production` **OR** `prod-backup` pour la clé de contexte `aws:RequestTag/environment`**AND**.
+ La clé de contexte `ecs:cluster` garantit que les tâches sont exécutées sur les clusters ECS d'ARN `default1` **OR** `default2`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunTask",
        "ecs:StartTask"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": [
            "production",
            "prod-backup"
          ]
        },
        "ArnEquals": {
          "ecs:cluster": [
            "arn:aws:ecs:us-east-1:111122223333:cluster/default1",
            "arn:aws:ecs:us-east-1:111122223333:cluster/default2"
          ]
        }
      }
    }
  ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande.


| Condition de politique | Contexte de la requête | Résultat | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default1</pre>  | Correspondance | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:prod-backup<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Correspondance | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: webserver:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Aucune correspondance | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  |  Aucun `aws:RequestTag` dans le contexte de la demande. <pre>ecs:cluster<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Aucune correspondance | 

# Éléments des politiques IAM : variables et balises
<a name="reference_policies_variables"></a>

Utilisez des variables de stratégie Gestion des identités et des accès AWS (IAM) comme espaces réservés lorsque vous ne connaissez pas la valeur exacte d'une clé de ressource ou de condition lorsque vous rédigez la politique.

**Note**  
Si vous AWS ne parvenez pas à résoudre une variable, l'intégralité de l'instruction peut être invalide. Par exemple, si vous utilisez la variable `aws:TokenIssueTime`, elle est résolue en une valeur uniquement lorsque le demandeur s'est authentifié à l'aide des informations d'identification temporaires (un rôle IAM). Pour empêcher les variables de provoquer des instructions non valides, utilisez le[... IfExists opérateur de condition.](reference_policies_elements_condition_operators.md#Conditions_IfExists)

**Topics**
+ [Introduction](#policy-vars-intro)
+ [Utilisation de variables dans les politiques](#policy-vars-using-variables)
+ [Les balises comme variables de la politique](#policy-vars-tags)
+ [Éléments dans lesquels vous pouvez utiliser des variables de politique](#policy-vars-wheretouse)
+ [Variables de politique sans valeur](#policy-vars-no-value)
+ [Informations de demande que vous pouvez utiliser dans les variables de politique](#policy-vars-infotouse)
+ [Spécification des valeurs par défaut](#policy-vars-default-values)
+ [Pour plus d’informations](#policy-vars-formoreinfo)

## Introduction
<a name="policy-vars-intro"></a>

Dans les politiques IAM, de nombreuses actions vous permettent de fournir un nom pour des ressources spécifiques auxquelles vous voulez contrôler l'accès. Par exemple, la politique suivante permet aux utilisateurs d'afficher, de lire et d'écrire les objets dans le compartiment S3 `amzn-s3-demo-bucket` pour les projets `marketing`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["marketing/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/marketing/*"]
    }
  ]
}
```

------

Dans certains cas, vous ne connaissez pas le nom exact de la ressource lorsque vous écrivez la politique. Vous souhaiterez peut-être généraliser la politique de façon à ce qu'elle fonctionne pour de nombreux utilisateurs sans avoir à faire une copie unique de celle-ci pour chaque utilisateur. Au lieu de créer une politique distincte pour chaque utilisateur, nous vous recommandons de créer une politique de groupe unique qui s'applique à tous les utilisateurs du groupe. 

## Utilisation de variables dans les politiques
<a name="policy-vars-using-variables"></a>

Vous pouvez définir des valeurs dynamiques dans des politiques en utilisant des *variables de politique* qui définissent des espaces réservés dans une politique.

Les variables sont marquées à l'aide d'un préfixe **`$`** suivi d'une paire d'accolades (**`{ }`**) qui incluent le nom de variable de la valeur issue de la demande.

Lorsque la politique est évaluée, les variables de politique sont remplacées par les valeurs provenant des clés contextuelles conditionnelles passées dans la requête. Les variables peuvent être utilisées dans les [politiques basées sur l'identité, les politiques de ressources, les politiques de contrôle des services, les politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) et les [politiques de point de terminaison d’un VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html). Les politiques basées sur l'identité utilisées comme limites d'autorisations prennent également en charge les variables de politique. 

Les clés de contexte des conditions globales peuvent être utilisées comme variables dans les demandes entre les AWS services. Les clés de condition spécifiques à un service peuvent également être utilisées comme variables lors de l'interaction avec des ressources AWS , mais elles ne sont disponibles que lorsque des requêtes sont effectuées auprès de ressources qui les prennent en charge. Pour obtenir la liste des clés contextuelles disponibles pour chaque AWS service et ressource, consultez la [https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html). Dans certains cas, vous ne pouvez pas renseigner les clés contextuelles des conditions globales avec une valeur. Pour en savoir plus sur chaque clé, consultez [Clés de contexte de condition globale AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**Important**  
Les noms des clés ne sont pas sensibles à la casse. Par exemple, `aws:CurrentTime` équivaut à `AWS:currenttime`.
Vous pouvez utiliser n'importe quelle clé de condition à valeur unique comme variable. Vous ne pouvez pas utiliser de clé de condition à valeurs multiples en tant que variable.

L'exemple suivant illustre une politique pour un rôle ou un utilisateur IAM qui remplace un nom de ressource spécifique par une variable de politique. Vous pouvez réutiliser cette politique en tirant parti de la clé de condition `aws:PrincipalTag`. Lorsque cette politique est évaluée, `${aws:PrincipalTag/team}` autorise les actions uniquement si le nom du compartiment se termine par un nom d'équipe issu de la balise de principal `team`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${aws:PrincipalTag/team}/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/team}/*"]
    }
  ]
}
```

------

La variable est marquée à l'aide d'un préfixe `$` suivi d'une paire d'accolades (`{ }`). À l'intérieur des caractères `${ }`, vous pouvez inclure le nom de la valeur de la demande que vous souhaitez utiliser dans la politique. Les valeurs disponibles sont détaillées plus loin sur cette page.

Pour obtenir la liste détaillé de cette clé de condition globale, consultez [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag) dans la liste des clés de condition globales.

**Note**  
Pour utiliser des variables de politique, vous devez inclure l'élément `Version` dans une instruction et la version doit être définie sur une version prenant en charge de telles variables. Les variables ont été introduites dans la version `2012-10-17`. Les versions antérieures du langage de politique ne prennent pas en charge les variables de politique. Si vous n'incluez pas l'élément `Version` et que la valeur correspond à une date de version appropriée, les variables telles que `${aws:username}` sont traitées comme des chaînes littérales dans la politique.   
Un élément de politique `Version` varie d'une version de politique. L'élément de politique `Version` est utilisé dans une politique pour définir la version de la langue de la politique. En revanche, une version de politique est créée lorsque vous apportez des modifications à une politique gérée par le client dans IAM. La politique modifiée ne remplace pas la politique existante. À la place, IAM crée une nouvelle version de la politique gérée. Pour en savoir plus sur l'élément de politique `Version`, consultez [Éléments de politique JSON IAM : Version](reference_policies_elements_version.md). Pour en savoir plus sur les versions de politiques, consultez [Gestion des versions des politiques IAM](access_policies_managed-versioning.md).

Une politique qui permet à un principal d'obtenir des objets à partir du chemin /David d'un compartiment S3 ressemble à ceci :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/David/*"
      ]
    }
  ]
}
```

------

Si cette politique est attaché à l'utilisateur `David`, celui-ci obtient les objets de son propre compartiment S3, mais il vous faudra créer une politique distincte pour chaque utilisateur incluant le nom utilisateur. Vous devez ensuite attacher chaque politique aux utilisateurs individuels.

À l'aide d'une variable de politique, vous pouvez créer des politiques réutilisables. La politique suivante permet à un utilisateur d'obtenir des objets à partir d'un compartiment Amazon S3 si la valeur de la clé de balise `aws:PrincipalTag` correspond à la valeur de la clé de balise `owner` transmise dans la demande. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "AllowUnlessOwnedBySomeoneElse",
    "Effect": "Allow",
    "Action": ["s3:GetObject"],    
    "Resource": ["*"],
    "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/owner": "${aws:PrincipalTag/owner}"
        }
      }
    }
  ]
}
```

------

Lorsque vous utilisez une variable de politique à la place d'un utilisateur, il n'est pas nécessaire d'avoir une politique distincte pour chaque utilisateur. Dans l'exemple suivant, la politique est attachée à un rôle IAM endossé par les Product Managers à l'aide d'informations d'identification de sécurité temporaires. Lorsqu'un utilisateur demande à ajouter un objet Amazon S3, IAM remplace la valeur de balise `dept` de la demande actuelle pour la variable `${aws:PrincipalTag}`, puis évalue la politique. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOnlyDeptS3Prefix",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/dept}/*"
            ]
        }
    ]
}
```

------

## Les balises comme variables de la politique
<a name="policy-vars-tags"></a>

Dans certains AWS services, vous pouvez associer vos propres attributs personnalisés aux ressources créées par ces services. Par exemple, vous pouvez appliquer des balises aux compartiments Amazon S3 ou aux utilisateurs IAM. Ces balises sont des paires clé-valeur. Vous définissez le nom de clé de balise et la valeur qui est associée à ce nom de clé. Par exemple, vous pouvez créer une balise avec une clé **department** et une valeur **Human Resources**. Pour plus d'informations sur le balisage des entités IAM, consultez [Tags pour les Gestion des identités et des accès AWS ressources](id_tags.md). Pour plus d'informations sur le balisage des ressources créées par d'autres services AWS , reportez-vous à la documentation de ce service. Pour plus d'informations sur l'utilisation de Tag Editor, consultez [Utilisation de Tag Editor](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) dans le *Guide de l'utilisateur AWS Management Console *.

Vous pouvez baliser des ressources IAM pour simplifier la découverte, l'organisation et le suivi de vos ressources IAM. Vous pouvez aussi baliser les identités IAM pour contrôler l'accès aux ressources ou au balisage lui-même. Pour en savoir plus sur l'utilisation des balises pour contrôler l'accès, consultez [Contrôle de l'accès aux et pour les utilisateurs et rôles IAM à l'aide de balises](access_iam-tags.md). 

## Éléments dans lesquels vous pouvez utiliser des variables de politique
<a name="policy-vars-wheretouse"></a>

 Vous pouvez utiliser des variables de politique dans l'élément `Resource` et les comparaisons de chaîne de l'élément `Condition`.

### Élément de ressource
<a name="policy-vars-resourceelement"></a>

Vous pouvez utiliser une variable de politique dans l'élément `Resource`, mais uniquement dans la partie ressource de l'ARN. Cette partie de l'ARN apparaît après le cinquième deux-points (:). Vous ne pouvez pas utiliser une variable pour remplacer des parties de l'ARN avant le cinquième deux-points, par exemple le service ou le compte. Pour de plus amples informations sur le format ARN, veuillez consulter [IAM ARNs](reference_identifiers.md#identifiers-arns).

Pour remplacer une partie d'un ARN avec une valeur de balise, encadrez le préfixe et le nom de clé avec `${ }`. Par exemple, l'élément de ressource suivant fait référence à un seul compartiment qui est nommé à l'identique de la valeur de la balise du service de l'utilisateur demandeur.

`"Resource": ["arn:aws::s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/department}"]`

De nombreuses AWS ressources ARNs contiennent un nom créé par l'utilisateur. La politique IAM suivante garantit que seuls les utilisateurs concernés dont les valeurs de balises access-project, access-application et access-environment sont correspondantes peuvent modifier leurs ressources. En outre, en utilisant le [caractère générique \$1](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), ils peuvent autoriser des suffixes de nom de ressources personnalisés. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessBasedOnArnMatching",
      "Effect": "Allow",
      "Action": [
        "sns:CreateTopic",
        "sns:DeleteTopic"],      
      "Resource": ["arn:aws:sns:*:*:${aws:PrincipalTag/access-project}-${aws:PrincipalTag/access-application}-${aws:PrincipalTag/access-environment}-*"
      ]
    }
  ]
}
```

------

### Élément de condition
<a name="policy-vars-conditionelement"></a>

Vous pouvez utiliser une variable de politique pour les valeurs `Condition` dans n'importe quelle condition impliquant les opérateurs de chaîne ou les opérateurs ARN. Les opérateurs de chaîne incluent `StringEquals`, `StringLike` et `StringNotLike`. Les opérateurs ARN incluent `ArnEquals` et `ArnLike`. Vous ne pouvez pas utiliser une variable de politique avec d'autres opérateurs, tels que les opérateurs `Numeric`, `Date`, `Boolean`, `Binary`, `IP Address` ou `Null`. Pour de plus amples informations sur les opérateurs de condition, veuillez consulter [Éléments de politique JSON IAM : Opérateurs de condition](reference_policies_elements_condition_operators.md).

Lorsque vous faites référence à une balise dans une expression de l'élément `Condition`, utilisez le préfixe et le nom de clé pertinents comme clé de condition. Utilisez ensuite la valeur que vous souhaitez tester dans la valeur de condition.

Par exemple, l'exemple de politique suivant autorise l'accès complet aux utilisateurs, mais uniquement si la balise `costCenter` est attachée à l'utilisateur. La balise doit également avoir la valeur `12345` ou `67890`. Si la balise n'a pas de valeur, ou toute autre valeur, la demande échoue.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:*user*"
       ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:ResourceTag/costCenter": [ "12345", "67890" ]
        }
      }
    }
  ]
}
```

------

## Variables de politique sans valeur
<a name="policy-vars-no-value"></a>

Lorsque les variables de politique font référence à une clé contextuelle de condition qui n'a aucune valeur ou qui n'est pas présente dans le contexte d'autorisation d'une requête, la valeur est effectivement nulle. Il n'existe pas de valeur égale ou similaire. Les clés contextuelles de condition peuvent ne pas être présentes dans le contexte d'autorisation lorsque :
+ Vous utilisez des clés contextuelles de condition spécifiques au service dans les requêtes adressées à des ressources qui ne prennent pas en charge cette clé de condition.
+ Les balises sur les principaux, les sessions, les ressources ou les demandes IAM ne sont pas présentes.
+ Les autres cas répertoriés pour chaque condition globale sont incluses dans le contexte [AWS clés contextuelles de condition globale](reference_policies_condition-keys.md).

Lorsque vous utilisez une variable sans valeur dans l'élément de condition d'une politique IAM, [Éléments de politique JSON IAM : Opérateurs de condition](reference_policies_elements_condition_operators.md) comme `StringEquals` ou `StringLike` ne correspondent pas et la déclaration de politique ne prend pas effet.

Les opérateurs de condition inversés comme `StringNotEquals` ou `StringNotLike` correspondent à une valeur nulle, car la valeur de la clé conditionnelle par rapport à laquelle ils testent n'est pas égale ou similaire à la valeur effectivement nulle.

Dans l'exemple suivant, `aws:principaltag/Team` doit être égal à `s3:ExistingObjectTag/Team` pour autoriser l'accès. L'accès est explicitement refusé lorsque `aws:principaltag/Team` n'est pas défini. Si une variable qui n'a aucune valeur dans le contexte d'autorisation est utilisée dans le cadre de l'élément `Resource` or `NotResource` d'une politique, la ressource qui inclut une variable de politique sans valeur ne correspondra à aucune ressource.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
    "Effect": "Deny", 
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:ExistingObjectTag/Team": "${aws:PrincipalTag/Team}"
       }
      }
    }
  ]
}
```

------

## Informations de demande que vous pouvez utiliser dans les variables de politique
<a name="policy-vars-infotouse"></a>

 Vous pouvez utiliser l'élément `Condition` d'une politique JSON pour comparer des clés dans le [contexte de demande](reference_policies_evaluation-logic_policy-eval-reqcontext.md) avec les valeurs de clé spécifiées dans votre politique. Lorsque vous utilisez une variable de politique, AWS substitue une valeur de la clé de contexte de demande à la place de la variable dans votre politique.

### Valeurs de la clé du principal
<a name="principaltable"></a>

Les valeurs de `aws:username`, `aws:userid` et `aws:PrincipalType` dépendent du type de principal ayant initialisé la demande. Par exemple, la demande peut être effectuée à l'aide des informations d'identification d'un utilisateur IAM, d'un rôle IAM ou de l' Utilisateur racine d'un compte AWS. La de tableaux suivante affiche les valeurs de ces clés pour différents types de principaux. 


****  

| Principal | `aws:username` | `aws:userid` | `aws:PrincipalType` | 
| --- | --- | --- | --- | 
| Utilisateur racine d'un compte AWS | (absent) | Compte AWS ID | Account | 
| Utilisateur IAM | IAM-user-name | [ID unique](reference_identifiers.md#identifiers-unique-ids) | User | 
| AWS STS utilisateur principal fédéré | (absent) | account:caller-specified-name | FederatedUser | 
| Principal fédéré OIDC Pour plus d'informations sur les clés de politique disponibles lors de l'utilisation de la fédération d'identité web, consultez [Clés disponibles pour la AWS fédération OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).  | (absent) |   *role-id*:*caller-specified-role-name*  où `role-id` est l'[identifiant unique du rôle](reference_identifiers.md#identifiers-unique-ids) et caller-specified-role-name est spécifié par le [RoleSessionName paramètre](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html#API_AssumeRoleWithWebIdentity_RequestParameters) passé à la AssumeRoleWithWebIdentity demande.  | AssumedRole | 
| Principal fédéré SAML Pour plus d'informations sur les clés de politique disponibles lors de l'utilisation de la fédération SAML, consultez [Identification unique des utilisateurs dans la fédération SAML](id_roles_providers_saml.md#CreatingSAML-userid).  | (absent) |  *role-id*:*caller-specified-role-name* où `role-id` est l'[identifiant unique du rôle](reference_identifiers.md#identifiers-unique-ids) et caller-specified-role-name est spécifié par l'élément Attribute avec l'[attribut Name](id_roles_providers_create_saml_assertions.md) défini sur https://aws.amazon.com/SAML/ attributes/RoleSessionName.  | AssumedRole | 
| Rôle endossé | (absent) |  *role-id*:*caller-specified-role-name* où `role-id` est l'[identifiant unique du rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) et caller-specified-role-name est spécifié par le [RoleSessionName paramètre](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters) passé à la AssumeRole demande.  | AssumedRole | 
| Rôle affecté à une instance Amazon EC2 | (absent) |  *role-id*:*ec2-instance-id* où `role-id` est [l'ID unique du rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) et ec2-instance-id est l'[identifiant unique de l'instance EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).  | AssumedRole | 
| Appelant anonyme (Amazon SQS, Amazon SNS et Amazon S3 uniquement) | (absent) | anonymous | Anonymous | 

Pour les éléments de cette table, notez les points suivants :
+ *absent* signifie que la valeur ne figure pas dans les informations de la demande en cours et par conséquent, toute tentative de correspondance échoue et rend l'instruction non valide. 
+ *role-id*est un identifiant unique attribué à chaque rôle lors de sa création. Vous pouvez afficher l'ID du rôle à l'aide de la AWS CLI commande suivante : `aws iam get-role --role-name rolename`
+ *caller-specified-name*et *caller-specified-role-name* sont des noms transmis par le processus appelant (comme une application ou un service) lorsqu'il effectue un appel pour obtenir des informations d'identification temporaires.
+ *ec2-instance-id*est une valeur attribuée à l'instance lors de son lancement et qui apparaît sur la page **Instances** de la console Amazon EC2. Vous pouvez également afficher l'ID de l'instance en exécutant la AWS CLI commande suivante : `aws ec2 describe-instances`

### Informations relatives aux principaux fédérés disponibles dans les demandes
<a name="policy-vars-infoWIF"></a>

Les principaux fédérés sont des utilisateurs authentifiés à l’aide d’un système autre qu’IAM. Par exemple, une entreprise peut avoir une application à utiliser en interne qui passe des appels à AWS. L'attribution d'une identité IAM à chaque utilisateur de l'entreprise qui utilise l'application peut ne pas convenir. Au lieu de cela, l'entreprise peut utiliser une application proxy (intermédiaire) qui dispose d'une identité IAM unique ou un fournisseur d'identité (IdP) SAML. L'application proxy ou l'IdP SAML authentifie les utilisateurs individuels via le réseau d'entreprise. Une application proxy peut ensuite utiliser son identité IAM pour obtenir des informations d'identification de sécurité temporaires pour des utilisateurs individuels. Un IdP SAML peut en effet échanger des informations d'identité contre des informations AWS de sécurité temporaires. Les informations d'identification temporaires peuvent ensuite être utilisées pour accéder aux AWS ressources. 

De même, vous pouvez créer une application pour appareil mobile qui doit accéder aux ressources AWS . Dans ce cas, vous pouvez utiliser la *fédération OIDC* dans laquelle l’application authentifie l’utilisateur à l’aide d’un fournisseur d’identité connu tel que Login with Amazon, Amazon Cognito, Facebook ou Google. L'application peut ensuite utiliser les informations d'authentification de l'utilisateur à partir de ces fournisseurs pour obtenir les informations d'identification de sécurité temporaires permettant d'accéder aux ressources AWS . 

La méthode recommandée pour utiliser la fédération OIDC est de tirer parti d'Amazon Cognito et AWS du mobile. SDKs Pour plus d’informations, consultez les ressources suivantes :
+ [Guide de l'utilisateur d'Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 
+ [Scénarios courants d'informations d'identification temporaires](id_credentials_temp.md#sts-introduction)

### Caractères spéciaux
<a name="policy-vars-specialchars"></a>

Quelques variables de politique prédéfinies spéciales sont dotées de valeurs fixes qui vous permettent de représenter des caractères qui, sinon, ont une signification spéciale. Si ces caractères spéciaux font partie de la chaîne que vous essayez de faire correspondre et qu'ils sont insérés littéralement, ils sont susceptibles d'être mal interprétés. Par exemple, un astérisque (\$1) inséré dans la chaîne sera interprété comme un caractère générique, ce qui correspond à n'importe quel caractère, au lieu d'un caractère \$1 littéral. Dans ces cas, vous pouvez utiliser les variables de politique prédéfinies suivantes :
+ **\$1\$1\$1\$1** – permet d'obtenir le caractère \$1 (astérisque).
+ **\$1\$1?\$1** – permet d'obtenir le caractère ? (point d'interrogation).
+ **\$1\$1\$1\$1** – permet d'obtenir le caractère \$1 (dollar).

Ces variables de politique prédéfinies peuvent être utilisées dans n'importe quelle chaîne acceptant les variables de politique standard.

## Spécification des valeurs par défaut
<a name="policy-vars-default-values"></a>

Pour ajouter une valeur par défaut à une variable, entourez la valeur par défaut de guillemets simples (`' '`), puis séparez le texte de la variable et la valeur par défaut par une virgule et une espace (`, `).

Par exemple, si un principal est labelisé avec l’interface `team=yellow`, il peut accéder au compartiment Amazon S3 `ExampleCorp's` nommé `amzn-s3-demo-bucket-yellow`. Une politique avec cette ressource permet aux membres de l'équipe d'accéder à leur compartiment d'équipe, mais pas à ceux des autres équipes. Pour les utilisateurs sans identifications d'équipe, il définit une valeur par défaut de l’interface `company-wide` pour le nom du compartiment. Ces utilisateurs peuvent accéder uniquement au compartiment `amzn-s3-demo-bucket-company-wide` où ils peuvent afficher des informations générales, telles que des instructions pour rejoindre une équipe.

```
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-${aws:PrincipalTag/team, 'company-wide'}"
```

## Pour plus d’informations
<a name="policy-vars-formoreinfo"></a>

Pour plus d'informations sur les politiques, consultez les ressources suivantes : 
+  [Politiques et autorisations dans Gestion des identités et des accès AWS](access_policies.md) 
+  [Exemples de politiques basées sur l'identité IAM](access_policies_examples.md) 
+  [Référence de l’élément de politique JSON IAM](reference_policies_elements.md) 
+  [Logique d'évaluation de politiques](reference_policies_evaluation-logic.md) 
+  [Fédération OIDC](id_roles_providers_oidc.md)

# Éléments de politique JSON IAM : Types de données pris en charge
<a name="reference_policies_elements_datatypes"></a>

Cette section répertorie les types de données pris en charge lors de la spécification de valeurs dans des politiques JSON. Le langage de politique ne prend pas en charge tous les types d'éléments de politique ; reportez-vous aux sections précédentes pour plus d'informations sur chaque élément.
+ Chaînes
+ Nombres (Ints et Floats)
+ Booléen
+ Null
+ Lists
+ Mappages
+ Structs (simples mappages intégrés)

Le tableau suivant mappe chaque type de données à la sérialisation. Notez que toutes les politiques doivent utiliser le format UTF-8. Pour plus d'informations sur les types de données JSON, reportez-vous à [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627).


****  

| Type | JSON | 
| --- | --- | 
|  String  |  String  | 
|  Entier  |  Number  | 
|  Float  |  Number  | 
|  Booléen  |  true false  | 
|  Null  |  null  | 
|  Date  |  Chaîne conforme au [profil W3C d'ISO 8601](http://www.w3.org/TR/NOTE-datetime)  | 
|  IpAddress  |  Chaîne conforme à [RFC 4632](https://datatracker.ietf.org/doc/html/rfc4632)  | 
|  List  |  Tableau  | 
|  Objet  |  Objet  | 

# Logique d'évaluation de politiques
<a name="reference_policies_evaluation-logic"></a>

Lorsqu'un principal essaie d'utiliser l' AWS Management Console AWS API, ou le AWS CLI, ce principal envoie une *demande* à AWS. Lorsqu'un AWS service reçoit la demande, AWS effectue plusieurs étapes pour déterminer s'il convient d'autoriser ou de refuser la demande.

1. **Authentification** : authentifie d' AWS abord le principal qui fait la demande, si nécessaire. Cette étape n'est pas nécessaire pour quelques services, tels qu'Amazon S3, qui autorisent certaines demandes provenant d'utilisateurs anonymes.

1. **[Traitement du contexte de la demande](reference_policies_evaluation-logic_policy-eval-reqcontext.md)**— AWS traite les informations recueillies dans la demande afin de déterminer quelles politiques s'appliquent à la demande.

1. **[Comment la logique du code d' AWS application évalue les demandes d'autorisation ou de refus d'accès](reference_policies_evaluation-logic_policy-eval-denyallow.md)**— AWS évalue tous les types de politiques et l'ordre des politiques influe sur la façon dont elles sont évaluées. AWS traite ensuite les politiques en fonction du contexte de la demande pour déterminer si la demande est autorisée ou refusée.

## Évaluation des politiques basées sur l'identité avec des politiques basées sur des ressources
<a name="policy-eval-basics-id-rdp"></a>

Les politiques basées sur l'identité et sur les ressources accordent des autorisations aux identités ou ressources auxquelles elles sont associées. Lorsqu'une entité IAM (utilisateur ou rôle) demande l'accès à une ressource au sein du même compte, AWS elle évalue toutes les autorisations accordées par les politiques basées sur l'identité et les ressources. Les autorisations résultantes sont l’union des autorisations des deux types. Si une action est autorisée par une stratégie basée sur l'identité, une politique basée sur les ressources, ou les deux, l'action est autorisée. AWS Un refus explicite dans l'une ou l'autre de ces stratégies remplace l'autorisation.

![\[Évaluation des politiques basées sur l'identité et des politiques basées sur des ressources\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/permissions_policies_effective.png)


## Évaluation des politiques basées sur l'identité avec des limites d'autorisations
<a name="policy-eval-basics-id-bound"></a>

Lors de l' AWS évaluation des politiques basées sur l'identité et des limites d'autorisations pour un utilisateur, les autorisations qui en résultent sont à l'intersection des deux catégories. En d'autres termes, lorsque vous ajoutez une limite d'autorisations à un utilisateur avec les politiques basées sur l'identité existantes, vous pouvez réduire les actions exécutées par l'utilisateur. Sinon, lorsque vous supprimez une limite d'autorisations à partir d'un utilisateur, vous pouvez augmenter les actions qu'il peut exécuter. Un refus explicite dans l'une ou l'autre de ces stratégies remplace l'autorisation. Pour afficher des informations sur la façon dont les autres types de politique sont évalués avec des limites d'autorisations, consultez [Évaluation des autorisations effectives avec limites](access_policies_boundaries.md#access_policies_boundaries-eval-logic).

![\[Évaluation des stratégies basées sur l'identité et des limites d'autorisations\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/permissions_boundary.png)


## Évaluation des politiques basées sur l'identité avec ou AWS Organizations SCPs RCPs
<a name="policy-eval-basics-id-scp"></a>

Lorsqu'un utilisateur appartient à un compte membre d'une organisation et accède à une ressource pour laquelle aucune politique basée sur les ressources n'est configurée, les autorisations qui en résultent se situent à l'intersection des politiques de l'utilisateur, des politiques de contrôle des services (SCPs) et de la politique de contrôle des ressources (RCP). Cela signifie qu’une action doit être autorisée par les trois types de politique. Un refus explicite dans la politique basée sur l’identité, une SCP ou une RCP annule l’autorisation.

![\[Évaluation des politiques basées sur l'identité et/ou SCPs RCPs\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/permissions_scp-idp.png)


Vous pouvez savoir [si votre compte est membre d'une organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account) dans AWS Organizations. Les membres de l’organisation pourraient être affectés par une SCP ou une RCP. Pour afficher ces données à l'aide de la AWS CLI commande ou de l'opération AWS API, vous devez disposer des autorisations nécessaires à l'`organizations:DescribeOrganization`action pour votre AWS Organizations entité. Vous devez disposer d'autorisations supplémentaires pour effectuer l'opération dans la AWS Organizations console. Pour savoir si un SCP ou un RCP refuse l'accès à une demande spécifique, ou pour modifier vos autorisations effectives, contactez votre AWS Organizations administrateur.

# Traitement du contexte de la demande
<a name="reference_policies_evaluation-logic_policy-eval-reqcontext"></a>

*Lorsqu'il AWS évalue et autorise une demande, il assemble les informations de la demande dans un contexte de demande.* Le contexte de la demande contient toutes les informations pouvant être utilisées dans l’évaluation de la politique.
+ **Principal** : l’utilisateur, le rôle ou le principal utilisateur fédéré à l’origine de la demande. Les informations sur le principal incluent les politiques associées à ce dernier. 
+ **Actions** : une ou plusieurs actions que le principal souhaite exécuter.
+ **Ressources** : un ou plusieurs objets de AWS ressources sur lesquels les actions ou opérations sont effectuées.
+ **Données de ressources** : données liées à la ressource qui est demandée. Par exemple, ces informations peuvent inclure le nom d'une table DynamoDB ou une balise sur une instance Amazon EC2.
+ **Données d'environnement** : informations sur l'adresse IP, l'agent utilisateur, le statut SSL ou le moment de la journée.

Ces informations sont comparées aux politiques applicables afin de déterminer s’il convient d’accepter ou de refuser la demande. Vous pouvez organiser ces informations de propriété à l'aide du modèle PARC (**Principal**, **Action**, **Resource**, and **Condition**) afin de mieux comprendre comment AWS les politiques sont évaluées.

## Comprendre le modèle PARC
<a name="reqcontext_parc-model"></a>

Le modèle PARC représente le contexte de la demande sur la base des quatre éléments JSON du langage de politique :
+ [Principal](reference_policies_elements_principal.md) : l’entité à l’origine de la demande. Un principal représente un utilisateur humain ou une charge de travail programmatique qui peut être authentifié et autorisé à effectuer des actions dans Comptes AWS.
+ [Action](reference_policies_elements_action.md) : l’opération en cours d’exécution. Souvent, l’action sera mappée à une action API.
+ [Resource](reference_policies_elements_resource.md) ; la ressource AWS sur laquelle l’action est effectuée.
+ [Condition](reference_policies_elements_condition.md) : contraintes supplémentaires qui doivent être respectées pour que la demande soit acceptée.

Voici un exemple illustrant comment le modèle PARC pourrait représenter un contexte de demande :

```
Principal: AIDA123456789EXAMPLE
Action: s3:CreateBucket
Resource: arn:aws:s3:::amzn-s3-demo-bucket1
Context:
- aws:UserId=AIDA123456789EXAMPLE:BobsSession
- aws:PrincipalAccount=123456789012
- aws:PrincipalOrgId=o-example
- aws:PrincipalARN=arn:aws:iam::AIDA123456789EXAMPLE:role/HR
- aws:MultiFactorAuthPresent=true
- aws:CurrentTime=...
- aws:EpochTime=...
- aws:SourceIp=...
- aws:PrincipalTag/dept=123
- aws:PrincipalTag/project=blue
- aws:RequestTag/dept=123
```

## Importance du contexte de la demande
<a name="reqcontext_importance"></a>

Il est essentiel de comprendre le contexte de la demande et son interaction avec l’évaluation des politiques pour :
+ Résoudre les problèmes d’accès 
+ Concevoir des politiques efficaces et sécurisées
+ Comprendre l’étendue complète des autorisations accordées par une politique
+ Prédire le résultat des évaluations des politiques dans différents scénarios

En visualisant le contexte de la demande à l'aide du modèle PARC, vous pouvez plus facilement comprendre comment sont prises les AWS décisions d'autorisation et concevoir vos politiques de manière plus efficace.

## Comment AWS utilise le contexte de la demande
<a name="reqcontext_usage"></a>

Lors de l'évaluation des politiques, AWS compare les informations contenues dans le contexte de la demande avec les informations spécifiées dans toutes les politiques applicables. Cela inclut les politiques basées sur l'identité, les politiques basées sur les ressources, les limites des autorisations IAM, les Organizations, les Organizations et les politiques de SCPs session. RCPs

Pour chaque type de politique, AWS utilise le contexte de la demande pour vérifier :
+ Si la politique s’applique à la demande en fonction du principal.
+ Si l’action demandée est autorisée sur la ressource spécifiée.
+ Si les conditions spécifiées dans la politique sont remplies par le contexte de la demande.

La manière dont AWS les politiques sont évaluées dépend des types de politiques qui s'appliquent au contexte de la demande. Ces types de politique sont utilisables dans un seul Compte AWS. Pour plus d'informations sur ces types de politique, consultez [Politiques et autorisations dans Gestion des identités et des accès AWS](access_policies.md). Pour savoir comment AWS évalue les politiques d'accès entre comptes, voir. [Logique d’évaluation des politiques intercomptes](reference_policies_evaluation-logic-cross-account.md)
+ **AWS Organizations politiques de contrôle des ressources (RCPs)** : AWS Organizations RCPs spécifiez les autorisations maximales disponibles pour les ressources au sein des comptes d'une organisation ou d'une unité organisationnelle (UO). RCPs s'appliquent aux ressources des comptes membres et ont un impact sur les autorisations effectives accordées aux directeurs Utilisateur racine d'un compte AWS, y compris, qu'ils appartiennent ou non à votre organisation. RCPs ne s'appliquent pas aux ressources du compte de gestion de l'organisation ni aux appels effectués par des rôles liés à un service. Si une RCP est présente, les autorisations accordées par les politiques basées sur les identités et les ressources aux ressources de vos comptes membres ne sont effectives que si la RCP autorise l’action.
+ **AWS Organizations politiques de contrôle des services (SCPs)** : AWS Organizations SCPs spécifiez les autorisations maximales disponibles pour les principaux au sein des comptes d'une organisation ou d'une unité organisationnelle (UO). SCPs s'appliquent aux directeurs des comptes des membres, y compris à chacun Utilisateur racine d'un compte AWS d'entre eux. Si une SCP est présente, les autorisations accordées par les politiques basées sur les identités et les ressources aux principaux de vos comptes membres ne sont effectives que si la SCP autorise l’action. Les seules exceptions sont les principaux du compte de gestion de l’organisation et les rôles liés à un service.
+ **Politiques basées sur les ressources** : les politiques basées sur les ressources accordent des autorisations aux principaux spécifiés dans la politique. Les autorisations définissent ce que le principal peut faire avec la ressource à laquelle la politique est attachée.
+ **Limites des autorisations** : les limites d’autorisations sont une fonctionnalité qui définit les autorisations maximales qu’une politique basée sur les identités peut accorder à une entité IAM (utilisateur ou rôle). Lorsque vous définissez une limite d’autorisations pour une entité, l’entité peut effectuer uniquement les actions autorisées par ses deux ses politiques basées sur l’identité et ses limites d’autorisations. Dans certains cas, un refus implicite dans une limite d'autorisations peut limiter les autorisations accordées par une politique basée sur les ressources. Pour de plus amples informations, veuillez consulter [Comment la logique du code d' AWS application évalue les demandes d'autorisation ou de refus d'accès](reference_policies_evaluation-logic_policy-eval-denyallow.md).
+ **Politiques basées sur l'identité** : les politiques basées sur l'identité sont attachées à une identité IAM (utilisateur, groupe d'utilisateurs ou rôle) et octroient des autorisations aux entités IAM (utilisateurs et rôles). Si seules les politiques basées sur l'identité s'appliquent à une demande, alors AWS vérifie toutes ces politiques pour au moins une d'entre elles. `Allow`
+ **Politiques de session** : les politiques de session sont des politiques que vous transmettez en tant que paramètres lorsque vous créez par programmation une session temporaire pour un rôle ou une session d’utilisateur fédéré. Pour créer une session de rôle par programmation, utilisez l'une des opérations d'API `AssumeRole*`. Lorsque vous procédez ainsi et transmettez de politiques de session, les autorisations de session obtenues sont une combinaison de la politique basée sur l'identité de l'entité IAM et des politiques de session. Pour créer une session d'utilisateur fédéré, vous utilisez des clés d'accès d'utilisateur IAM pour appeler par programmation l'opération d'API `GetFederationToken`. Pour de plus amples informations, veuillez consulter [Politiques de session](access_policies.md#policies_session).

Pour rappel, un refus explicite dans l'une de ces politiques remplace l'autorisation.

**Note**  
**AWS Organizations les politiques déclaratives** vous permettent de déclarer et d'appliquer de manière centralisée la configuration souhaitée pour une donnée Service AWS à grande échelle au sein d'une organisation. Étant donné que les politiques déclaratives sont appliquées directement au niveau du service, elles n’ont pas d’impact direct sur les demandes d’évaluation des politiques et ne sont pas incluses dans le contexte de la demande. Pour plus d'informations, consultez la section [Politiques déclaratives](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) dans le guide de l' AWS Organizations utilisateur.

## Exemple d’évaluation des politiques à l’aide du modèle PARC
<a name="reqcontext_example"></a>

Pour illustrer comment le contexte de la demande interagit avec l’évaluation de la politique, prenons un exemple de politique :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/dept": "123"
        }
      }
    }
  ]
}
```

------

Dans cet exemple, la politique n’autoriserait l’action `CreateBucket` que si le contexte de la demande inclut une valeur `aws:PrincipalTag/dept` de « 123 » et si la ressource correspond au nom du compartiment `amzn-s3-demo-bucket1`. Le tableau suivant montre comment AWS utilise le contexte de la demande pour évaluer cette politique et prendre des décisions d’autorisation.


| Politique | Contexte de la requête | Résultat de l’évaluation | 
| --- | --- | --- | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Match** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:DeleteBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Aucune correspondance** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=321</pre>  | **Aucune correspondance** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:</pre> Aucun `aws:PrincipalTag` dans la demande.  | **Aucune correspondance** | 

# Comment la logique du code d' AWS application évalue les demandes d'autorisation ou de refus d'accès
<a name="reference_policies_evaluation-logic_policy-eval-denyallow"></a>

Le code d' AWS exécution décide si une demande envoyée AWS doit être autorisée ou refusée. AWS évalue toutes les politiques applicables au contexte de la demande. Voici un résumé de la logique d'évaluation des AWS politiques.
+ Par défaut, toutes les demandes sont implicitement rejetées à l'exception de l' Utilisateur racine d'un compte AWS, qui dispose d'un accès complet.
+ Les demandes doivent être explicitement autorisées par une politique ou un ensemble de politiques suivant la logique d’évaluation ci-dessous pour être autorisées.
+ Un refus explicite remplace une autorisation explicite.

L’évaluation de la politique peut varier selon que la demande concerne un seul compte ou plusieurs comptes. Pour plus d’informations sur la manière dont une décision d’évaluation de politique est prise pour un rôle IAM ou un utilisateur au sein d’un seul compte, consultez [Évaluation des politiques pour les demandes au sein d’un même compte](reference_policies_evaluation-logic_policy-eval-basics.md). Pour plus de détails sur la manière dont une décision d’évaluation des politiques est prise pour les demandes entre comptes, consultez [Logique d’évaluation des politiques intercomptes](reference_policies_evaluation-logic-cross-account.md).
+ **Deny evaluation** (Refuser l'évaluation) : par défaut, toutes les demandes sont refusées. Il s'agit d'un [refus implicite](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Le code d' AWS application évalue toutes les politiques du compte qui s'appliquent à la demande. Il s'agit notamment AWS Organizations SCPs des politiques basées sur les ressources RCPs, des politiques basées sur l'identité, des limites d'autorisations IAM et des politiques de session. Dans toutes ces politiques, le code d'application recherche une instruction `Deny` (Refuser) qui s'applique à la demande. Ceci est appelé un [refus explicite](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Si le code d’application trouve un refus explicite qui s’applique, il retourne la décision finale **Refuser**. S'il n'y a pas de refus explicite, l'évaluation du code d'application se poursuit.
+ **AWS Organizations RCPs**— Le code d'application évalue les politiques de contrôle AWS Organizations des ressources (RCPs) qui s'appliquent à la demande. RCPs s'appliquent aux ressources du compte auquel RCPs elles sont rattachées. Si le code d'exécution ne trouve aucune `Allow` déclaration applicable dans le RCPs, le code d'exécution renvoie une décision finale de **refus**. Notez qu'une politique AWS gérée appelée `RCPFullAWSAccess` est automatiquement créée et attachée à chaque entité de votre organisation, y compris à la racine, à chaque unité d'organisation et à quel Compte AWS moment elles RCPs sont activées. `RCPFullAWSAccess`ne peut pas être détaché, il y aura donc toujours une `Allow` déclaration. S’il n’y a pas de RCP, ou si la RCP autorise l’action demandée, l’évaluation du code d’application se poursuit.
+ **AWS Organizations SCPs**— Le code d'application évalue les politiques AWS Organizations de contrôle des services (SCPs) qui s'appliquent à la demande. SCPs s'appliquent au principal du compte auquel SCPs ils sont rattachés. Si le code d'exécution ne trouve aucune `Allow` déclaration applicable dans le SCPs, le code d'exécution renvoie une décision finale de **refus**. S'il n'y a pas de SCP, ou si la SCP autorise l'action demandée, l'évaluation du code d'exécution se poursuit.
+ **Politiques basées sur les ressources** – Au sein d'un même compte, les politiques basées sur les ressources influencent l'évaluation des politiques différemment selon le type de principal accédant à la ressource et le principal autorisé dans la politique basée sur les ressources. Selon le type de principal, un `Allow` dans une politique basée sur les ressources peut aboutir à une décision finale de `Allow`, même si un rejet implicite dans une politique basée sur une identité, une limite d'autorisations ou une politique de séance est présente.

  Pour la plupart des ressources, vous n’avez besoin d’une `Allow` explicite pour le principal que dans une politique basée sur l’identité ou dans une politique basée sur les ressources pour accorder l’accès. Les [politiques de confiance des rôles IAM](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) et [politiques de clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) sont des exceptions à cette logique, car ils doivent explicitement autoriser l'accès pour les [principaux](reference_policies_elements_principal.md). Les politiques basées sur les ressources pour les services autres qu’IAM et AWS KMS peuvent également nécessiter une instruction `Allow` explicite dans le même compte pour accorder l’accès. Pour plus d’informations, consultez la documentation service spécifique avec lequel vous travaillez.

  Pour les demandes d’évaluation de politiques à compte unique, la logique des politiques basées sur les ressources diffère des autres types de politiques si le principal spécifié est un utilisateur IAM, un rôle IAM ou un principal de session. Les principaux de session incluent les [sessions de rôle IAM](reference_policies_elements_principal.md#principal-role-session) ou des [principaux d’utilisateur fédéréAWS STS](reference_policies_elements_principal.md#sts-session-principals). Si une politique basée sur les ressources accorde des autorisations directement à l'utilisateur IAM ou au principal de séance qui fait la demande, un rejet implicite dans une politique basée sur l'identité, une limite d'autorisations ou une politique de séance n'a pas d'incidence sur la décision finale.
  + **Rôle IAM** – Les politiques basées sur les ressources qui accordent des autorisations à un ARN de rôle IAM sont limitées par un rejet implicite dans une limite d'autorisations ou une politique de séance. Vous pouvez spécifier l’ARN du rôle dans l’élément Principal ou dans la clé de condition `aws:PrincipalArn`. Dans les deux cas, le principal qui fait la demande est la **session de rôle IAM**.

    Les limites de permissions et les politiques de session ne limitent pas les permissions accordées à l’aide de la clé de condition `aws:PrincipalArn` avec un caractère générique (\$1) dans l’élément Principal, sauf si les politiques basées sur l’identité contiennent un refus explicite. Pour de plus amples informations, veuillez consulter [Principaux de rôles IAM](reference_policies_elements_principal.md#principal-roles).

    **Exemple d'ARN de rôle**

    ```
    arn:aws:iam::111122223333:role/examplerole
    ```
  + **Rôle IAM** – Au sein du même compte, les politiques basées sur les ressources qui accordent des autorisations à un ARN de séance de rôle IAM accordent des autorisations directement à la séance de rôle supposée. Les autorisations accordées directement à une séance ne sont pas limitées par un rejet implicite dans une politique basée sur l'identité, une limite d'autorisations ou une politique de séance. Lorsque vous endossez un rôle et faites une demande, le principal qui fait la demande est l'ARN de séance du rôle IAM et non l'ARN du rôle lui-même. Pour de plus amples informations, veuillez consulter [Principaux de séance de rôle](reference_policies_elements_principal.md#principal-role-session).

    **Exemple d'ARN de séance de rôle**

    ```
    arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    ```
  + **Utilisateur IAM** – Au sein du même compte, les politiques basées sur les ressources qui accordent des autorisations à un ARN d'utilisateur IAM (qui n'est pas une séance d'utilisateur fédérée) ne sont pas limitées par un rejet implicite d'une politique basée sur l'identité ou d'une limite d'autorisations.

    **Exemple d'ARN d'utilisateur IAM**

    ```
    arn:aws:iam::111122223333:user/exampleuser
    ```
  + **AWS STS utilisateur principal fédéré** — Une session utilisateur fédérée est une session créée par un appel. [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken) Lorsqu'un utilisateur fédéré fait une demande, le principal qui effectue la demande est l'ARN d'utilisateur fédéré et non l'ARN de l'utilisateur IAM qui a fédéré. Dans le même compte, les politiques basées sur les ressources accordant des autorisations à un ARN d'utilisateur fédéré accordent des autorisations directement à la séance. Les autorisations accordées directement à une séance ne sont pas limitées par un rejet implicite dans une politique basée sur l'identité, une limite d'autorisations ou une politique de séance.

    Cependant, si une politique basée sur les ressources accorde une autorisation à l'ARN de l'utilisateur IAM qui s'est fédéré, les demandes faites par l'utilisateur fédéré pendant la séance sont limitées par un rejet implicite dans une limite d'autorisation ou une politique de séance.

    **Exemple d’ARN de session d’utilisateur fédérée**

    ```
    arn:aws:sts::111122223333:federated-user/exampleuser
    ```
+ **Politiques basées sur l’identité** : le code d’application vérifie les politiques basées sur l’identité pour le principal. Pour un utilisateur IAM, cela comprend notamment les politiques d'utilisateur et les politiques de groupes auxquels l'utilisateur appartient. Si aucune politique basée sur l’identité ou aucune instruction dans les politiques basées sur l’identité n’autorise l’action demandée, alors la demande est implicitement refusée et le code d’application renvoie une décision finale **Refuser**. Si une instruction dans n’importe quelle politique basée sur l’identité applicable autorise l’action demandée, le code d’évaluation continue.
+ **Limite des autorisations IAM** : le code d’application vérifie si l’entité IAM utilisée par le principal possède une limite d’autorisations. Si la politique qui est utilisée pour définir la limite d'autorisations n'autorise pas l'action demandée, la demande est implicitement refusée. Le code d'application retourne la décision finale **Deny** (Refuser). S’il n’y a pas de limite d’autorisations, ou si la limite d’autorisations autorise l’action demandée, le code d’évaluation continue.
+ **Politiques de session** : le code d’application vérifie si le principal est un principal de session. Les principes de session incluent une session de rôle IAM ou une session utilisateur AWS STS fédérée. Si le principal n'est pas un principal de séance, le code d'application renvoie une décision finale d'**autorisation**.

  Pour les principaux de séance, le code d’application vérifie si une politique de séance a été transmise dans la demande. Vous pouvez transmettre une politique de session lorsque vous utilisez l' AWS API AWS CLI or pour obtenir des informations d'identification temporaires pour un rôle ou un utilisateur principal AWS STS fédéré. Si vous n’avez pas adopté de politique de session, une politique de session par défaut est créée et le code d’application renvoie la décision finale **Autoriser**.
  + Si une politique de session est présente et n'autorise pas l'action demandée, la demande est implicitement refusée. Le code d'application retourne la décision finale **Deny** (Refuser).
  + Le code d’application vérifie si le principal est une session de rôle. Si le principal est une session de rôle, la demande est **autorisée**. Sinon, la demande est implicitement rejetée et le code d’application renvoie une décision finale **Refuser**.
  + Si une politique de séance est présente et autorise l'action demandée, le code d'exécution renvoie une décision finale **d'autorisation**.

# Évaluation des politiques pour les demandes au sein d’un même compte
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Évaluation des politiques pour un rôle IAM
<a name="policy-eval-basics-single-account-role"></a>

Le diagramme suivant fournit des détails sur la manière dont une décision d’évaluation de politique est prise pour un rôle IAM au sein d’un compte unique.

![\[Organigramme d’évaluation d’un rôle IAM au sein d’un compte unique\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Évaluation des politiques pour un utilisateur IAM
<a name="policy-eval-basics-single-account-user"></a>

Le diagramme suivant fournit des détails sur la manière dont une décision d’évaluation de politique est prise pour un utilisateur IAM au sein d’un compte unique.

![\[Organigramme d’évaluation d’un utilisateur IAM au sein d’un compte unique\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Exemple d'évaluation de politique basée sur l'identité et sur les ressources
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

Les types de politiques les plus courants sont celles basées sur l'identité et les ressources. Lorsque l'accès à une ressource est demandé, AWS évalue toutes les autorisations accordées par les politiques pour **au moins une autorisation au sein** du même compte. Un rejet explicite dans l'une de ces politiques remplace l'autorisation.

**Important**  
Si la politique basée sur les identités ou celle basée sur les ressources dans le même compte autorise la demande et que l'autre ne l'autorise pas, la demande reste autorisée.

Supposons que le nom d'utilisateur de Carlos soit `carlossalazar` et que ce dernier essaie d'enregistrer un fichier dans le compartiment Amazon S3 `amzn-s3-demo-bucket-carlossalazar-logs`. 

Supposons également que la politique suivante soit attachée à l'utilisateur IAM `carlossalazar`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

L'instruction `AllowS3ListRead` de cette politique autorise Carlos à afficher une liste de tous les compartiments du compte. L'instruction `AllowS3Self` accorde à Carlos un accès total au compartiment du même nom que son nom d'utilisateur. L'instruction `DenyS3Logs` refuse à Carlos l'accès à n'importe quel compartiment S3 comprenant `log` dans son nom. 

De plus, la politique basée sur les ressources suivante (appelée politique de compartiment) est attachée au compartiment `amzn-s3-demo-bucket-carlossalazar`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Cette politique spécifie que seul l'utilisateur `carlossalazar` peut accéder au compartiment `amzn-s3-demo-bucket-carlossalazar`.

Lorsque Carlos demande l'enregistrement d'un fichier dans le `amzn-s3-demo-bucket-carlossalazar-logs` bucket, il AWS détermine les politiques qui s'appliquent à la demande. Dans ce cas, seule les politiques basées sur l'identité et les ressources s'appliquent. Il s'agit de deux politiques d'autorisations. La logique d'évaluation est réduite à la logique suivante, car aucune limite d'autorisations ne s'applique.

![\[Diagramme d'évaluation\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


AWS vérifie d'abord si une `Deny` déclaration s'applique au contexte de la demande. Il en trouve une, car la politique basée sur l'identité refuse explicitement à Carlos l'accès à n'importe quel compartiment S3 utilisé pour la journalisation. Carlos se voit refuser l'accès. 

Supposons qu'il se rende compte de son erreur et essaie d'enregistrer le fichier dans le `amzn-s3-demo-bucket-carlossalazar` bucket. AWS recherche une `Deny` déclaration et n'en trouve aucune. Ensuite, il vérifie les politiques d'autorisations. La politique basée sur l'identité et celle basée sur les ressources autorisent la demande. AWS Autorise donc la demande. Si l'un d'entre eux refuse explicitement l'instruction, alors la demande est refusée. Si l'un des types de politique autorise la demande et que l'autre ne l'autorise pas, la demande reste autorisée.

# Logique d’évaluation des politiques intercomptes
<a name="reference_policies_evaluation-logic-cross-account"></a>

Vous pouvez autoriser un principal d'un compte à accéder aux ressources d'un second compte. C'est ce que l'on appelle l'accès entre comptes. Lorsque vous autorisez un accès entre comptes, le compte dans lequel se trouve le principal est appelé compte *approuvé*. Le compte dans lequel se trouve la ressource est le compte *d'approbation*. 

Pour autoriser l'accès entre comptes, vous associez une politique basée sur les ressources à la ressource que vous souhaitez partager. Vous devez également attacher une politique basée sur l'identité à l'identité qui fait office de principal dans la demande. La politique basée sur les ressources dans le compte d'approbation doit spécifier le principal du compte approuvé qui aura accès à la ressource. Vous pouvez spécifier l'intégralité du compte ou ses utilisateurs IAM, ses utilisateurs principaux AWS STS fédérés, ses rôles IAM ou ses sessions à rôles assumés. Vous pouvez également spécifier un AWS service en tant que principal. Pour de plus amples informations, veuillez consulter [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying). 

La politique basée sur l'identité du principal doit permettre l'accès demandé à la ressource dans le service d'approbation. Vous pouvez le faire en spécifiant l’ARN de la ressource.

Dans IAM, vous pouvez associer une politique basée sur les ressources à un rôle IAM pour permettre aux principaux d'autres comptes d'endosser ce rôle. La politique basée sur les ressources du rôle est appelée politique d'approbation de rôle. Une fois qu'ils endossent ce rôle, les principaux autorisés peuvent utiliser les informations d'identification temporaires résultantes pour accéder à plusieurs ressources de votre compte. Cet accès est défini dans la politique d'autorisations basée sur l'identité du rôle. Pour connaître les différences entre l'autorisation d'accès entre comptes à l'aide de rôles et l'autorisation d'accès entre comptes à l'aide d'autres politiques basées sur les ressources, veuillez consulter [Accès intercompte aux ressources dans IAM](access_policies-cross-account-resource-access.md). 

**Important**  
D'autres services peuvent influer sur la logique d'évaluation des politiques. Par exemple, AWS Organizations prend en charge les [politiques de contrôle des services](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) et [les politiques de contrôle des ressources](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) qui peuvent être appliquées aux principaux et aux ressources d'un ou de plusieurs comptes. AWS Resource Access Manager prend en charge les [fragments de politique](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html) qui contrôlent les actions que les principaux sont autorisés à effectuer sur les ressources partagées avec eux.

## Comment déterminer si une demande d'accès entre comptes est autorisée
<a name="policy-eval-cross-account"></a>

Pour les demandes entre comptes, le demandeur du compte approuvé `AccountA` doit avoir une politique basée sur l'identité. Cette politique doit lui permettre de faire une demande à la ressource du compte d'approbation `AccountB`. En outre, la politique basée sur les ressources du compte `AccountB` doit autoriser le demandeur du compte `AccountA` à accéder à la ressource.

Lorsque vous faites une demande entre comptes, AWS effectue deux évaluations. AWS évalue la demande dans le compte de confiance et le compte de confiance. Pour de plus amples informations sur la façon dont une demande est évaluée au sein d'un seul compte, veuillez consulter [Comment la logique du code d' AWS application évalue les demandes d'autorisation ou de refus d'accès](reference_policies_evaluation-logic_policy-eval-denyallow.md). La demande n'est autorisée que si les deux évaluations renvoient une décision `Allow`.

![\[Évaluation entre comptes\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/policy_cross-account-eval-simple.png)


1. Lorsqu'un principal d'un compte fait une demande d'accès à une ressource d'un autre compte, il s'agit d'une demande entre comptes.

1. Le principal demandeur se trouve dans le compte approuvé (`AccountA`). Lorsque AWS évalue ce compte, il vérifie la politique basée sur l'identité et toutes les politiques pouvant limiter une politique basée sur l'identité. Pour de plus amples informations, veuillez consulter [Évaluation des politiques basées sur l'identité avec des limites d'autorisations](reference_policies_evaluation-logic.md#policy-eval-basics-id-bound).

1. La ressource demandée se trouve dans le compte d'approbation (`AccountB`). Lorsque AWS évalue ce compte, il vérifie la politique basée sur les ressources qui est associée à la ressource demandée et toutes les politiques pouvant limiter une politique basée sur les ressources. Pour de plus amples informations, veuillez consulter [Évaluation des politiques basées sur l'identité avec des politiques basées sur des ressources](reference_policies_evaluation-logic.md#policy-eval-basics-id-rdp).

1. AWS autorise la demande uniquement si les deux évaluations de la politique du compte autorisent la demande.

Le diagramme suivant illustre plus en détail comment une décision d’évaluation de politique est prise pour une demande entre comptes. Encore une fois, AWS autorise la demande uniquement si les deux évaluations de la politique du compte l'autorisent.

![\[Évaluation détaillée de la politique entre comptes\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/PolicyEvaluationCrossAccount.png)


## Exemple d'évaluation de politique entre comptes
<a name="policies_evaluation_example-cross-account"></a>

L’exemple suivant illustre un scénario dans lequel un rôle d’un compte se voit accorder des autorisations par une politique basée sur les ressources dans un second compte.

Supposons que Carlos est un développeur dont le nom du rôle IAM est `Demo` dans le compte 111111111111. Il veut enregistrer un fichier dans le compartiment Amazon S3 `amzn-s3-demo-bucket-production-logs` du compte 222222222222. 

Supposons également que la politique suivante soit attachée au rôle IAM `Demo`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowS3ProductionObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::*log*",
                "arn:aws:s3:::*log*/*"
            ]
        }
    ]
}
```

------

L'instruction `AllowS3ListRead` de cette politique autorise Carlos à afficher une liste de tous les compartiments dans Amazon S3. L'instruction `AllowS3ProductionObjectActions` offre à Carlos un accès complet aux objets dans le compartiment `amzn-s3-demo-bucket-production`.

De plus, la politique basée sur les ressources suivante (appelée politique de compartiment) est attachée au compartiment `amzn-s3-demo-bucket-production` dans le compte 222222222222. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject*",
                "s3:PutObject*",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" },
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        }
    ]
}
```

------

Cette politique permet au rôle `Demo` d’accéder aux objets du compartiment `amzn-s3-demo-bucket-production`. Il peut créer et éditer, mais pas supprimer les objets dans le compartiment. Il ne peut pas gérer le compartiment lui-même.

Lorsque Carlos demande l'enregistrement d'un fichier dans le `amzn-s3-demo-bucket-production-logs` bucket, il AWS détermine les politiques qui s'appliquent à la demande. Dans ce cas, la politique basée sur l’identité associée au rôle `Demo` est la seule politique qui s’applique dans le compte `111111111111`. Dans le compte `222222222222`, il n'y a pas de politique basée sur les ressources associée au compartiment `amzn-s3-demo-bucket-production-logs`. Lors de AWS l'évaluation du compte`111111111111`, il renvoie une décision de`Deny`. En effet, l'instruction `DenyS3Logs` de la politique basée sur l'identité refuse explicitement l'accès à tous les compartiments de journaux. Pour de plus amples informations sur la façon dont une demande est évaluée au sein d'un seul compte, veuillez consulter [Comment la logique du code d' AWS application évalue les demandes d'autorisation ou de refus d'accès](reference_policies_evaluation-logic_policy-eval-denyallow.md).

Étant donné que la demande est explicitement refusée dans l'un des comptes, la décision finale est de refuser la demande.

![\[Demande adressée au bucket amzn-s3- demo-bucket-production-logs\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/policy_cross-account-eval-example.png)


Supposons que Carlos réalise alors son erreur et essaie d'enregistrer le fichier dans le `Production` bucket. AWS vérifie d'abord `111111111111` le compte pour déterminer si la demande est autorisée. Seule la politique basée sur l'identité s'applique et autorise la demande. AWS puis vérifie le compte`222222222222`. Seule la politique basée sur les ressources associée au compartiment `Production` s'applique et elle autorise la demande. Étant donné que les deux comptes autorisent la demande, la décision finale est d'autoriser la demande.

![\[Demande adressée au compartiment Production\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/policy_cross-account-eval-example-correct.png)


# Différence entre les refus explicites et implicites
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Une demande se traduit par un refus explicite si une politique applicable inclut une instruction `Deny` (Refuser). Si les politiques qui s'appliquent à une demande incluent une instruction `Allow` (Autoriser) et une instruction `Deny` (Refuser), alors l'instruction `Deny` a priorité sur l'instruction `Allow` (Autoriser). La demande est refusée explicitement.

Un refus implicite se produit en cas d'absence d'instructions `Deny` (Refuser) et `Allow` (Autoriser) applicables. Étant donné qu'un principal IAM se voit refuser l'accès par défaut, il doit être explicitement autorisé à effectuer une action. Sinon, il se voit refuser l'accès implicitement.

Lorsque vous concevez votre stratégie d'autorisations, vous devez créer des politiques avec des instructions `Allow` (Autoriser) pour permettre à vos principaux d'effectuer des demandes avec succès. Toutefois, vous pouvez choisir n'importe quelle combinaison de refus explicites et implicites. 

Par exemple, vous pouvez créer la politique suivante qui inclut des actions autorisées, des actions implicitement rejetées et des actions explicitement rejetées. L'instruction `AllowGetList` **permet** un accès en lecture seule aux actions IAM qui commencent par les préfixes `Get` et `List`. Toutes les autres actions dans IAM, comme `iam:CreatePolicy`, sont **implicitement rejetées**. L'instruction `DenyReports` **rejette explicitement** l'accès aux rapports IAM en rejetant l'accès aux actions qui incluent le suffixe `Report`, comme `iam:GetOrganizationsAccessReport`. Si quelqu'un ajoute une autre politique à ce principal pour lui donner accès aux rapports IAM, comme `iam:GenerateCredentialReport`, les demandes liées aux rapports sont toujours rejetées en raison de ce rejet explicite.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------

# Syntaxe du langage de politique JSON IAM
<a name="reference_policies_grammar"></a>

Cette page présente la syntaxe formelle du langage de stratégie utilisé pour créer des politiques JSON dans IAM. Nous vous la présentons pour vous permettre de mieux comprendre comment créer et valider des politiques.

Pour consulter des exemples de politiques, reportez-vous aux rubriques suivantes :
+ [Politiques et autorisations dans Gestion des identités et des accès AWS](access_policies.md)
+ [Exemples de politiques basées sur l'identité IAM](access_policies_examples.md)
+ [Exemples de politiques pour travailler dans la console Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html) et [exemples de politiques pour travailler avec la AWS CLI, l'interface de ligne de commande Amazon EC2 ou AWS un](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html) SDK dans le guide de l'utilisateur Amazon *EC2*. 
+  [Exemples de politique de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) et [Exemples de politiques utilisateur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html) dans le *guide de l'utilisateur service de stockage simple Amazon*. 

Pour obtenir des exemples de politiques utilisées dans d'autres AWS services, consultez la documentation de ces services.

**Topics**
+ [Langage de politique et JSON](#policies-grammar-json)
+ [Conventions utilisées dans cette syntaxe](#policies-grammar-conventions)
+ [Syntaxe](#policies-grammar-bnf)
+ [Remarques sur la syntaxe de politique](#policies-grammar-notes)

## Langage de politique et JSON
<a name="policies-grammar-json"></a>

Les politiques sont créées à l'aide du format JSON. Lorsque vous créez ou modifiez une politique JSON, IAM peut effectuer une validation de politique pour vous aider à créer une politique efficace. IAM identifie les erreurs de syntaxe JSON, tandis que IAM Access Analyzer fournit des vérifications de politique supplémentaires avec des recommandations pour vous aider à affiner vos politiques. Pour en savoir plus sur la validation de politiques, veuillez consulter [Validation de politique IAM](access_policies_policy-validator.md). Pour en savoir plus sur les vérifications des politiques IAM Access Analyzer et les recommandations exploitables, veuillez consulter [Validation de politique IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

Ce document n'entend pas fournir une description complète de ce qui constitue un code JSON valide. Toutefois, voici quelques règles de base applicables à JSON :
+ Les espaces entre des entités individuelles sont autorisés.
+ Les valeurs sont entourées de guillemets. Les guillemets sont facultatifs pour les valeurs numériques et booléennes.
+ De nombreux éléments (par exemple, `action_string_list` et `resource_string_list`) acceptent une valeur composée d'un tableau JSON. Les tableaux peuvent inclure une ou plusieurs valeurs. Lorsqu'un tableau comporte plusieurs valeurs, il est entouré de crochets (`[` et `]`) et les valeurs sont séparées par une virgule, comme dans l'exemple suivant : 

  `"Action" : ["ec2:Describe*","ec2:List*"]`
+ Les types de données JSON de base (booléen, nombre et chaîne) sont définis dans [RFC 7159](https://datatracker.ietf.org/doc/html/rfc7159).

## Conventions utilisées dans cette syntaxe
<a name="policies-grammar-conventions"></a>

Les conventions suivantes sont utilisées dans cette syntaxe :
+ Les caractères suivants sont des jetons JSON et *sont* inclus dans les politiques :

  `{ } [ ] " , :`
+ Les caractères suivants sont des caractères spéciaux dans la syntaxe et ne sont *pas* inclus dans les politiques : 

  `= < > ( ) |`
+ Si un élément autorise plusieurs valeurs, ceci est indiqué à l'aide de valeurs répétées, d'une virgule de délimitation et de points de suspension (`...`). Exemples :

  `[<action_string>, <action_string>, ...]`

  `<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }`

  Si plusieurs valeurs sont autorisées, il est également possible d'en inclure une seule. Lors de l'utilisation d'une seule valeur, la virgule de fin doit être omise. Si l'élément accepte un tableau (entouré de [ et ]) mais que vous n'utilisez qu'une valeur, les crochets sont facultatifs. Exemples :

  `"Action": [<action_string>]`

  `"Action": <action_string>`
+ Un point d'interrogation (`?`) placé après un élément indique que cet élément est facultatif. Exemple : 

  <`version_block?>`

  Toutefois, reportez-vous aux notes relatives à la syntaxe ci-après pour plus de détails sur les éléments facultatifs. 
+ Une ligne verticale (`|`) entre des éléments indique plusieurs choix. Dans la syntaxe, les parenthèses définissent la portée de ces choix. Exemple :

  `("Principal" | "NotPrincipal")` 
+ Les éléments qui doivent être des chaînes littérales sont entourés de guillemets doubles (`"`). Exemple :

  `<version_block> = "Version" : ("2008-10-17" | "2012-10-17" )`

Pour des informations complémentaires, reportez-vous à la section [Remarques sur la syntaxe de politique](#policies-grammar-notes) après la description de la syntaxe.

## Syntaxe
<a name="policies-grammar-bnf"></a>

La liste suivante décrit la syntaxe du langage de politique. Pour plus d'informations sur les conventions utilisées dans la liste, reportez-vous à la section précédente. Pour des informations complémentaires, reportez-vous aux notes ci-après.

**Note**  
Cette syntaxe décrit des politiques marquées avec une version `2008-10-17 ` et `2012-10-17 `. Un élément de politique `Version` varie d'une version de politique. L'élément de politique `Version` est utilisé dans une politique pour définir la version de la langue de la politique. En revanche, une version de politique est créée lorsque vous apportez des modifications à une politique gérée par le client dans IAM. La politique modifiée ne remplace pas la politique existante. À la place, IAM crée une nouvelle version de la politique gérée. Pour en savoir plus sur l'élément de politique `Version`, consultez [Éléments de politique JSON IAM : Version](reference_policies_elements_version.md). Pour en savoir plus sur les versions de politiques, consultez [Gestion des versions des politiques IAM](access_policies_managed-versioning.md).

```
policy  = {
     <version_block?>,
     <id_block?>,
     <statement_block>
}

<version_block> = "Version" : ("2008-10-17"		 	 	  | "2012-10-17"		 	 	 )

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = { 
    <sid_block?>,
    <principal_block?>,
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")  

<principal_block> = ("Principal" | "NotPrincipal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("AWS" | "Federated" | "Service" | "CanonicalUser") :   
    [<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action" | "NotAction") : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource" | "NotResource") : 
    : ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

<condition_block> = "Condition" : { <condition_map> }
<condition_map> = { 
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}  
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = (<condition_value_string> | <condition_value_string> | <condition_value_string>)
```

## Remarques sur la syntaxe de politique
<a name="policies-grammar-notes"></a>
+ Une politique peut contenir un tableau de instructions.
+ La taille maximale des politiques est comprise entre 2 048 et 10 240 caractères, selon l'entité à laquelle la politique est attachée. Pour plus d’informations, veuillez consulter [IAM et quotas AWS STS](reference_iam-quotas.md). Lors du calcul de la taille de la politique, les espaces ne sont pas inclus.
+ Des éléments individuels ne doivent pas contenir plusieurs instances de la même clé. Par exemple, vous ne pouvez pas inclure le bloc `Effect` à deux reprises dans la même instruction. 
+ Les blocs peuvent être insérés dans n'importe quel ordre. Par exemple, `version_block` peut suivre `id_block` dans une politique. De la même façon `effect_block`, `principal_block` et `action_block` peuvent figurer dans n'importe quel ordre dans une instruction.
+ L'élément `id_block` est facultatif dans les politiques basées sur les ressources. Il ne doit *pas* être inclus dans les stratégies basées sur une identité.
+ L'élément `principal_block` est obligatoire dans les politiques basées sur les ressources (par exemple, dans les politiques de compartiment Amazon S3) et dans les politiques d'approbation de rôles IAM. Il ne doit *pas* être inclus dans les stratégies basées sur une identité.
+ L'élément `principal_map` des politiques de compartiment Amazon S3 peut inclure l'ID `CanonicalUser`. La plupart des politiques basées sur les ressources ne prennent pas en charge ce mappage. Pour en savoir plus sur l'utilisation de l'ID d'utilisateur canonique dans une politique de compartiment, veuillez consulter [spécification d'un principal dans une politique](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) dans le *guide de l'utilisateur service de stockage simple Amazon*.
+ Chaque valeur de chaîne (`policy_id_string`, `sid_string`, `principal_id_string`, `action_string`, `resource_string`, `condition_type_string`, `condition_key_string` et la version de chaîne de `condition_value`) peut avoir ses propres limites de longueur minimale et maximale, des valeurs autorisées spécifiques ou un format interne obligatoire.

### Remarques à propos de valeurs de chaîne
<a name="policies-grammar-notes-strings"></a>

Cette section contient des informations complémentaires sur les valeurs de chaîne utilisées dans les différents éléments d'une politique.

**`action_string`**  
Comporte un espace de noms de service, deux points et le nom d'une action. Un nom d'action peut inclure des caractères génériques. Exemples :  

```
"Action":"ec2:StartInstances"

"Action":[
  "ec2:StartInstances",
  "ec2:StopInstances"
]

"Action":"cloudformation:*"

"Action":"*"

"Action":[
  "s3:Get*",
  "s3:List*"
]
```

**`policy_id_string`**  
Permet d'inclure des informations globales sur la politique. Certains services tels qu'Amazon SQS et Amazon SNS utilisent l'élément `Id` en tant qu'élément réservé. Si aucune restriction n'est imposée par un service individuel, policy\$1id\$1string peut inclure des espaces. Certains services exigent que cette valeur soit unique dans un compte AWS .   
L'élément `id_block` est autorisé dans les politiques basées sur les ressources, mais pas dans celles basées sur une identité.
La longueur n'est pas limitée, mais cette chaîne contribue à la longueur totale de la politique, qui elle est limitée.   

```
"Id":"Admin_Policy"

"Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
```

**`sid_string`**  
Permet d'inclure des informations relatives à une instruction individuelle. Pour les politiques IAM, les caractères alphanumériques de base (A-Z, a-z, 0-9) sont les seuls autorisés dans la valeur `Sid`. Les autres services AWS prenant en charge les politiques de ressources peuvent imposer d'autres exigences pour la valeur `Sid`. Par exemple, certains services exigent que cette valeur soit unique dans un Compte AWS, et certains services autorisent des caractères supplémentaires tels que des espaces dans la `Sid` valeur.  

```
"Sid":"1" 

"Sid": "ThisStatementProvidesPermissionsForConsoleAccess"
```

**`principal_id_string`**  
Permet de spécifier un principal à l'aide du [*nom de ressource Amazon* (ARN)](reference_identifiers.md#identifiers-arns) de l'utilisateur IAM Compte AWS, du rôle IAM, de l'utilisateur fédéré ou de l'utilisateur assumant le rôle. Pour an Compte AWS, vous pouvez également utiliser la forme abrégée `AWS:accountnumber` au lieu de l'ARN complet. Pour toutes les options, notamment les services AWS ;, les rôles endossés et ainsi de suite, consultez [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying).  
Notez que vous pouvez utiliser \$1 uniquement pour spécifier « tout le monde/anonyme ». Vous ne pouvez pas l'utiliser pour spécifier une partie de nom ou d'ARN.

**`resource_string`**  
Dans la plupart des cas, la valeur est composée d'un [Amazon Resource Name](reference_identifiers.md#identifiers-arns) (ARN). Vous pouvez utiliser des caractères génériques (\$1 et ?) dans la partie ressource de l’ARN. Pour plus d'informations sur l'utilisation de caractères génériques dans ARNs, consultez[Utilisation de caractères génériques dans les chemins](reference-arns.md#arns-paths-wildcards).  
Lorsque vous spécifiez un ARN incomplet (un ARN contenant moins que les six champs standard) dans une politique basée sur l'identité, complète AWS automatiquement l'ARN en ajoutant des caractères génériques (\$1) à tous les champs manquants. Par exemple, spécifier `arn:aws:sqs` est équivalent à`arn:aws:sqs:*:*:*`, ce qui donne accès à toutes les ressources Amazon SQS dans toutes les régions et tous les comptes. Toutefois, les politiques de session transmises à AWS STS AssumeRoleAssumeRoleWithWebIdentity, et les demandes AssumeRoleWith SAML, ne prennent pas en charge les demandes incomplètes ARNs. L'utilisation d'un ARN incomplet dans une politique de session entraînera une `MalformedPolicyDocumentException` erreur.

```
"Resource":"arn:aws:iam::123456789012:user/Bob"

"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
```

**`condition_type_string`**  
Identifie le type de condition testé, par exemple `StringEquals`, `StringLike`, `NumericLessThan`, `DateGreaterThanEquals`, `Bool`, `BinaryEquals`, `IpAddress`, `ArnEquals`, etc. Pour obtenir la liste complète des types de conditions, consultez [Éléments de politique JSON IAM : Opérateurs de condition](reference_policies_elements_condition_operators.md).   

```
"Condition": {
  "NumericLessThanEquals": {
    "s3:max-keys": "10"
  }
}

"Condition": {
  "Bool": {
    "aws:SecureTransport": "true"
  }
}

"Condition": {
  "StringEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}
```

**`condition_key_string`**  
Identifie la clé de condition dont la valeur sera testée pour déterminer si la condition est remplie. AWS définit un ensemble de clés de condition disponibles dans tous les AWS services, y compris `aws:PrincipalType``aws:SecureTransport`, et`aws:userid`.  
Pour obtenir la liste des clés de AWS condition, voir[AWS clés contextuelles de condition globale](reference_policies_condition-keys.md). Pour connaître les clés de condition spécifiques à un service, reportez-vous à la documentation relative au service, notamment :  
+ [Spécification de conditions dans une politique](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html) dans le *guide de l'utilisateur service de stockage simple Amazon*
+ [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.

```
"Condition":{
  "Bool": {
      "aws:SecureTransport": "true"
   }
}

"Condition": {
  "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}

"Condition": {
  "StringEquals": {
    "aws:ResourceTag/purpose": "test"
  }
}
```

**`condition_value_string`**  
Identifie la valeur de la chaîne condition\$1key\$1string qui détermine si la condition est remplie. Pour obtenir la liste complète des valeurs valides pour un type de condition, consultez [Éléments de politique JSON IAM : Opérateurs de condition](reference_policies_elements_condition_operators.md).  

```
"Condition":{
  "ForAnyValue:StringEquals": {
		"dynamodb:Attributes": [
			"ID",
			"PostDateTime"
  	      ]
  }
}
```

# AWS politiques gérées pour les fonctions professionnelles
<a name="access_policies_job-functions"></a>

Nous vous recommandons d'utiliser des politiques qui [accordent le moins de privilèges](best-practices.md#grant-least-privilege) ou d'accorder uniquement les autorisations requises pour effectuer une tâche. Le moyen le plus sûr d'octroyer le moindre privilège consiste à écrire une politique personnalisée contenant uniquement les autorisations requises par votre équipe. Vous devez créer un processus pour autoriser votre équipe à demander plus d'autorisations si nécessaire. Il faut du temps et de l’expertise pour [créer des politiques gérées par le client IAM](access_policies_create-console.md) qui ne fournissent à votre équipe que les autorisations dont elle a besoin.

Pour commencer à ajouter des autorisations à vos identités IAM (utilisateurs, groupes d'utilisateurs et rôles), vous pouvez utiliser[AWS politiques gérées](access_policies_managed-vs-inline.md#aws-managed-policies). AWS les politiques gérées couvrent les cas d'utilisation courants et sont disponibles dans votre Compte AWS. AWS les politiques gérées n'accordent pas les autorisations du moindre privilège. Vous devez prendre en compte le risque de sécurité constitué par l'octroi, à vos principaux, de davantage d'autorisations que nécessaire pour accomplir leur tâche.

Vous pouvez associer des politiques AWS gérées, y compris des fonctions de travail, à n'importe quelle identité IAM. Pour passer aux autorisations du moindre privilège, vous pouvez exécuter Gestion des identités et des accès AWS Access Analyzer pour surveiller les principaux à l'aide de politiques AWS gérées. Lorsque vous savez quelles autorisations ils utilisent, vous pouvez écrire une politique personnalisée ou générer une politique avec uniquement les autorisations requises pour votre équipe. Cela est moins sûr, mais offre plus de flexibilité à mesure que vous apprenez comment votre équipe utilise AWS.

AWS les politiques gérées pour les fonctions professionnelles sont conçues pour s'aligner étroitement sur les fonctions professionnelles courantes dans le secteur informatique. Vous pouvez utiliser ces politiques pour accorder les autorisations nécessaires afin d'exécuter les tâches prévues de la part quelqu'un occupant une fonction spécifique. Ces politiques regroupent les autorisations pour de nombreux services dans une seule politique plus facile à utiliser que des autorisations dispersées dans de nombreuses politiques.

**Utiliser des rôles pour combiner les services**  
Certaines politiques utilisent des rôles de service IAM pour vous aider à tirer parti des fonctionnalités d'autres AWS services. Ces politiques accordent l'accès à un service`iam:passrole`, ce qui permet à l'utilisateur disposant de cette politique de transmettre un rôle à un AWS service. Ce rôle délègue les autorisations IAM au AWS service pour effectuer des actions en votre nom.

Vous devez créer les rôles selon vos besoins. Par exemple, la politique d'administrateur réseau permet à un utilisateur disposant de cette politique de transmettre un rôle nommé flow-logs-vpc « » au CloudWatch service Amazon. CloudWatch utilise ce rôle pour enregistrer et capturer le trafic IP VPCs créé par l'utilisateur.

Pour s'accorder aux meilleures pratiques de sécurité, les politiques pour les activités professionnelles incluent des filtres qui limitent les noms de rôles valides possibles à transmettre. Cela permet d'éviter d'accorder des autorisations inutiles. Si vos utilisateurs ont besoin des rôles de services facultatifs, vous devez créer un rôle qui suit la convention d'affectation de noms spécifiée dans la politique. Vous pouvez ensuite accorder des autorisations pour le rôle. L'utilisateur peut alors configurer le service pour utiliser ce rôle, et lui octroyer toutes les autorisations fournies par le rôle.

Dans les sections suivantes, chaque nom de politique comporte un lien vers la page des détails de la politique dans AWS Management Console. Vous pouvez alors consulter le document de politique et examiner les autorisations qu'il accorde.

## Fonction de tâche Administrateur
<a name="jf_administrator"></a>

**AWS nom de la politique gérée : [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)**

**Cas d'utilisation :** cet utilisateur a un accès total et peut déléguer des autorisations à tous les services et toutes les ressources dans AWS.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique autorise toutes les actions pour tous les AWS services et pour toutes les ressources du compte. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [AdministratorAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)de référence des politiques AWS gérées*.

**Note**  
Avant qu'un utilisateur ou un rôle IAM puisse accéder à la AWS Billing and Cost Management console avec les autorisations définies dans cette politique, vous devez d'abord activer l'accès aux utilisateurs et aux rôles IAM. Pour ce faire, suivez les instructions de la section [Autoriser l’accès à la console de facturation](getting-started-account-iam.md) pour déléguer l’accès à la console de facturation.

## Fonction de tâche Facturation
<a name="jf_accounts-payable"></a>

**AWS nom de la politique gérée :** [Facturation](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/Billing)

**Cas d'utilisation :** cet utilisateur a besoin d'afficher les informations de facturation, de préparer les paiements et d'autoriser les paiements. L'utilisateur peut surveiller les coûts cumulés pour l'ensemble du AWS service.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde la totalité des autorisations de gestion de la facturation, des coûts, des moyens de paiement et des rapports. Pour d’autres exemples de politique de gestion des coûts, consultez les [exemples de politique AWS Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html) dans le *Guide de l’utilisateur AWS Billing and Cost Management * Pour plus d’informations sur les politiques gérées, consultez [Billing](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/Billing.html) dans le *Guide de référence des politiques gérées par AWS *.

**Note**  
Avant qu'un utilisateur ou un rôle IAM puisse accéder à la AWS Billing and Cost Management console avec les autorisations définies dans cette politique, vous devez d'abord activer l'accès aux utilisateurs et aux rôles IAM. Pour ce faire, suivez les instructions de la section [Autoriser l’accès à la console de facturation](getting-started-account-iam.md) pour déléguer l’accès à la console de facturation.

## Fonction de tâche Administrateur de base de données
<a name="jf_database-administrator"></a>

**AWS nom de la politique gérée : [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)**

**Cas d'utilisation :** cet utilisateur installe, configure et gère des bases de données dans le AWS cloud.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde les autorisations de créer, configurer et gérer des bases de données. Il inclut l'accès aux services AWS de base de données, tels qu'Amazon DynamoDB, Amazon Relational Database Service (RDS) et Amazon Redshift. Consultez la politique pour la liste entière de services de base de données que prend en charge cette politique. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [DatabaseAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DatabaseAdministrator.html)de référence des politiques AWS gérées*.

Cette politique relative aux fonctions professionnelles favorise la capacité de transférer des rôles aux AWS services. Elle autorise l'action `iam:PassRole` seulement pour les rôles nommés dans le tableau suivant. Pour plus d'informations, consultez [Création des rôles et association des politiques (console)](access_policies_job-functions_create-policies.md) plus loin dans cette rubrique.


| Cas d’utilisation | Nom de rôle (\$1 correspond à un caractère générique) | Type de rôle de service à sélectionner | Sélectionnez cette politique AWS gérée | 
| --- | --- | --- | --- | 
| Permettre à l'utilisateur de surveiller des bases de données RDS | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Rôle Amazon RDS pour la surveillance améliorée | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Permettre AWS Lambda de surveiller votre base de données et d'accéder à des bases de données externes | [rdbms-lambda-access](https://aws.amazon.com/blogs/big-data/from-sql-to-microservices-integrating-aws-lambda-with-relational-databases) | Amazon EC2 | [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess) | 
| Autoriser Lambda à télécharger des fichiers vers Amazon S3 et vers des clusters Amazon Redshift avec DynamoDB | [lambda\$1exec\$1role](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | AWS Lambda | Créer une nouvelle politique gérée, tel que défini dans l'[AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | 
| Autoriser les fonctions Lambda à agir comme des déclencheurs pour vos tables DynamoDB | [lambda-dynamodb-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaRôle Dynamo DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 
| Autoriser les fonctions Lambda à accéder à Amazon RDS dans un VPC | [lambda-vpc-execution-role](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide du développeur AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | [AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole) | 
|  AWS Data Pipeline Autoriser l'accès à vos AWS ressources | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide du développeur AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La AWS Data Pipeline documentation répertorie les autorisations requises pour ce cas d'utilisation. Voir les [rôles IAM](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) pour AWS Data Pipeline | 
| Permettre à vos applications qui s'exécutent sur des instances Amazon EC2 d'accéder à vos ressources AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide du développeur AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Fonction de tâche Scientifique des données
<a name="jf_data-scientist"></a>

**AWS nom de la politique gérée : [DataScientist](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DataScientist)**

**Cas d'utilisation :** cet utilisateur exécute des tâches et des demandes Hadoop. L'utilisateur accède également à des informations pour l'analytique des données et la business intelligence, et analyse celles-ci.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde les autorisations nécessaires pour créer, gérer et exécuter des requêtes sur un cluster Amazon EMR et pour effectuer des analyses de données à l'aide d'outils tels qu'Amazon. QuickSight La politique inclut l'accès à des services de data scientist supplémentaires AWS Data Pipeline, tels qu'Amazon EC2, Amazon Kinesis, Amazon Machine Learning et AI. SageMaker Consultez la politique pour la liste entière de services de scientifique de données que prend en charge cette politique. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [DataScientist](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DataScientist.html)de référence des politiques AWS gérées*.

Cette politique relative aux fonctions professionnelles favorise la capacité de transférer des rôles aux AWS services. Une déclaration permet de transmettre n'importe quel rôle à l' SageMaker IA. Une autre instruction autorise l'action `iam:PassRole` seulement pour les rôles nommés dans le tableau suivant. Pour plus d'informations, consultez [Création des rôles et association des politiques (console)](access_policies_job-functions_create-policies.md) plus loin dans cette rubrique.


| Cas d’utilisation | Nom de rôle (\$1 correspond à un caractère générique) | Type de rôle de service à sélectionner | AWS politique gérée à sélectionner | 
| --- | --- | --- | --- | 
| Autoriser les instances Amazon EC2 à accéder aux services et aux ressources appropriés pour les clusters | [EMR- \$1 EC2 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR pour EC2  | [AmazonElasticMapReduceforEC2Rôle](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role) | 
| Autoriser Amazon EMR à accéder au service et aux ressources Amazon EC2 pour les clusters | [EMR\$1 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR | [Amazon EMRService Policy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) | 
| Autoriser le service géré Kinesis pour Apache Flink à accéder aux sources de données de diffusion | [kinesis-\$1](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Créer un rôle avec une politique d'approbation, tel que défini dans l'[AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader). | Consultez l'[AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader), qui définit les quatre options possibles en fonction de votre cas d'utilisation. | 
|  AWS Data Pipeline Autoriser l'accès à vos AWS ressources | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide du développeur AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La AWS Data Pipeline documentation répertorie les autorisations requises pour ce cas d'utilisation. Voir les [rôles IAM](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) pour AWS Data Pipeline | 
| Permettre à vos applications qui s'exécutent sur des instances Amazon EC2 d'accéder à vos ressources AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide du développeur AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Fonction de tâche Utilisateur avec pouvoir Développeur
<a name="jf_developer-power-user"></a>

**AWS nom de la politique gérée : [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/PowerUserAccess)**

**Cas d'utilisation :** cet utilisateur exécute des tâches de développement d'applications et peut créer et configurer des ressources et des services qui prennent en charge le développement d'applications AWS conscientes.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** La première déclaration de cette politique utilise l'[`NotAction`](reference_policies_elements_notaction.md)élément pour autoriser toutes les actions pour tous les AWS services et pour toutes les ressources Gestion des identités et des accès AWS, à l'exception de AWS Organizations, et Gestion de compte AWS. La seconde instruction accorde des autorisations IAM pour créer un rôle lié à un service. Elle est requise par certains services qui doivent accéder aux ressources d'un autre service, par exemple, un compartiment Amazon S3. Il accorde également des AWS Organizations autorisations pour consulter les informations relatives à l'organisation de l'utilisateur, notamment l'adresse e-mail du compte de gestion et les limites de l'organisation. Bien que cette politique limite l'IAM AWS Organizations, elle permet à l'utilisateur d'effectuer toutes les actions IAM Identity Center si IAM Identity Center est activé. Il accorde également à la gestion du compte des autorisations permettant de voir quelles AWS régions sont activées ou désactivées pour le compte.

## Fonction de tâche Administrateur réseau
<a name="jf_network-administrator"></a>

**AWS nom de la politique gérée : [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)**

**Cas d'utilisation :** cet utilisateur est chargé de configurer et de gérer les ressources AWS du réseau.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde des autorisations pour créer et gérer des ressources réseau dans Auto Scaling, Amazon EC2 AWS Direct Connect, Route 53, Amazon CloudFront, Elastic Load Balancing AWS Elastic Beanstalk, Amazon SNS CloudWatch, Logs CloudWatch , Amazon S3, IAM et Amazon Virtual Private Cloud. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [NetworkAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/NetworkAdministrator.html)de référence des politiques AWS gérées*.

Cette fonction nécessite la capacité de transmettre des rôles aux AWS services. Elle accorde `iam:GetRole` et `iam:PassRole` seulement pour les rôles nommés dans le tableau suivant. Pour plus d'informations, consultez [Création des rôles et association des politiques (console)](access_policies_job-functions_create-policies.md) plus loin dans cette rubrique.


| Cas d’utilisation | Nom de rôle (\$1 correspond à un caractère générique) | Type de rôle de service à sélectionner | AWS politique gérée à sélectionner | 
| --- | --- | --- | --- | 
| Permet à Amazon VPC de créer et de gérer les CloudWatch journaux au nom de l'utilisateur afin de surveiller le trafic IP entrant et sortant de votre VPC | [flow-logs-\$1](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Créer un rôle avec une politique d'approbation, tel que défini dans le [Guide de l'utilisateur Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Ce cas d'utilisation n'a pas de politique AWS gérée existante, mais la documentation répertorie les autorisations requises. Consultez le [Guide de l'utilisateur Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam). | 

## Accès en lecture seule
<a name="awsmp_readonlyaccess"></a>

**AWS nom de la politique gérée : [ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess)**

**Cas d'utilisation :** cet utilisateur nécessite un accès en lecture seule à toutes les ressources d'un Compte AWS.

**Important**  
Cet utilisateur aura également accès à la lecture des données dans des services de stockage tels que les compartiments Amazon S3 et les tables Amazon DynamoDB.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** cette politique octroie les autorisations de répertorier, obtenir, décrire ou afficher les ressources et leurs attributs. Elle n'inclut pas des fonctions de mutation, telles que créer ou supprimer. Cette politique inclut l'accès en lecture seule aux AWS services liés à la sécurité, tels que et. Gestion des identités et des accès AWS AWS Billing and Cost Management Consultez la politique pour la liste entière des services et actions que prend en charge cette politique. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [ReadOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ReadOnlyAccess.html)de référence des politiques AWS gérées*. Si vous avez besoin d’une politique similaire qui n’accorde pas l’accès à la lecture des données dans les services de stockage, consultez [Fonction de tâche Utilisateur en affichage seul](#jf_view-only-user).

## Accès complet aux actions de service MCP
<a name="jf_mcp-service-actions"></a>

**AWS nom de la politique gérée : [AWSMcpServiceActionsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSMcpServiceActionsFullAccess)**

**Cas d'utilisation :** cet utilisateur doit accéder aux AWS services via des serveurs AWS MCP. Cette politique n'accorde pas l'accès aux actions entreprises par un service MCP à d'autres AWS services.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde l'autorisation d'appeler n'importe quelle action de service AWS MCP. Vous pouvez l'utiliser lorsque vous n'avez pas besoin de spécifier d'autorisations par service AWS MCP. Il n'accorde pas d'autorisations aux actions entreprises par le service MCP à d'autres AWS services. Ces autorisations doivent toujours être accordées séparément et en plus des actions du service MCP. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [AWSMcpServiceActionsFullAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSMcpServiceActionsFullAccess.html)de référence des politiques AWS gérées*.

## Fonction de tâche Audit de sécurité
<a name="jf_security-auditor"></a>

**AWS nom de la politique gérée : [SecurityAudit](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecurityAudit)**

**Cas d'utilisation :** cet utilisateur surveille les comptes pour vérifier leur conformité aux exigences de sécurité. Il peut accéder aux journaux et aux événements pour rechercher des brèches de sécurité potentielles ou d'éventuelles activités malveillantes.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde des autorisations pour consulter les données de configuration de nombreux AWS services et pour consulter leurs journaux. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [SecurityAudit](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SecurityAudit.html)de référence des politiques AWS gérées*.

## Fonction de tâche Utilisateur support
<a name="jf_support-user"></a>

**AWS nom de la politique gérée : AWSSupport** [Access](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSSupportAccess)

**Cas d'utilisation :** cet utilisateur contacte le AWS Support, crée des dossiers d'assistance et consulte l'état des dossiers existants.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde des autorisations pour créer et mettre à jour Support des dossiers. Pour plus d'informations sur la politique gérée, consultez le *Guide de référence [AWSSupportAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSSupportAccess.html) in AWS Managed Policy*.

## Fonction de tâche Administrateur système
<a name="jf_system-administrator"></a>

**AWS nom de la politique gérée : [SystemAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/SystemAdministrator)**

**Cas d'utilisation :** cet utilisateur configure et gère les ressources pour les opérations de développement.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde des autorisations pour créer et gérer des ressources sur une grande variété de AWS services AWS CloudTrail, notamment Amazon CloudWatch, AWS CodeCommit, AWS CodeDeploy, AWS Config, AWS Directory Service,, Amazon EC2,, Gestion des identités et des accès AWS, AWS Key Management Service, AWS Lambda Amazon RDS, Route 53, Amazon S3, Amazon SES, Amazon SQS et AWS Trusted Advisor Amazon VPC. Pour plus d'informations sur la stratégie gérée, consultez le *Guide [SystemAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SystemAdministrator.html)de référence des politiques AWS gérées*.

Cette fonction nécessite la capacité de transmettre des rôles aux AWS services. Elle accorde `iam:GetRole` et `iam:PassRole` seulement pour les rôles nommés dans le tableau suivant. Pour plus d'informations, consultez [Création des rôles et association des politiques (console)](access_policies_job-functions_create-policies.md) plus loin dans cette rubrique. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).


| Cas d’utilisation | Nom de rôle (\$1 correspond à un caractère générique) | Type de rôle de service à sélectionner | AWS politique gérée à sélectionner | 
| --- | --- | --- | --- | 
| Autoriser les applications s'exécutant dans des instances EC2 d'un cluster Amazon ECS à accéder à Amazon ECS | [ecr-sysadmin-\$1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) | Rôle Amazon EC2 pour EC2 Container Service  | [EC2ContainerServiceforEC2Rôle Amazon](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role) | 
| Permettre à un utilisateur de surveiller des bases de données | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Rôle Amazon RDS pour la surveillance améliorée | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Autorisez les applications exécutées dans des instances EC2 à accéder aux AWS ressources. | [ec2-sysadmin-\$1](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) | Amazon EC2 | Exemple de politique de rôle qui accorde l’accès à un compartiment S3, comme illustré dans le [Guide de l’utilisateur Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) ; à personnaliser en fonction des besoins | 
| Autoriser Lambda à lire les flux DynamoDB et à écrire dans les journaux CloudWatch  | [lambda-sysadmin-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaRôle Dynamo DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 

## Fonction de tâche Utilisateur en affichage seul
<a name="jf_view-only-user"></a>

**AWS nom de la politique gérée : [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess)**

**Cas d'utilisation :** cet utilisateur peut consulter la liste des AWS ressources et des métadonnées de base du compte pour tous les services. Il ne peut pas lire le contenu des ressources ou les metadonnées au-delà des informations de quotas et de listes des ressources.

**Mises à jour de la politique :** AWS maintient et met à jour cette politique. Pour obtenir un historique des modifications apportées à cette politique, affichez la politique dans la console IAM, puis choisissez l'onglet **Policy versions (Versions de politique**. Pour de plus amples informations sur les mises à jour de politique de fonction de tâche, veuillez consulter [Mises à jour des politiques AWS gérées pour les fonctions professionnelles](#security-iam-awsmanpol-jobfunction-updates).

**Description de la politique :** Cette politique accorde `List*``Describe*`,, `Get*``View*`, et `Lookup*` l'accès aux ressources pour les AWS services. Pour connaître les actions incluses dans cette politique pour chaque service, consultez [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess). Pour plus d'informations sur la stratégie gérée, consultez le *Guide [ViewOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ViewOnlyAccess.html)de référence des politiques AWS gérées*.

## Mises à jour des politiques AWS gérées pour les fonctions professionnelles
<a name="security-iam-awsmanpol-jobfunction-updates"></a>

Ces politiques sont toutes maintenues AWS et mises à jour pour inclure la prise en charge des nouveaux services et des nouvelles fonctionnalités au fur et à mesure qu'ils sont ajoutés par les AWS services. Elles ne peuvent pas être modifiées par les clients. Vous pouvez créer une copie de la politique, puis la modifier, mais cette copie n'est pas automatiquement mise à jour car elle AWS introduit de nouveaux services et opérations d'API.

Pour une politique de fonction de tâche, vous pouvez afficher l'historique des versions, ainsi que l'heure et la date de chaque mise à jour dans la console IAM. Pour cela, utilisez les liens sur cette page pour afficher les détails de la politique. Ensuite, choisissez l'onglet **Policy versions (Versions de politique)** pour afficher les versions. Cette page affiche les 25 dernières versions d'une politique. Pour afficher toutes les versions d'une politique, appelez la [get-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy-version.html) AWS CLI commande ou l'opération [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)API.

**Note**  
Vous pouvez avoir jusqu'à cinq versions d'une politique gérée par le client, mais vous pouvez AWS conserver l'historique complet des versions des politiques AWS gérées.

# Création des rôles et association des politiques (console)
<a name="access_policies_job-functions_create-policies"></a>

Plusieurs des politiques répertoriées précédemment permettent de configurer des AWS services avec des rôles qui permettent à ces services d'effectuer des opérations en votre nom. Les politiques de fonctions professionnelles spécifient les noms de rôles exacts à utiliser ou incluent au moins un préfixe qui indique la première partie du nom qui peut être utilisé. Pour créer un de ces rôles, suivez les étapes de la procédure ci-dessous.

**Pour créer un rôle pour une Service AWS (console IAM)**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation de la console IAM, sélectionnez **Roles** (Rôles), puis **Create role** (Créer un rôle).

1. Pour **Trusted entity** (Entité de confiance), choisissez **Service AWS**.

1. Pour **Service ou cas d’utilisation**, choisissez un service, puis choisissez le cas d’utilisation. Les cas d'utilisation sont définis par le service pour inclure la politique d'approbation nécessaire au service.

1. Choisissez **Suivant**.

1. Pour **Politiques d’autorisations**, les options dépendent du cas d’utilisation que vous avez sélectionné :
   + Si le service définit les autorisations pour le rôle, il n’est pas possible de sélectionner les politiques d’autorisation.
   + Choisissez parmi un ensemble limité de politiques d’autorisation.
   + Choisissez parmi toutes les politiques d’autorisation.
   + Ne sélectionnez aucune politique d’autorisation, créez les politiques une fois le rôle créé, puis attachez-les au rôle.

1. (Facultatif) Définissez une [limite d'autorisations](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Il s’agit d’une fonctionnalité avancée disponible pour les fonctions de service, mais pas pour les rôles liés à un service.

   1. Ouvrez la section **Définir une limite des autorisations** et choisissez **Utiliser une limite des autorisations pour contrôler le nombre maximum d’autorisations de rôle**. 

      IAM inclut une liste des politiques AWS gérées et gérées par le client dans votre compte.

   1. Sélectionnez la politique à utiliser comme limite d'autorisations.

1. Choisissez **Suivant**.

1. Pour **Nom du rôle**, les options dépendent du service :
   + Si le service définit le nom du rôle, vous ne pouvez pas modifier le nom du rôle.
   + Si le service définit un préfixe pour le nom du rôle, vous pouvez saisir un suffixe facultatif.
   + Si le service ne définit pas le nom du rôle, vous pouvez le nommer.
**Important**  
Lorsque vous nommez un rôle, notez ce qui suit :  
Les noms de rôles doivent être uniques au sein du Compte AWS vôtre et ne peuvent pas être rendus uniques au cas par cas.  
Par exemple, ne créez pas deux rôles nommés **PRODROLE** et **prodrole**. Lorsqu’un nom de rôle est utilisé dans une politique ou dans le cadre d’un ARN, le nom de rôle est sensible à la casse. Cependant, lorsqu’un nom de rôle apparaît aux clients dans la console, par exemple lors de la procédure d’ouverture de session, le nom de rôle est insensible à la casse.
Vous ne pouvez pas modifier le nom du rôle après sa création, car d’autres entités pourraient y faire référence.

1. (Facultatif) Pour **Description**, saisissez la description du rôle.

1. (Facultatif) Pour modifier les cas d’utilisation et les autorisations du rôle, dans les sections **Étape 1 : sélectionner les entités de confiance** ou **Étape 2 : ajouter des autorisations**, sélectionnez **Modifier**.

1. (Facultatif) Pour identifier, organiser ou rechercher le rôle, ajoutez des identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la section [Balises pour les Gestion des identités et des accès AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) dans le Guide de l'*utilisateur d'IAM*.

1. Passez en revue les informations du rôle, puis choisissez **Create role** (Créer un rôle).

## Exemple 1 : Configuration d'un utilisateur en tant qu'administrateur de base de données (console)
<a name="jf_example_1"></a>

Cet exemple illustre les étapes nécessaires pour configurer Alice, un utilisateur IAM, en tant que [Database Administrator](access_policies_job-functions.md#jf_database-administrator) (Administrateur de base de données). Vous utilisez les informations dans la première ligne de la table de cette section et autorisez l'utilisateur à activer la surveillance d'Amazon RDS. Vous attachez la [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)politique à l'utilisateur IAM d'Alice afin qu'il puisse gérer les services de base de données Amazon. Cette politique permet également à Alice de transmettre un rôle appelé `rds-monitoring-role` au service Amazon RDS qui autorise ce dernier à superviser les bases de données Amazon RDS en son nom.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Choisissez **Politiques**, tapez **database** dans la zone de recherche, puis appuyez sur Entrée.

1. Sélectionnez le bouton radio correspondant à la **DatabaseAdministrator**politique, choisissez **Actions**, puis choisissez **Joindre**.

1. Dans la liste des utilisateurs, sélectionnez **Alice**, puis choisissez **Attacher la politique**. Alice peut désormais administrer des AWS bases de données. Cependant, pour permettre à Alice de surveiller ces bases de données, vous devez configurer le rôle du service.

1. Dans le panneau de navigation de la console IAM, sélectionnez **Roles** (Rôles), puis **Create role** (Créer un rôle).

1. Choisissez le type de fonction du **AWS service** (Service ), puis **Amazon RDS**.

1. Sélectionnez le cas d'utilisation **Amazon RDS Role for Enhanced Monitoring**.

1. Amazon RDS définit les autorisations pour votre rôle. Choisissez **Suivant : Vérification** pour continuer.

1. Le nom du rôle doit être l'un de ceux spécifiés par la DatabaseAdministrator politique actuelle d'Alice. L'un de ces noms est **rds-monitoring-role**. Saisissez ceci pour le **Role name** (Nom du rôle).

1. (Facultatif) Dans le champ **Description du rôle**, saisissez la description du nouveau rôle.

1. Après avoir passé en revue les détails, choisissez **Créer un rôle**.

1. Alice peut désormais activer **RDS Enhanced Monitoring** (Surveillance améliorée RDS) dans la section **Monitoring** (Surveillance) de la console Amazon RDS. Par exemple, elle peut utiliser cette fonction lorsqu'elle crée une instance de base de données ou qu'elle crée un réplica en lecture, ou quand elle modifie une instance de base de données. Ils doivent saisir le nom du rôle qu'ils ont créé (rds-monitoring-role) dans le champ **Rôle de surveillance** lorsqu'ils définissent **Activer la surveillance améliorée** sur **Oui**. 

## Exemple 2 : Configuration d'un utilisateur en tant qu'administrateur réseau (console)
<a name="jf_example_2"></a>

Cet exemple montre les étapes nécessaires pour configurer Juan, un utilisateur IAM, en tant que [Administrateur réseau](access_policies_job-functions.md#jf_network-administrator). Il utilise les informations de la table de cette section pour autoriser Juan à superviser le trafic IP entrant et sortant d'un VPC. Cela permet également à Jorge de capturer ces informations dans les journaux de CloudWatch Logs. Vous attachez la [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)politique à l'utilisateur IAM de Jorge afin qu'il puisse configurer les ressources AWS réseau. Cette politique permet également à Juan de transmettre un rôle dont le nom commence par `flow-logs*` à Amazon EC2 lorsque vous créez un journal de flux. Dans ce scénario, à la différence de l'exemple 1, il n'y a aucun type de rôle de service prédéfini. Vous devez donc procéder différemment pour certaines étapes.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le panneau de navigation, choisissez **Politiques**, puis saisissez **network** dans la zone de recherche et appuyez sur Entrée.

1. Sélectionnez le bouton radio à côté de **NetworkAdministrator**la politique, choisissez **Actions**, puis choisissez **Joindre**.

1. Dans la liste des utilisateurs, cochez la case en regard de **Juan**, puis choisissez **Attacher la politique**. Jorge peut désormais administrer les ressources AWS du réseau. Cependant, pour activer la surveillance du trafic IP dans votre VPC, vous devez configurer le rôle de service.

1. Comme le rôle de service à créer n'a pas de politique gérée prédéfinie, il doit d'abord être créé. Dans le panneau de navigation, sélectionnez **Politicies** (Politiques), puis **Create policy** (Créer une politique).

1. Dans la section **Éditeur de politiques**, choisissez l'option **JSON** et copiez le texte du document de stratégie JSON suivant. Collez ce texte dans la zone de texte **JSON**. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Effect": "Allow",
         "Resource": "*"
       }
     ]
   }
   ```

------

1.  Résolvez les avertissements de sécurité, les erreurs ou les avertissements généraux générés durant la [validation de la politique](access_policies_policy-validator.md), puis choisissez **Suivant**. 
**Note**  
Vous pouvez basculer à tout moment entre les options des éditeurs **visuel** et **JSON**. Toutefois, si vous apportez des modifications ou si vous choisissez **Suivant** dans l'éditeur **visuel**, IAM peut restructurer votre politique afin de l'optimiser pour l'éditeur visuel. Pour de plus amples informations, veuillez consulter [Restructuration de politique](troubleshoot_policies.md#troubleshoot_viseditor-restructure).

1. Sur la page **Vérifier et créer**, tapez **vpc-flow-logs-policy-for-service-role** pour le nom de la politique. Vérifiez les **Autorisations définies dans cette politique** pour voir les autorisations accordées par votre politique, puis choisissez **Créer une politique** pour enregistrer votre travail.

   La nouvelle politique s'affiche dans la liste des politiques gérées et est prête à être attachée.

1. Dans le panneau de navigation de la console IAM, sélectionnez **Roles** (Rôles), puis **Create role** (Créer un rôle).

1. Choisissez le type de fonction du **AWS service** (Service ), puis **Amazon EC2**.

1. Sélectionnez le cas d'utilisation **Amazon EC2**.

1. Sur la page **Joindre des politiques d'autorisation**, choisissez la politique que vous avez créée précédemmentfor-service-role, **vpc-flow-logs-policy-**, puis choisissez **Suivant : Réviser**.

1. Le nom du rôle doit être autorisé par la NetworkAdministrator politique actuelle de Jorge. Tout nom qui commence par `flow-logs-` est autorisé. Pour cet exemple, saisissez **flow-logs-for-jorge** comme **Role name** (Nom du rôle).

1. (Facultatif) Dans le champ **Description du rôle**, saisissez la description du nouveau rôle.

1. Après avoir passé en revue les détails, choisissez **Créer un rôle**.

1. Vous pouvez désormais configurer la politique d'approbation nécessaire pour ce scénario. Sur la page **Rôles**, choisissez le **flow-logs-for-jorge**rôle (le nom, pas la case à cocher). Sur la page des détails de votre nouveau rôle, choisissez l'onglet **Relations d'approbation**, puis choisissez **Modifier la relation d'approbation**.

1. Modifier la ligne « Service » comme suit, en remplaçant l'entrée pour `ec2.amazonaws.com` :

   ```
           "Service": "vpc-flow-logs.amazonaws.com"
   ```

1. Juan peut désormais créer des journaux de flux pour un VPC ou un sous-réseau dans la console Amazon EC2. Lorsque vous créez le journal de flux, spécifiez le **flow-logs-for-jorge**rôle. Ce rôle dispose des autorisations pour créer le journal et y consigner des données.

# AWS clés contextuelles de condition globale
<a name="reference_policies_condition-keys"></a>

Lorsqu'un [principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) fait une [demande](intro-structure.md#intro-structure-request) à AWS, AWS rassemble les informations de la demande dans un [contexte de demande](intro-structure.md#intro-structure-request). 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. Les informations sur les requêtes proviennent de différentes sources, notamment du principal qui fait la requête, de la ressource sur laquelle porte la requête et des métadonnées relatives à la requête elle-même.

**Les clés de condition globales** peuvent être utilisées dans tous les services AWS . Bien que ces clés de condition puissent être utilisées dans toutes les politiques, elles ne sont pas disponibles dans tous les contextes de requête. Par exemple, la clé de condition `aws:SourceAccount` n’est disponible que lorsque l’appel à votre ressource est effectué directement par un [principal de service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). Pour savoir quand une clé globale figure dans le contexte de la requête, consultez les informations **Disponibilité** pour chaque clé.

Certains services créent leurs propres clés de condition qui sont disponibles dans le contexte de requête pour d’autres services. **Les clés de condition interservices** sont un type de clé de condition globale qui inclut un préfixe correspondant au nom du service, tel que `ec2:` ou`lambda:`, mais qui est disponible dans d’autres services.

Les **clés de condition spécifiques au service** sont définies pour être utilisées avec un service individuel AWS . Par exemple, Amazon S3 vous permet de rédiger une politique avec la clé de condition `s3:VersionId` pour limiter l’accès à une version spécifique d’un objet Amazon S3. Cette clé de condition est propre au service, ce qui signifie qu’elle ne fonctionne qu’avec les requêtes adressées au service Amazon S3. Pour les clés de condition spécifiques à un service, consultez [Actions, ressources et clés de condition pour les AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) et choisissez le service dont vous souhaitez afficher les clés. 

**Note**  
Si vous utilisez des clés de condition qui ne sont disponibles que dans certaines circonstances, vous pouvez utiliser les [IfExists](reference_policies_elements_condition_operators.md#Conditions_IfExists)versions 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. Pour plus d’informations sur la manière dont une politique est évaluée lorsqu’une clé n’est pas présente pour d’autres opérateurs, consultez la section [Opérateurs de condition](reference_policies_elements_condition_operators.md).  

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

**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 [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Propriétés du principal | Propriétés d’une session de rôle | Propriétés du réseau | Propriétés de la ressource | Propriétés de la requête | 
| --- | --- | --- | --- | --- | 
|  `aws:PrincipalArn` `aws:PrincipalAccount` `aws:PrincipalOrgPaths` `aws:PrincipalOrgID` `aws:PrincipalTag/*tag-key*` `aws:PrincipalIsAWSService` `aws:PrincipalServiceName` `aws:PrincipalServiceNamesList` `aws:PrincipalType` `aws:userid` `aws:username`  |  `aws:AssumedRoot` `aws:FederatedProvider` `aws:TokenIssueTime` `aws:MultiFactorAuthAge` `aws:MultiFactorAuthPresent` `aws:ChatbotSourceArn` `aws:Ec2InstanceSourceVpc` `aws:Ec2InstanceSourcePrivateIPv4` `aws:SourceIdentity` `ec2:RoleDelivery` `ec2:SourceInstanceArn` `glue:RoleAssumedBy` `glue:CredentialIssuingService` `codebuild:BuildArn` `codebuild:ProjectArn` `lambda:SourceFunctionArn` `ssm:SourceInstanceArn` `identitystore:UserId`  |  `aws:SourceIp` `aws:SourceVpc` `aws:SourceVpcArn` `aws:SourceVpce` `aws:VpceAccount` `aws:VpceOrgID` `aws:VpceOrgPaths` `aws:VpcSourceIp`  |  `aws:ResourceAccount` `aws:ResourceOrgID` `aws:ResourceOrgPaths` `aws:ResourceTag/*tag-key*`  |  `aws:CalledVia` `aws:CalledViaFirst` `aws:CalledViaLast` `aws:CalledViaAWSMCP` `aws:ViaAWSService` `aws:ViaAWSMCPService` `aws:CurrentTime` `aws:EpochTime` `aws:referer` `aws:RequestedRegion` `aws:RequestTag/*tag-key*` `aws:TagKeys` `aws:SecureTransport` `aws:SourceAccount` `aws:SourceArn` `aws:SourceOrgID` `aws:SourceOrgPaths` `aws:UserAgent` `aws:IsMcpServiceAction`  | 

## Clés de condition sensibles
<a name="condition-keys-sensitive"></a>

Les clés de condition suivantes sont considérées comme sensibles. Le recours à des caractères génériques dans ces clés de condition ne répond à aucun cas d’utilisation valable, même avec une sous-chaîne de la valeur de la clé contenant un caractère générique. En effet, le caractère générique peut faire correspondre la clé de la condition à n’importe quelle valeur, ce qui peut présenter un risque pour la sécurité.
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:ResourceAccount`
+ `aws:ResourceOrgID`
+ `aws:SourceAccount`
+ `aws:SourceOrgID`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:VpceAccount`
+ `aws:VpceOrgID`

## Propriétés du principal
<a name="condition-keys-principal-properties"></a>

Utilisez les clés de condition suivantes pour comparer les détails concernant le principal qui effectue la requête avec les propriétés du principal que vous spécifiez dans la politique. Pour obtenir la liste des principaux qui peuvent effectuer des requêtes, consultez [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying).

### aws:PrincipalArn
<a name="condition-keys-principalarn"></a>

Utilisez cette clé pour comparer l'[Amazon Resource Name](reference_identifiers.md#identifiers-arns) (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 utilisateur principal fédéré
  + Compte AWS utilisateur root
+ **Type de données** : ARN

  AWS recommande d'utiliser des [opérateurs ARN plutôt que des opérateurs](reference_policies_elements_condition_operators.md#Conditions_ARN) de [chaîne](reference_policies_elements_condition_operators.md#Conditions_String) lors de la comparaison ARNs.
+ **Type de valeur** – À valeur unique
+ **Valeurs d’exemple** La liste suivante indique la valeur de contexte de requête renvoyée pour les différents types de principaux que vous pouvez spécifier dans la clé de condition `aws:PrincipalArn` :
  + **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](reference_policies_elements_principal.md#principal-role-session).

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

    ```
    arn:aws:iam::123456789012:user/user-name
    ```
  + **AWS STS principes d'utilisateur fédérés** — Le contexte de demande contient la valeur suivante pour la clé de condition. `aws:PrincipalArn`

    ```
    arn:aws:sts::123456789012:federated-user/user-name
    ```
  + **Compte AWS utilisateur root** — Le contexte de demande 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 [Compte AWS principes](reference_policies_elements_principal.md#principal-accounts). 

    ```
    arn:aws:iam::123456789012:root
    ```

Vous pouvez spécifier l'ARN de l'utilisateur root comme valeur de clé de condition `aws:PrincipalArn` dans les politiques AWS Organizations de contrôle des services (SCPs). SCPssont un type de politique d'organisation utilisé pour gérer les autorisations au sein de votre organisation et n'affectent que les comptes des membres de 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 du SCP SCPs sur les autorisations, consultez la section [Effets du SCP sur les autorisations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) dans le *Guide de l'AWS Organizations utilisateur*.

### aws:PrincipalAccount
<a name="condition-keys-principalaccount"></a>

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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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`.

------
#### [ JSON ]

****  

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

------

### aws:PrincipalOrgPaths
<a name="condition-keys-principalorgpaths"></a>

Utilisez cette clé pour comparer le AWS Organizations chemin du principal qui fait la demande avec le chemin indiqué dans la politique. Ce principal peut être un utilisateur IAM, un rôle IAM, un principal utilisateur fédéré AWS STS ou un Utilisateur racine d'un compte AWS. Dans une politique, cette clé de condition garantit que le demandeur est membre du compte au sein de la racine de l'organisation ou des unités organisationnelles (OUs) spécifiées dans AWS Organizations. Un AWS Organizations chemin est une représentation textuelle de la structure d'une AWS Organizations entité. Pour de plus amples informations sur l'utilisation et la compréhension des chemins, veuillez consulter [Comprendre le chemin de AWS Organizations l'entité](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **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 données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **Type de valeur** – À valeur multiple

**Note**  
 IDs Les organisations sont uniques au niveau mondial, mais l'unité d'organisation IDs et la racine ne IDs 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` les principaux des comptes rattachés directement à l'unité d'organisation`ou-ab12-22222222`, mais pas à son enfant OUs.

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

La condition suivante s'applique `true` aux titulaires d'un compte rattaché directement à l'UO ou à l'un de ses enfants OUs. 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 s'`true`applique aux principaux d'un compte rattaché directement à l'un des enfants OUs, 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 [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

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

### aws:PrincipalOrgID
<a name="condition-keys-principalorgid"></a>

Utilisez cette clé pour comparer l'identifiant de l'organisation 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é.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Cette clé globale constitue une alternative à la liste de tous IDs les AWS comptes 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](access_policies_identity-vs-resource.md). Vous pouvez spécifier l'[ID de l'organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) 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 `amzn-s3-demo-bucket`. 

------
#### [ JSON ]

****  

```
 {
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AllowPutObject",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "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 AWS les services qui interagissent avec vos ressources internes, tels que AWS CloudTrail l'envoi de données de journal vers vos compartiments Amazon S3. Pour savoir comment accorder l'accès aux AWS services en toute sécurité, consultez[aws:PrincipalIsAWSService](#condition-keys-principalisawsservice).

Pour plus d'informations AWS Organizations, voir [Qu'est-ce que c'est AWS Organizations ?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) dans le *guide de AWS Organizations l'utilisateur*.

### aws:PrincipalTag/*tag-key*
<a name="condition-keys-principaltag"></a>

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](id_session-tags.md). Les demandes anonymes n'incluent pas cette clé.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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 [Tags pour les Gestion des identités et des accès AWS ressources](id_tags.md). Vous pouvez utiliser `aws:PrincipalTag`pour le [contrôle d'accès](access_iam-tags.md#access_iam-tags_control-principals) 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 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).

------
#### [ JSON ]

****  

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

------

### aws:PrincipalIsAWSService
<a name="condition-keys-principalisawsservice"></a>

Utilisez cette touche pour vérifier si l'appel à votre ressource est effectué directement par un [directeur AWS de service](reference_policies_elements_principal.md#principal-services). 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) 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é.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

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

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/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 Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gv-_H8a42G4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gv-_H8a42G4)


### aws:PrincipalServiceName
<a name="condition-keys-principalservicename"></a>

Utilisez cette clé pour comparer le nom du [principal de service](reference_policies_elements_principal.md#principal-services) 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 principal du AWS CloudTrail service est`cloudtrail.amazonaws.com`.
+ **Disponibilité** — Cette clé est présente dans la demande lorsque l'appel est effectué par un directeur AWS de service. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) 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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

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

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22",
          "aws:PrincipalServiceName": "cloudtrail.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalServiceNamesList
<a name="condition-keys-principalservicenameslist"></a>

Cette clé fournit une liste de tous les noms des [principal de service](reference_policies_elements_principal.md#principal-services) 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 directeur AWS de service. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) 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 données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **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](reference_policies_elements_condition_operators.md#Conditions_String) pour cette clé. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:PrincipalType
<a name="condition-keys-principaltype"></a>

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 [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying). Pour des exemples spécifiques de valeurs clés `principal`, veuillez consulter [Valeurs de la clé du principal](reference_policies_variables.md#principaltable).
+ **Disponibilité** : cette clé figure dans le contexte de la demande pour toutes les demandes, y compris les requêtes anonymes.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

### aws:userid
<a name="condition-keys-userid"></a>

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 [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying). Pour des exemples spécifiques de valeurs clés `principal`, veuillez consulter [Valeurs de la clé du principal](reference_policies_variables.md#principaltable).
+ **Disponibilité** : cette clé figure dans le contexte de la demande pour toutes les demandes, y compris les requêtes anonymes.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

### aws:username
<a name="condition-keys-username"></a>

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 [Comment spécifier un principal](reference_policies_elements_principal.md#Principal_specifying). Pour des exemples spécifiques de valeurs clés `principal`, veuillez consulter [Valeurs de la clé du principal](reference_policies_variables.md#principaltable).
+ **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 des rôles Utilisateur racine d'un compte AWS ou 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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

## Propriétés d’une session de rôle
<a name="condition-keys-role-session-properties"></a>

Utilisez les clés de condition suivantes pour comparer les propriétés de la session de rôle au moment de sa génération. Ces clés de condition ne sont disponibles que lorsqu’une demande est effectuée par un principal avec des informations d’identification de session de rôle ou de principal d’utilisateur fédéré. Les valeurs de ces clés de condition sont intégrées dans le jeton de session du rôle.

Un [rôle](reference_policies_elements_principal.md#principal-roles) est un type de principal. Vous pouvez également utiliser les clés de condition de la section [Propriétés du principal](#condition-keys-principal-properties) pour évaluer les propriétés d’un rôle lorsque ce dernier effectue une requête.

### aws:AssumedRoot
<a name="condition-keys-assumedroot"></a>

Utilisez cette clé pour vérifier si la demande a été faite à l'aide de [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html). `AssumeRoot`renvoie des informations d'identification à court terme pour une session utilisateur root privilégiée que vous pouvez utiliser pour effectuer des actions privilégiées sur les comptes des membres de votre organisation. Pour de plus amples informations, veuillez consulter [Gestion centralisée de l’accès root pour les comptes membres](id_root-user.md#id_root-user-access-management).
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande uniquement lorsque le principal utilise les informations d'identification de [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html)pour effectuer la demande.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

Dans l'exemple suivant, lorsqu'il est utilisé comme politique de contrôle des services, interdit l'utilisation des informations d'identification à long terme d'un utilisateur root dans un compte AWS Organizations membre. La politique n’empêche pas les sessions `AssumeRoot` d’effectuer les actions autorisées par une session `AssumeRoot`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
       {
          "Effect":"Deny",
          "Action":"*",
          "Resource": "*",
          "Condition":{
             "ArnLike":{
                "aws:PrincipalArn":[
                   "arn:aws:iam::*:root"
                ]
             },
             "Null":{
                "aws:AssumedRoot":"true"
             }
          }
       }
    ]
 }
```

------

### aws:FederatedProvider
<a name="condition-keys-federatedprovider"></a>

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é assumé à l'aide de l'[https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity) AWS STS opération. 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 dans la session de rôle d’un rôle qui a été assumé à l’aide du fournisseur OpenID Connect (OIDC) et dans la politique de confiance de rôle lorsqu’un fournisseur OIDC est utilisé pour appeler `AssumeRoleWithWebIdentity`.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)\$1
+ **Type de valeur** – À valeur unique

\$1 Le type de données dépend de votre IdP :
+ **Si vous utilisez un AWS IdP intégré, tel qu'[Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html), la valeur clé sera une chaîne.** La valeur clé peut ressembler à : `cognito-identity.amazonaws.com`.
+ **Si vous utilisez un IdP qui n'est pas intégré à Amazon EKS ou qui n'est pas intégré à AWS[https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)[Amazon EKS](https://docs.aws.amazon.com//eks/latest/userguide/associate-service-account-role.html), la valeur clé sera ARN.** La valeur clé peut ressembler à : `arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID`.

Pour plus d'informations sur les IdPs réseaux externes`AssumeRoleWithWebIdentity`, voir[Scénarios courants](id_federation_common_scenarios.md). Pour de plus amples informations, veuillez consulter [Principaux de séance de rôle](reference_policies_elements_principal.md#principal-role-session).

### aws:TokenIssueTime
<a name="condition-keys-tokenissuetime"></a>

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 AWS CLI les demandes AWS d'API ou de AWS SDK effectuées à l'aide de clés d'accès.
+ **Type de données** – [Date](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Type de valeur** – À valeur unique

Pour savoir quels services prennent en charge l'utilisation d'informations d'identification temporaires, consultez [AWS services qui fonctionnent avec IAM](reference_aws-services-that-work-with-iam.md).

### aws:MultiFactorAuthAge
<a name="condition-keys-multifactorauthage"></a>

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 [AWS Authentification multifactorielle dans IAM](id_credentials_mfa.md).

**Important**  
Cette clé de condition n'est pas présente pour les identités fédérées ou les demandes effectuées à l'aide de clés d'accès pour signer les demandes de AWS CLI, d' AWS API ou de AWS SDK. Pour en savoir plus sur l’ajout d’une protection MFA aux opérations d’API à l’aide d’informations d’identification de sécurité temporaires, consultez [Accès sécurisé aux API avec MFA](id_credentials_mfa_configure-api-require.md).  
Pour vérifier si le MFA est utilisé pour valider les identités fédérées IAM, vous pouvez transmettre la méthode d'authentification de votre fournisseur d'identité à AWS une balise de session. Pour en savoir plus, consultez [Transmettez les tags de session AWS STS](id_session-tags.md). Pour appliquer MFA aux identités IAM Identity Center, vous pouvez [activer les attributs pour le contrôle d’accès](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) afin de transmettre une demande d’assertion SAML avec la méthode d’authentification de votre fournisseur d’identité à IAM Identity Center.
+ **Disponibilité** : cette clé figure dans le contexte de la demande uniquement lorsque le principal utilise des [informations d’identification temporaires](id_credentials_temp.md) pour effectuer la requête. Les politiques avec des conditions MFA peuvent être attachées à ce qui suit :
  + Un utilisateur ou un groupe IAM
  + Une ressource telle qu'un compartiment Amazon S3, une file d'attente Amazon SQS ou une rubrique Amazon SNS
  + La politique d'approbation d'un rôle IAM qui peut être endossée par un utilisateur
+ **Type de données** – [Numérique](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Type de valeur** – À valeur unique

### aws:MultiFactorAuthPresent
<a name="condition-keys-multifactorauthpresent"></a>

Utilisez cette clé pour vérifier si l’authentification multifactorielle (MFA) a été utilisée pour valider les [informations d’identification de sécurité temporaires](id_credentials_temp.md) qui ont servi à effectuer la requête.

**Important**  
Cette clé de condition n'est pas présente pour les identités fédérées ou les demandes effectuées à l'aide de clés d'accès pour signer les demandes de AWS CLI, d' AWS API ou de AWS SDK. Pour en savoir plus sur l’ajout d’une protection MFA aux opérations d’API à l’aide d’informations d’identification de sécurité temporaires, consultez [Accès sécurisé aux API avec MFA](id_credentials_mfa_configure-api-require.md).  
Pour vérifier si le MFA est utilisé pour valider les identités fédérées IAM, vous pouvez transmettre la méthode d'authentification de votre fournisseur d'identité à AWS une balise de session. Pour en savoir plus, consultez [Transmettez les tags de session AWS STS](id_session-tags.md). Pour appliquer MFA aux identités IAM Identity Center, vous pouvez [activer les attributs pour le contrôle d’accès](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) afin de transmettre une demande d’assertion SAML avec la méthode d’authentification de votre fournisseur d’identité à IAM Identity Center.
+ **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. Les politiques avec des conditions MFA peuvent être attachées à ce qui suit :
  + Un utilisateur ou un groupe IAM
  + Une ressource telle qu'un compartiment Amazon S3, une file d'attente Amazon SQS ou une rubrique Amazon SNS
  + La politique d'approbation d'un rôle IAM qui peut être endossée par un utilisateur
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

Les informations d'identification temporaires sont utilisées pour authentifier les rôles IAM et les utilisateurs IAM à l'aide de jetons temporaires provenant de [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html), et les utilisateurs du. AWS Management Console

Les clés d'accès utilisateur IAM sont des informations d'identification à long terme, mais dans certains cas, elles AWS créent des informations d'identification temporaires au nom des utilisateurs IAM pour 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 utilisent AWS Management Console 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 appelle un AWS service, le service réutilise les informations d'identification de l'utilisateur pour faire une autre demande à un autre service. Par exemple, lorsque vous appelez Athena pour accéder à un compartiment Amazon S3 ou lorsque vous l'utilisez CloudFormation pour créer une instance Amazon EC2. Pour la demande suivante, AWS utilise des informations d'identification temporaires.

Pour savoir quels services prennent en charge l'utilisation d'informations d'identification temporaires, consultez [AWS services qui fonctionnent avec IAM](reference_aws-services-that-work-with-iam.md).

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`](reference_policies_elements_condition_operators.md#Conditions_IfExists) 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. Il refuse également les demandes effectuées à l'aide d'informations d'identification à long terme, telles que les opérations AWS CLI d' AWS API effectuées à l'aide de 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. Ceci est plus sûr, mais peut casser tout code ou script utilisant des clés d'accès pour accéder à l' AWS API AWS CLI or. 

**Combinaisons alternatives**  
Vous pouvez également utiliser l'[`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists)opérateur pour autoriser les demandes authentifiées par MFA et/ou les demandes d' AWS API effectuées à l' AWS CLI 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 AWS CLI les opérations AWS d'API et de AWS SDK 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:ChatbotSourceArn
<a name="condition-keys-chatbotsourcearn"></a>

Utilisez cette clé pour comparer l’ARN de configuration du chat source défini par le principal à l’ARN de configuration du chat que vous spécifiez dans la politique du rôle IAM associé à la configuration de votre canal. Vous pouvez autoriser les demandes en fonction de la session d’attribution de rôle initiée par Amazon Q Developer dans les applications de chat.
+ **Disponibilité** : cette clé figure dans le contexte de la demande par le service Amazon Q Developer dans les applications de chat lorsqu’une session de rôle est prise en charge. La valeur clé est l’ARN de configuration du chat, par exemple lorsque vous [exécutez une commande AWS CLI depuis un canal de discussion](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html).
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur :** – `arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel`

La politique suivante refuse les requêtes put Amazon S3 put sur le compartiment spécifié pour toutes les requêtes provenant d’un canal Slack.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleS3Deny",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnLike": {
                      "aws:ChatbotSourceArn": "arn:aws:chatbot::*:chat-configuration/slack-channel/*"
                }
            }
        }
    ]
}
```

------

### aws:Ec2InstanceSourceVpc
<a name="condition-keys-ec2instancesourcevpc"></a>

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`](#condition-keys-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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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.

------
#### [ JSON ]

****  

```
{
  "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 permet `aws:ViaAWSService` d' AWS autoriser les demandes lorsque les 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 à un compartiment Amazon S3 chiffré, Amazon S3 passe un appel en votre AWS KMS nom. Certaines clés ne sont pas présentes lorsque la demande est faite à AWS KMS.

### aws:Ec2InstanceSourcePrivateIPv4
<a name="condition-keys-ec2instancesourceprivateip4"></a>

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 données** – [Adresse IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **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.

L'exemple suivant est une politique de contrôle des services (SCP) qui refuse l'accès à toutes les ressources sauf si la demande arrive via un point de terminaison VPC dans le même VPC que les informations d'identification du rôle. Dans cet exemple, `aws:Ec2InstanceSourcePrivateIPv4` limite la source des informations d’identification à une instance particulière en fonction de l’adresse IP source.

------
#### [ JSON ]

****  

```
{
    "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:SourceIdentity
<a name="condition-keys-sourceidentity"></a>

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 une fois qu'une identité source a été définie lorsqu'un rôle est assumé à l'aide d'une commande AWS STS CLI ou d'une opération d' AWS STS `AssumeRole`API assume-role.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé dans une politique pour autoriser les acteurs ayant défini une identité source à effectuer des actions lorsqu'ils assument un rôle. AWS L'activité pour l'identité source spécifiée du rôle apparaît dans [AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds). 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`](reference_policies_iam-condition-keys.md#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 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](id_roles.md#iam-term-role-chaining). 

La [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity)clé est présente dans la demande lorsque le principal définit initialement une identité source tout en assumant un rôle à l'aide d'une commande AWS STS CLI ou d'une opération d' AWS STS `AssumeRole`API assume-role. 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.

------
#### [ JSON ]

****  

```
{
    "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](id_credentials_temp_control-access_monitor.md).

### ec2:RoleDelivery
<a name="condition-keys-ec2-role-delivery"></a>

Utilisez cette clé pour comparer la version du service de métadonnées d’instance dans la requête signée avec les informations d’identification du rôle IAM pour Amazon EC2. Le service de métadonnées d'instance fait la distinction entre les IMDSv2 demandes IMDSv1 et selon que, pour une demande donnée, `GET` des en-têtes `PUT` ou des en-têtes, qui sont uniques à IMDSv2, sont présents dans cette demande.
+ **Disponibilité** : cette clé est incluse dans le contexte de la requête chaque fois que la session de rôle est créée par une instance Amazon EC2.
+ **Type de données** – [Numérique](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Type de valeur** – À valeur unique
+ **Exemples de valeurs** : 1,0, 2,0

Vous pouvez configurer le service de métadonnées d'instance (IMDS) sur chaque instance afin que le code local ou les utilisateurs puissent l'utiliser IMDSv2. Lorsque vous spécifiez que cela IMDSv2 doit être utilisé, cela IMDSv1 ne fonctionne plus.
+ Service de métadonnées d'instance, version 1 (IMDSv1) — Une méthode de demande/réponse 
+ Service de métadonnées d'instance version 2 (IMDSv2) : méthode orientée session

Pour plus d'informations sur la configuration de votre instance à utiliser IMDSv2, consultez [Configurer les options de métadonnées de l'instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html).

Dans l'exemple suivant, l'accès est refusé si la RoleDelivery valeur ec2 : dans le contexte de la demande est 1.0 (IMDSv1). Cette instruction de politique peut être appliquée de manière générale car, si la demande n’est pas signée par les informations d’identification de rôle Amazon EC2, elle n’a aucun effet.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

Pour plus d’informations, consultez [Exemples de politiques pour travailler avec les métadonnées d’instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-instance-metadata).

### ec2:SourceInstanceArn
<a name="condition-keys-ec2-source-instance-arn"></a>

Utilisez cette clé pour comparer l’ARN de l’instance à partir de laquelle la session du rôle est générée.
+ **Disponibilité** : cette clé est incluse dans le contexte de la requête chaque fois que la session de rôle est créée par une instance Amazon EC2.
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur — arn:aws:ec2:us-west** - 2:111111111111:instance/instance-id

Pour des exemples de politiques, consultez [Accorder à une instance spécifique l’autorisation d’afficher des ressources dans d’autres services AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-source-instance).

### glue:RoleAssumedBy
<a name="condition-keys-glue-role-assumed-by"></a>

Le AWS Glue service définit cette clé de condition pour chaque demande d' AWS API lorsqu'il AWS Glue effectue une demande en utilisant un rôle de service pour le compte du client (pas par un poste ou un point de terminaison de développeur, mais directement par le AWS Glue service). Utilisez cette clé pour vérifier si un appel à une AWS ressource provient du AWS Glue service.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande lorsque AWS Glue vous effectuez une demande en utilisant un rôle de service pour le compte du client.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** : cette clé est toujours définie sur `glue.amazonaws.com`.

L'exemple suivant ajoute une condition permettant au AWS Glue service d'obtenir un objet depuis un compartiment Amazon S3.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:RoleAssumedBy": "glue.amazonaws.com"
        }
    }
}
```

### glue:CredentialIssuingService
<a name="condition-keys-glue-credential-issuing"></a>

Le AWS Glue service définit cette clé pour chaque demande d' AWS API à l'aide d'un rôle de service provenant d'un poste de travail ou d'un point de terminaison de développeur. Utilisez cette clé pour vérifier si un appel à une AWS ressource provient d'une AWS Glue tâche ou d'un point de terminaison du développeur.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande lorsque vous effectuez une AWS Glue demande provenant d'un poste de travail ou d'un point de terminaison de développeur.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** : cette clé est toujours définie sur `glue.amazonaws.com`.

L'exemple suivant ajoute une condition attachée à un rôle IAM utilisé par une AWS Glue tâche. Cela garantit que certaines actions sont allowed/denied basées sur le fait que la session de rôle est utilisée ou non pour un environnement d'exécution de AWS Glue tâches.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:CredentialIssuingService": "glue.amazonaws.com"
        }
    }
}
```

### codebuild:BuildArn
<a name="condition-keys-codebuild-build-arn"></a>

Cette clé identifie l'ARN de CodeBuild build auquel les informations d'identification du rôle IAM ont été fournies. Utilisez cette clé pour vérifier si un appel à une AWS ressource provient d'une CodeBuild version spécifique.

**Note**  
La valeur complète de n'`codebuild:BuildArn`est pas connue à l'avance car elle contient l'ID de build généré dynamiquement.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande chaque fois qu'une demande est faite par un rôle assumé par CodeBuild.
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** — arn:aws:codebuild:us-east- 1:123456789012:build/:12345678-1234-1234-1234-1234-123456789012 MyBuildProject

L'exemple suivant permet à une CodeBuild version spécifique `s3:GetObject` d'avoir accès au compartiment spécifié.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnLike": {
            "codebuild:BuildArn": "arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:*"
        }
    }
}
```

### codebuild:ProjectArn
<a name="condition-keys-codebuild-project-arn"></a>

Cette clé identifie l'ARN du CodeBuild projet selon lequel les informations d'identification du rôle IAM ont été fournies à une CodeBuild version. Utilisez cette clé pour vérifier si un appel à une AWS ressource provient d'un CodeBuild projet spécifique.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande chaque fois qu'une demande est faite par un rôle assumé par CodeBuild.
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** — arn:aws:codebuild:us-east- 1:123456789012:project/ MyBuildProject

L'exemple suivant permet à n'importe quelle version d'un CodeBuild projet spécifique d'avoir `s3:GetObject` accès au bucket spécifié.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnEquals": {
            "codebuild:ProjectArn": "arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject"
        }
    }
}
```

### lambda:SourceFunctionArn
<a name="condition-keys-lambda-source-function-arn"></a>

Utilisez cette clé pour identifier l’ARN de la fonction Lambda auquel les informations d’identification du rôle IAM ont été fournies. Le service Lambda définit cette clé pour chaque demande d' AWS API provenant de l'environnement d'exécution de votre fonction. Utilisez cette clé pour vérifier si un appel à une AWS ressource provient du code d'une fonction Lambda spécifique. Lambda définit également cette clé pour certaines requêtes provenant de l'extérieur de l'environnement d'exécution, telles que l'écriture de journaux CloudWatch et l'envoi de traces à X-Ray.
+ **Disponibilité** : cette clé est incluse dans le contexte de la requête chaque fois que le code de la fonction Lambda est invoqué.
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** — arn:aws:lambda:us-east- 1:123456789012:function : TestFunction

L’exemple suivant permet à une fonction Lambda spécifique d’accéder `s3:PutObject` au compartiment spécifié.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

------

Pour plus d’informations, consultez la section [Travailler avec les informations d’identification de l’environnement d’exécution Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-source-function-arn) dans le *Guide du développeur AWS Lambda *.

### ssm:SourceInstanceArn
<a name="condition-keys-ssm-source-instance-arn"></a>

Utilisez cette clé pour identifier l'ARN de l'instance AWS Systems Manager gérée auquel les informations d'identification du rôle IAM ont été fournies. Cette clé de condition n’est pas présente lorsque la requête provient d’une instance gérée avec un rôle IAM associé à un profil d’instance Amazon EC2.
+ **Disponibilité** : cette clé est incluse dans le contexte de la requête lorsque les informations d’identification des rôles sont fournies à une instance AWS Systems Manager gérée.
+ **Type de données** – [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur — arn:aws:ec2:us-west** - 2:111111111111:instance/instance-id

### identitystore:UserId
<a name="condition-keys-identity-store-user-id"></a>

Utilisez cette clé pour comparer l’identité du personnel d’IAM Identity Center dans la requête signée avec l’identité spécifiée dans la politique. 
+ **Disponibilité** : cette clé est incluse lorsque l’appelant de la requête est un utilisateur d’IAM Identity Center.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur** : 94482488-3041-7026-18f3-be45837cd0e4

Vous pouvez trouver le nom UserId d'un utilisateur dans IAM Identity Center en envoyant une demande à l'[GetUserId](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html)API à l'aide de l' AWS CLI AWS API ou du AWS SDK.

## Propriétés du réseau
<a name="condition-keys-network-properties"></a>

Utilisez les clés de condition suivantes pour comparer les détails du réseau d’où provient la requête ou par lesquels elle est passée avec les propriétés du réseau que vous spécifiez dans la politique.

### aws:SourceIp
<a name="condition-keys-sourceip"></a>

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 données** – [Adresse IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **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.

**Note**  
`aws:SourceIp`prend en charge à IPv4 la fois une IPv6 adresse ou une plage d'adresses IP. Pour obtenir la liste de Services AWS ce support IPv6, consultez Services AWS le [guide IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) de l'*utilisateur Amazon VPC*.

Par exemple, vous pouvez attacher la politique basée sur l’identité suivante à un rôle IAM. Cette politique permet à l'utilisateur de placer des objets dans le compartiment `amzn-s3-demo-bucket3` Amazon S3 s'il effectue l'appel depuis la plage d' IPv4 adresses spécifiée. Cette politique permet également à un AWS service utilisé [Transmission des sessions d'accès](access_forward_access_sessions.md) d'effectuer cette opération en votre nom.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        }
    ]
}
```

------

Si vous devez restreindre l'accès aux réseaux qui prennent en charge à la fois l' IPv6adressage IPv4 et l'adresse, vous pouvez inclure l' IPv6 adresse IPv4 et ou des plages d'adresses IP dans la condition de politique IAM. La politique basée sur l'identité suivante permettra à l'utilisateur de placer des objets dans le compartiment `amzn-s3-demo-bucket3` Amazon S3 s'il passe l'appel depuis des plages d'adresses spécifiées IPv4 ou depuis des plages d' IPv6 adresses. Avant d'inclure des plages d' IPv6 adresses dans votre politique IAM, vérifiez que le support avec Service AWS lequel vous travaillez est compatible IPv6. Pour obtenir la liste de Services AWS ce support IPv6, consultez Services AWS le [guide IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) de l'*utilisateur Amazon VPC*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "203.0.113.0/24",
                        "2001:DB8:1234:5678::/64"
                    ]
                }
            }
        }
    ]
}
```

------

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) :. 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](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) dans le *Guide AWS PrivateLink *.

**Note**  
Lorsque vous Services AWS passez des appels à d'autres personnes Services AWS en votre nom (service-to-service appels), certains contextes d'autorisation spécifiques au réseau sont supprimés. Si votre politique utilise cette clé de condition avec des `Deny` instructions, Service AWS les principaux risquent d'être bloqués par inadvertance. Pour permettre aux Services AWS de fonctionner correctement tout en respectant vos exigences en matière de sécurité, excluez les principaux services de vos instructions `Deny` en ajoutant la clé de condition `aws:PrincipalIsAWSService` avec la valeur `false`.

### aws:SourceVpc
<a name="condition-keys-sourcevpc"></a>

Utilisez cette clé pour vérifier si une requête passe par le VPC auquel le point de terminaison de VPC est attaché. 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) 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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Dans une politique, vous pouvez utiliser cette clé pour autoriser ou restreindre l’accès à un VPC spécifique.

Par exemple, vous pouvez associer la politique basée sur l'identité suivante à un rôle IAM afin de refuser l'accès `PutObject` au compartiment `amzn-s3-demo-bucket3` Amazon S3, sauf si la demande est faite à partir de l'ID VPC spécifié ou en Services AWS utilisant des [sessions d'accès direct (FAS) pour effectuer des demandes au nom du rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Contrairement à [aws:SourceIp](#condition-keys-sourceip), vous devez utiliser [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) pour autoriser les requêtes FAS, car le VPC source de la requête initiale n’est pas préservé.

**Note**  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PutObjectIfNotVPCID",
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-1234567890abcdef0"
        },
        "Bool": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

**Note**  
AWS recommande de l'utiliser `aws:SourceVpcArn` au lieu de `aws:SourceVpc` s'il `aws:SourceVpcArn` est pris en charge par le service que vous ciblez. Consultez [aws : SourceVpcArn](#condition-keys-sourcevpcarn) pour obtenir la liste des services pris en charge.

### aws:SourceVpcArn
<a name="condition-keys-sourcevpcarn"></a>

Utilisez cette clé pour vérifier l'ARN du VPC via lequel une demande a été effectuée via un point de terminaison VPC. Cette clé renvoie l'ARN du VPC auquel le point de terminaison du VPC est attaché.
+ **Disponibilité** — Cette clé est incluse dans le contexte de demande pour les services pris en charge lorsqu'une demande est effectuée via un point de terminaison VPC. La clé n’est pas incluse pour les demandes effectuées via des points de terminaison de service public. Les services suivants prennent en charge cette clé :
  + AWS App Runner (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefix: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon ; Elastic Container Registry (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (préfixe [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + Gestion des identités et des accès AWS (sauf pour l'`iam:PassRole`action) (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorité de certification privée (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Corbeille (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contacts (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Type de données** : ARN

  AWS recommande d'utiliser des [opérateurs ARN plutôt que des opérateurs](reference_policies_elements_condition_operators.md#Conditions_ARN) de [chaîne](reference_policies_elements_condition_operators.md#Conditions_String) lors de la comparaison ARNs.
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur :** – `arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE`

Voici un exemple de politique de compartiment qui refuse l'accès à `amzn-s3-demo-bucket` et à ses objets depuis n'importe quel endroit en dehors du VPC`vpc-1a2b3c4d`.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "ArnNotEquals": {
           "aws:SourceVpcArn": "arn:aws:ec2:us-east-1:*:vpc/vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

### aws:SourceVpce
<a name="condition-keys-sourcevpce"></a>

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.
+ **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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Dans une politique, vous pouvez utiliser cette clé pour restreindre l'accès à un point de terminaison de VPC spécifique. Pour de plus amples informations, consultez [Restriction de l’accès à un VPC spécifique](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) dans le *Guide de l’utilisateur service de stockage simple Amazon*. Tout comme lors de l'utilisation[aws:SourceVpc](#condition-keys-sourcevpc), vous devez utiliser [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) autoriser les demandes effectuées à l' Services AWS aide de [sessions d'accès direct (FAS).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) En effet, le point de terminaison de VPC source de la requête initiale n’est pas conservé.

### aws:VpceAccount
<a name="condition-keys-vpceaccount"></a>

Utilisez cette clé pour comparer l'ID de AWS compte qui possède le point de terminaison VPC via lequel la demande a été faite avec l'ID de compte que vous spécifiez dans la politique. Cette clé de condition vous aide à établir des contrôles du périmètre réseau en garantissant que les demandes transitent par des points de terminaison d’un VPC appartenant à des comptes spécifiques.
+ **Disponibilité** : cette clé est incluse dans le contexte de la demande lorsqu’une demande est effectuée via un point de terminaison d’un VPC. La clé n’est pas incluse pour les demandes effectuées via des points de terminaison de service public.

  Les services suivants prennent en charge cette clé :
  + AWS App Runner (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefix: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon ; Elastic Container Registry (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (préfixe [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + Gestion des identités et des accès AWS (sauf pour l'`iam:PassRole`action) (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorité de certification privée (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Corbeille (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contacts (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique
+ **Exemple de valeur :** – `123456789012`

Vous pouvez utiliser cette clé de condition pour restreindre l’accès aux ressources afin que les demandes passent par les points de terminaison d’un VPC appartenant à votre compte. L’exemple de stratégie de compartiment Amazon S3 suivant autorise l’accès lorsque la demande provient d’un point de terminaison d’un VPC appartenant au compte spécifié :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessToSpecificVpceAccountOnly",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleName"
            },
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Condition": {
                "StringEquals": {
                    "aws:VpceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

**Note**  
Cette clé de condition est actuellement prise en charge pour un ensemble sélectionné de AWS services. L’utilisation de cette clé avec des services non pris en charge peut entraîner des résultats d’autorisation imprévus. Délimitez toujours la clé de condition aux services pris en charge dans vos politiques.

Certains AWS services accèdent à vos ressources depuis leurs réseaux lorsqu'ils agissent en votre nom. Si vous utilisez de tels services, vous devrez modifier l'exemple de politique ci-dessus pour autoriser les AWS services à accéder à vos ressources depuis l'extérieur de votre réseau. Pour plus d’informations sur les modèles d’accès à prendre en compte lors de l’application de contrôles d’accès basés sur l’origine de la demande, consultez [Mettez en place des barrières de protection des autorisations à l’aide de périmètres de données](access_policies_data-perimeters.md).

### aws:VpceOrgID
<a name="condition-keys-vpceorgid"></a>

Utilisez cette clé pour comparer l'identifiant de l'organisation propriétaire du point de terminaison VPC à partir duquel la demande a été faite avec l'identifiant que vous spécifiez dans la politique. AWS Organizations Cette clé de condition offre l’approche la plus évolutive en matière de contrôles du périmètre réseau, en incluant automatiquement tous les points de terminaison d’un VPC appartenant aux comptes de votre organisation.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande lorsqu'une demande est effectuée via un point de terminaison VPC et que le compte du propriétaire du point de terminaison VPC est membre d'une organisation. AWS La clé n’est pas incluse pour les demandes effectuées via d’autres chemins réseau ou lorsque le compte propriétaire du point de terminaison d’un VPC ne fait pas partie d’une organisation.

  Les services suivants prennent en charge cette clé :
  + AWS App Runner (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS B2B Échange de données (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html))
  + AWS Cloud Map (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Cognito (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html)
  + Amazon Comprehend Medical (prefix: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + AWS Database Migration Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html))
  + AWS Données du service de répertoire (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html))
  + Amazon ; Elastic Container Registry (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (préfixe [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + Gestion des identités et des accès AWS (sauf pour l'`iam:PassRole`action) (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS Identity Store (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html))
  + AWS IoT FleetWise (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT TwinMaker (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html))
  + AWS IoT Wireless (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + Amazon Keyspaces (pour Apache Cassandra) (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html)
  + AWS Key Management Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Network Firewall (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html))
  + AWS Payment Cryptography (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Service vocal et SMS Amazon Pinpoint (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html)
  + Amazon Polly (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Price List (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html))
  + AWS Autorité de certification privée (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Corbeille (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Email Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html))
  + Amazon Simple Storage Service (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Amazon Simple Queue Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html))
  + AWS Storage Gateway (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contacts (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
  + Amazon WorkMail (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html))
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique
+ **Exemples de valeurs** — `o-a1b2c3d4e5`

L'exemple de politique de contrôle des ressources suivant refuse l'accès à votre Amazon S3 et à vos AWS Key Management Service ressources, sauf si la demande provient de points de terminaison VPC appartenant à l'organisation spécifiée ou de réseaux de AWS services agissant en votre nom. Certaines organisations peuvent avoir besoin de modifier davantage cette politique afin de répondre à leurs besoins, par exemple pour autoriser l’accès à des partenaires tiers. Pour plus d’informations sur les modèles d’accès à prendre en compte lors de l’application de contrôles d’accès basés sur l’origine de la demande, consultez [Mettez en place des barrières de protection des autorisations à l’aide de périmètres de données](access_policies_data-perimeters.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceNetworkPerimeterVpceOrgID",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*",
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false",
          "aws:ViaAWSService": "false"
        },
        "StringNotEqualsIfExists": {
            "aws:VpceOrgID": "o-abcdef0123",
            "aws:PrincipalTag/network-perimeter-exception": "true"
        }
      }
    }
  ]
}
```

------

**Note**  
Cette clé de condition est actuellement prise en charge pour un ensemble sélectionné de AWS services. L’utilisation de cette clé avec des services non pris en charge peut entraîner des résultats d’autorisation imprévus. Délimitez toujours la clé de condition aux services pris en charge dans vos politiques.

### aws:VpceOrgPaths
<a name="condition-keys-vpceorgpaths"></a>

Utilisez cette clé pour comparer le AWS Organizations chemin du point de terminaison VPC à partir duquel la demande a été effectuée avec le chemin que vous spécifiez dans la politique. Cette clé de condition vous permet de mettre en œuvre des contrôles du périmètre du réseau au niveau de l'unité organisationnelle (UO), en s'adaptant automatiquement à l'utilisation de vos points de terminaison VPC lorsque vous ajoutez de nouveaux points de terminaison dans les limites spécifiées. OUs
+ **Disponibilité** : cette clé est incluse dans le contexte de la demande lorsqu’une demande est effectuée via un point de terminaison d’un VPC et que le compte propriétaire du point de terminaison d’un VPC est membre d’une organisation. La clé n’est pas incluse pour les demandes effectuées via d’autres chemins réseau ou lorsque le compte propriétaire du point de terminaison d’un VPC ne fait pas partie d’une organisation.

  Les services suivants prennent en charge cette clé :
  + AWS App Runner (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefix: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon ; Elastic Container Registry (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (préfixe [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (préfixe :) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + Gestion des identités et des accès AWS (sauf pour l'`iam:PassRole`action) (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorité de certification privée (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Corbeille (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contacts (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (préfixe : [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Type de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **Type de valeur** – À valeur multiple
+ **Exemples de valeurs** — `o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/`

Comme `aws:VpceOrgPaths`est une clé de condition à valeurs multiples, vous devez utiliser les opérateurs `ForAnyValue` et `ForAllValues` avec des [opérateurs de condition de chaîne](reference_policies_elements_condition_operators.md#Conditions_String) pour cette clé. L’exemple suivant de stratégie de compartiment Amazon S3 autorise l’accès uniquement lorsque les demandes proviennent de points de terminaison d’un VPC appartenant à des comptes dans des unités organisationnelles spécifiques :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessFromSpecificOrgPaths",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleName"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:VpceOrgPaths": [
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*",
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-33333333/*"
          ]
        }
      }
    }
  ]
}
```

------

**Note**  
Cette clé de condition est actuellement prise en charge pour un ensemble sélectionné de AWS services. L’utilisation de cette clé avec des services non pris en charge peut entraîner des résultats d’autorisation imprévus. Délimitez toujours la clé de condition aux services pris en charge dans vos politiques.

Certains AWS services accèdent à vos ressources depuis leurs réseaux lorsqu'ils agissent en votre nom. Si vous utilisez de tels services, vous devrez modifier l'exemple de politique ci-dessus pour autoriser les AWS services à accéder à vos ressources depuis l'extérieur de votre réseau. Pour plus d’informations sur les modèles d’accès à prendre en compte lors de l’application de contrôles d’accès basés sur l’origine de la demande, consultez [Mettez en place des barrières de protection des autorisations à l’aide de périmètres de données](access_policies_data-perimeters.md).

### aws:VpcSourceIp
<a name="condition-keys-vpcsourceip"></a>

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 données** – [Adresse IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Type de valeur** – À valeur unique

Pour plus d’informations, consultez [Contrôle de l’accès aux points de terminaison d’un VPC à l’aide de politiques de point de terminaison](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dans le *Guide de l’utilisateur Amazon VPC*. Tout comme lors de l'utilisation[aws:SourceVpc](#condition-keys-sourcevpc), vous devez utiliser [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) autoriser les demandes effectuées à l' Services AWS aide de [sessions d'accès direct (FAS).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) En effet, l’adresse IP source de la requête initiale effectuée à l’aide d’un point de terminaison de VPC n’est pas conservée dans les requêtes FAS.

**Note**  
`aws:VpcSourceIp`prend en charge à IPv4 la fois une IPv6 adresse ou une plage d'adresses IP. Pour obtenir la liste de Services AWS ce support IPv6, consultez Services AWS le [guide IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) de l'*utilisateur Amazon VPC*.  
Utilisez toujours la clé de `aws:VpcSourceIp` condition avec les clés `aws:SourceVpc``aws:SourceVpce`, ou de `aws:SourceVpcArn` condition. Si vous ne le faites pas, une politique peut autoriser les appels d'API provenant d'un VPC inattendu qui utilise le même CIDR IP ou qui se chevauche. Cela peut se produire parce que les adresses IP CIDRs de deux entités non apparentées VPCs peuvent être identiques ou se chevaucher.

**Note**  
Lorsque vous Services AWS passez des appels à d'autres personnes Services AWS en votre nom (service-to-service appels), certains contextes d'autorisation spécifiques au réseau sont supprimés. Si votre politique utilise cette clé de condition avec des `Deny` instructions, Service AWS les principaux risquent d'être bloqués par inadvertance. Pour permettre aux Services AWS de fonctionner correctement tout en respectant vos exigences en matière de sécurité, excluez les principaux services de vos instructions `Deny` en ajoutant la clé de condition `aws:PrincipalIsAWSService` avec la valeur `false`.

## Propriétés de la ressource
<a name="condition-keys-resource-properties"></a>

Utilisez les clés de condition suivantes pour comparer les détails de la ressource cible de la requête avec les propriétés de la ressource que vous spécifiez dans la politique.

### aws:ResourceAccount
<a name="condition-keys-resourceaccount"></a>

Utilisez cette clé pour comparer l'[ID de l'Compte AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) 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é :
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store : toutes les actions
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` appels sur un bus d'événements dans un autre compte, si ce bus d'événements a été configuré comme EventBridge cible multi-comptes avant le 2 mars 2023. Pour plus d'informations, consultez la section [Accorder des autorisations pour autoriser des événements provenant d'autres AWS comptes](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) dans le *guide de EventBridge l'utilisateur Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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](https://github.com/aws-samples/data-perimeter-policy-examples) (français non garanti).

Cette clé est égale à l' Compte AWS identifiant du compte dont les ressources ont été évaluées dans la demande.

Pour la plupart des ressources de votre compte, l'[ARN](reference_policies_elements_condition_operators.md#Conditions_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:::amzn-s3-demo-bucket2` : compartiment Amazon S3 créé et détenu dans le compte `111122223333`, non affiché dans l'ARN.

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

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.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInteractionWithResourcesNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

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

**Note**  
Certains Services AWS nécessitent l'accès à des ressources AWS détenues 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 AWS services, tels que AWS Data Exchange, dépendent de l'accès à des ressources extérieures aux vôtres Comptes AWS pour leurs 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: Refusez l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) 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](https://docs.aws.amazon.com/index.html) de service pour plus d'informations.

### aws:ResourceOrgPaths
<a name="condition-keys-resourceorgpaths"></a>

Utilisez cette clé pour comparer le AWS Organizations chemin de la ressource consultée au chemin indiqué dans la politique. Dans une politique, cette clé de condition garantit que la ressource appartient à un membre du compte au sein de la racine d'organisation ou des unités organisationnelles (OUs) spécifiées dans AWS Organizations. Un AWS Organizations chemin 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 de AWS Organizations l'entité](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path). 
+ **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 :
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store : toutes les actions
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` appels sur un bus d'événements dans un autre compte, si ce bus d'événements a été configuré comme EventBridge cible multi-comptes avant le 2 mars 2023. Pour plus d'informations, consultez la section [Accorder des autorisations pour autoriser des événements provenant d'autres AWS comptes](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) dans le *guide de EventBridge l'utilisateur Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Type de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **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](https://github.com/aws-samples/data-perimeter-policy-examples) (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](reference_policies_elements_condition_operators.md#Conditions_String) pour cette clé. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

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](reference_policies_elements_condition_operators.md).

```
"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`. Il correspondra aux ressources détenues par des comptes rattachés à l'UO ou-ab12-11111111 ou à l'un des comptes de l'enfant. OUs

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

La condition suivante s'applique `True` aux ressources détenues par des comptes directement associés à l'ID de l'unité d'`ou-ab12-22222222`organisation, mais pas à l'enfant OUs. L'exemple suivant utilise l'opérateur de [StringEquals](reference_policies_elements_condition_operators.md)condition 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 AWS détenues 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 AWS services, tels que AWS Data Exchange, dépendent de l'accès à des ressources extérieures aux vôtres Comptes AWS pour leurs 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: Refusez l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) 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](https://docs.aws.amazon.com/index.html) de service pour plus d'informations.

### aws:ResourceOrgID
<a name="condition-keys-resourceorgid"></a>

Utilisez cette clé pour comparer l'identifiant de l'organisation AWS Organizations à laquelle appartient la ressource demandée 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 :
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store : toutes les actions
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` appels sur un bus d'événements dans un autre compte, si ce bus d'événements a été configuré comme EventBridge cible multi-comptes avant le 2 mars 2023. Pour plus d'informations, consultez la section [Accorder des autorisations pour autoriser des événements provenant d'autres AWS comptes](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) dans le *guide de EventBridge l'utilisateur Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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](https://github.com/aws-samples/data-perimeter-policy-examples) (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é](access_policies_identity-vs-resource.md). Vous pouvez spécifier l'[ID de l'organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) 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.

------
#### [ JSON ]

****  

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

------

**Note**  
Certains Services AWS nécessitent l'accès à des ressources AWS détenues 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 AWS services, tels que AWS Data Exchange, dépendent de l'accès à des ressources extérieures aux vôtres Comptes AWS pour leurs 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: Refusez l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) 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](https://docs.aws.amazon.com/index.html) 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 Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cWVW0xAiWwc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cWVW0xAiWwc)


### aws:ResourceTag/*tag-key*
<a name="condition-keys-resourcetag"></a>

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 AWS ressources](access_tags.md#access_tags_control-resources).
+ **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](reference_aws-services-that-work-with-iam.md). Il y a une clé de contexte pour chaque paire clé-valeur de balise.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Cette clé de contexte est formatée à l'`"aws:ResourceTag/tag-key":"tag-value"`endroit où se *tag-key* *tag-value* trouvent une clé de balise et une paire de valeurs. Les clés de balises 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. Les valeurs de ces key/value paires de balises distinguent les majuscules et minuscules. Cela signifie que si vous spécifiez `"aws:ResourceTag/TagKey1": "Production"` dans l’élément de condition de votre politique, la condition correspond à une clé de balise de ressource nommée `Production`, mais elle ne correspond pas à `production` ou `PRODUCTION`.

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 AWS ressources](access_tags.md#access_tags_control-resources).

Pour des exemples d'utilisation de la `aws:ResourceTag` clé pour contrôler l'accès à d'autres AWS ressources, consultez[Contrôle de l'accès aux AWS ressources à l'aide de balises](access_tags.md).

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 [Tutoriel IAM : définir les autorisations d'accès aux AWS ressources en fonction des balises](tutorial_attribute-based-access-control.md).

## Propriétés de la requête
<a name="condition-keys-request-properties"></a>

Utilisez les clés de condition suivantes pour comparer les détails de la requête elle-même et le contenu de la requête avec les propriétés de la requête que vous spécifiez dans la politique. 

### aws:CalledVia
<a name="condition-keys-calledvia"></a>

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 adresse une demande à un AWS service, ce service peut utiliser les informations d'identification du principal pour faire des demandes ultérieures à d'autres services. Lorsque la demande est effectuée à l’aide de sessions d’accès direct (FAS), cette clé est définie avec la valeur du principal de service. La clé `aws:CalledVia` contient une liste ordonnée des services de la chaîne ayant effectué des demandes pour le compte du principal.

Pour de plus amples informations, veuillez consulter [Transmission des sessions d'accès](access_forward_access_sessions.md).
+ **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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) pour effectuer un appel au nom du principal. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.
+ **Type de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **Type de valeur** – À valeur multiple

Pour utiliser la clé de `aws:CalledVia` condition dans une politique, vous devez fournir les principaux de service permettant d'autoriser ou de refuser les demandes AWS de service. Par exemple, vous pouvez l'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

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 soutient les AWS services.

La clé `aws:CalledVia` est une [clé à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md). 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 à CloudFormation, qui appelle DynamoDB, qui appelle AWS KMS. Il s'agit de trois demandes distinctes. Le dernier appel à AWS KMS est effectué par l'utilisateur 1 *via DynamoDB, CloudFormation puis par* DynamoDB. 

![\[Exemple utilisant aws : CalledVia\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/condition-key-calledvia-example-diagram.png)


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 AWS KMS clé nommée`my-example-key`, mais uniquement si DynamoDB est l'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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaDynamodb",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1: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 AWS KMS opérations ne sont autorisées que si plusieurs demandes ont été incluses dans la chaîne. La première demande doit être faite via 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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaChain",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1: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. Supposons, par exemple, qu' CloudFormation un autre service appelé DynamoDB appelle DynamoDB`X Service`, qui appelle ensuite. AWS KMS Le dernier appel à AWS KMS est effectué par `User 1` *via* CloudFormation, then`X Service`, puis DynamoDB. Il a d'abord été appelé via CloudFormation et appelé pour la dernière fois via DynamoDB. 

![\[Exemple utilisant aws : CalledViaFirst et aws : CalledViaLast\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/condition-key-calledviafirstlast-example-diagram.png)


### aws:CalledViaFirst
<a name="condition-keys-calledviafirst"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) pour effectuer un appel au nom du principal. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

### aws:CalledViaLast
<a name="condition-keys-calledvialast"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) pour effectuer un appel au nom du principal. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

### aws:ViaAWSService
<a name="condition-keys-viaawsservice"></a>

Utilisez cette clé pour vérifier si un utilisateur Service AWS fait une demande à un autre service en votre nom à l'aide de [sessions d'accès direct (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html).

La clé de contexte de la requête renvoie `true` lorsqu’un service utilise des sessions d’accès direct pour effectuer une requête au nom du principal IAM d’origine. 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.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

### aws:CalledViaAWSMCP
<a name="condition-keys-calledviaawasmcp"></a>

Utilisez cette clé pour comparer les services de la politique avec les services AWS MCP qui ont effectué des demandes au nom du principal IAM (utilisateur ou rôle). Lorsqu'un principal fait une demande à un service AWS MCP, ce service utilise les informations d'identification du principal pour faire des demandes ultérieures à d'autres services. Lorsque la demande est faite à l'aide d'un service AWS MCP, cette clé est définie avec la valeur du principal du service. La `aws:CalledViaAWSMCP` clé contient le nom principal du service MCP qui a effectué les demandes au nom du principal.
+ **Disponibilité** — Cette clé est présente dans la demande lorsqu'un service AWS MCP utilise les informations d'identification d'un principal IAM pour adresser une demande à un AWS service. Cette clé n'est pas non plus présente lorsque le principal effectue directement l'appel.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé de condition pour autoriser ou refuser l'accès en fonction du serveur MCP spécifique à l'origine de la demande. Par exemple, la politique suivante refuse les opérations de suppression sensibles lorsqu'elles sont initiées via un serveur MCP spécifique :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaSpecificMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaAWSMCP": "aws-mcp.amazonaws.com"
                }
            }
        }
    ]
}
```

### aws:ViaAWSMCPService
<a name="condition-keys-viaawsmcpservice"></a>

Utilisez cette clé pour vérifier si un service AWS MCP adresse une demande à un autre AWS service en votre nom à l'aide de sessions d'accès direct (FAS). La clé de contexte de demande `true` est renvoyée lorsqu'un service AWS MCP transmet une demande à un AWS service pour le compte du principal IAM d'origine. La clé de contexte de demande renvoie également `false` lorsque le principal effectue l'appel directement.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande lorsqu'un serveur AWS MCP adresse une demande à un AWS service en aval pour le compte d'un principal IAM.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé pour restreindre des actions spécifiques lorsqu'elles transitent par les serveurs MCP. Par exemple, la politique suivante refuse les opérations de suppression sensibles lorsqu'elles sont initiées via un serveur AWS MCP :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:ViaAWSMCPService": "true"
                }
            }
        }
    ]
}
```

### aws:CurrentTime
<a name="condition-keys-currenttime"></a>

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](reference_policies_examples_aws-dates.md).
+ **Availability** (Disponibilité) : cette clé figure toujours dans le contexte de la demande.
+ **Type de données** – [Date](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Type de valeur** – À valeur unique

### aws:EpochTime
<a name="condition-keys-epochtime"></a>

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 données** – [Date](reference_policies_elements_condition_operators.md#Conditions_Date), [Numerique](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Type de valeur** – À valeur unique

### aws:referer
<a name="condition-keys-referer"></a>

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é.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande uniquement si la demande à la AWS ressource a été invoquée par un lien depuis l'URL d'une 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 .
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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'invocation directe de l'API. Pour plus d'informations, consultez la section [Opérations d'API Amazon S3 directement à l'aide d'un navigateur web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-4). 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. Par conséquent, `aws:referer` il ne doit pas être utilisé pour empêcher des parties non autorisées de faire des AWS demandes directes. 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
<a name="condition-keys-requestedregion"></a>

Utilisez cette clé pour comparer la AWS région appelée dans la demande avec la région que vous spécifiez dans la politique. Vous pouvez utiliser cette clé de condition globale pour contrôler les régions qui peuvent être demandées. Pour consulter les AWS régions de chaque service, consultez la section [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans le *Référence générale d'Amazon Web Services*.
+ **Availability** (Disponibilité) : cette clé figure toujours dans le contexte de la demande.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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 voir un exemple de la manière de contourner ce problème, voir [NotAction avec Deny](reference_policies_elements_notaction.md). 

**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 AWS services 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).

------
#### [ JSON ]

****  

```
{
    "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/*tag-key*
<a name="condition-keys-requesttag"></a>

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 lors AWS des demandes](access_tags.md#access_tags_control-requests).
+ **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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Cette clé de contexte est formatée à l'`"aws:RequestTag/tag-key":"tag-value"`endroit où se *tag-key* *tag-value* trouvent une clé de balise et une paire de valeurs. Les clés de balises 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. Les valeurs de ces key/value paires de balises distinguent les majuscules et minuscules. Cela signifie que si vous spécifiez `"aws:RequestTag/TagKey1": "Production"` dans l’élément de condition de votre politique, la condition correspond à une clé de balise de demande nommée `Production`, mais elle ne correspond pas à `production` ou `PRODUCTION`.

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.

------
#### [ JSON ]

****  

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

------

### aws:TagKeys
<a name="condition-keys-tagkeys"></a>

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](access_tags.md#access_tags_control-tag-keys).
+ **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 données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **Type de valeur** – À valeur multiple

Cette clé de contexte est formatée `"aws:TagKeys":"tag-key"` avec *tag-key* une liste de clés de balise sans valeurs (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](reference_policies_condition-single-vs-multi-valued-context-keys.md). Dans ce cas, vous devez utiliser le opérateurs d'ensemble `ForAllValues` ou `ForAnyValue`. Pour de plus amples informations, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

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`, consultez [Création d’un instantané avec des balises](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-creating-snapshot-with-tags) dans le *Guide de l’utilisateur Amazon EC2*. 

### aws:SecureTransport
<a name="condition-keys-securetransport"></a>

Utilisez cette clé pour vérifier si une demande est envoyée avec TLS. 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 TLS.
+ **Availability** (Disponibilité) : cette clé figure toujours dans le contexte de la demande.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

**Note**  
Lorsque vous Services AWS passez des appels à d'autres personnes Services AWS en votre nom (service-to-service appels), certains contextes d'autorisation spécifiques au réseau sont supprimés. Si votre politique utilise cette clé de condition avec des `Deny` instructions, Service AWS les principaux risquent d'être bloqués par inadvertance. Pour permettre aux Services AWS de fonctionner correctement tout en respectant vos exigences en matière de sécurité, excluez les principaux services de vos instructions `Deny` en ajoutant la clé de condition `aws:PrincipalIsAWSService` avec la valeur `false`. Par exemple :  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Cette politique refuse l'accès aux opérations Amazon S3 lorsque le protocole HTTPS n'est pas utilisé (`aws:SecureTransport`c'est faux), mais uniquement pour les opérateurs non AWS liés au service. Cela garantit que vos restrictions conditionnelles s'appliquent à tous les principaux, à l'exception des Service AWS principaux.

### aws:SourceAccount
<a name="condition-keys-sourceaccount"></a>

Utilisez cette clé pour comparer l'ID de compte de la ressource qui fait une service-to-service demande avec l'ID de compte que vous spécifiez dans la politique, mais uniquement lorsque la demande est faite par un principal de AWS service.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande uniquement lorsque l'appel à votre ressource est effectué directement par un [principal de AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) au nom d'une ressource pour laquelle la configuration a déclenché la service-to-service demande. Le service appelant transmet l'ID de compte de la ressource au service appelé.
**Note**  
Cette clé fournit un mécanisme uniforme pour l’application du contrôle de l’adjoint confus entre les services au sein des Services AWS. Cependant, toutes les intégrations de services ne nécessitent pas l’utilisation de cette clé de condition globale. Consultez la documentation Services AWS que vous utilisez pour plus d'informations sur les mécanismes spécifiques aux services visant à atténuer les risques liés à la confusion entre les services.  
![\[lois : SourceAccount\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/sourceAccount.png)
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé de condition pour vous assurer qu’un service appelant ne peut accéder à votre ressource que si la requête provient d’un compte spécifique. Par exemple, vous pouvez attacher la politique de contrôle des ressources (RCP) suivante pour refuser les requêtes des principaux de service contre les compartiments Amazon S3, à moins qu’elles n’aient été déclenchées par une ressource du compte spécifié. Cette politique n’applique le contrôle que sur les requêtes des principaux de service (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) qui ont la clé `aws:SourceAccount` présente (`"Null": {"aws:SourceAccount": "false"}`), de sorte que les intégrations de services qui ne nécessitent pas l’utilisation de cette clé et les appels de vos principaux ne sont pas impactés. Si la clé `aws:SourceAccount` est présente dans le contexte de la requête, la condition `Null` aura la valeur `true`, ce qui entraînera l’application de la clé `aws:SourceAccount`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceAccount": "111122223333"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

Dans les politiques basées sur les ressources où le principal est un Service AWS mandant, utilisez la clé pour limiter les autorisations accordées au service. Par exemple, lorsqu’un compartiment Amazon S3 est configuré pour envoyer des notifications à une rubrique Amazon SNS, le service Amazon S3 invoque l’opération d’API `sns:Publish` pour tous les événements configurés. Dans la politique de rubrique 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.

### aws:SourceArn
<a name="condition-keys-sourcearn"></a>

Utilisez cette clé pour comparer l'[Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns) de la ressource qui fait une service-to-service demande avec l'ARN que vous spécifiez dans la politique, mais uniquement lorsque la demande est faite par un principal de AWS service. Lorsque l'ARN de la source inclut l'ID de compte, il n'est 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`.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande uniquement lorsque l'appel à votre ressource est effectué directement par un [principal de AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) au nom d'une ressource pour laquelle la configuration a déclenché la service-to-service demande. Le service appelant transmet l'ARN de la ressource d'origine au service appelé.
**Note**  
Cette clé fournit un mécanisme uniforme pour l’application du contrôle de l’adjoint confus entre les services au sein des Services AWS. Cependant, toutes les intégrations de services ne nécessitent pas l’utilisation de cette clé de condition globale. Consultez la documentation Services AWS que vous utilisez pour plus d'informations sur les mécanismes spécifiques aux services visant à atténuer les risques liés à la confusion entre les services.  
![\[lois : SourceArn\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/sourceArn.png)
+ **Type de données** : ARN

  AWS recommande d'utiliser des [opérateurs ARN plutôt que des opérateurs](reference_policies_elements_condition_operators.md#Conditions_ARN) de [chaîne](reference_policies_elements_condition_operators.md#Conditions_String) lors de la comparaison ARNs.
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé de condition pour vous assurer qu’un service appelant ne peut accéder à votre ressource que si la requête provient d’une ressource spécifique. Lorsque vous utilisez une politique basée sur les ressources avec un Service AWS principal comme principal`Principal`, définissez la valeur de cette clé de condition sur l'ARN de la ressource à laquelle vous souhaitez restreindre l'accès. Par exemple, lorsqu’un compartiment Amazon S3 est configuré pour envoyer des notifications à une rubrique Amazon SNS, le service Amazon S3 invoque l’opération d’API `sns:Publish` pour tous les événements configurés. Dans la politique de rubrique qui autorise l'opération `sns:Publish`, définissez la valeur de la clé de condition sur l'ARN du compartiment Amazon S3. Pour savoir quand utiliser cette clé de condition dans les politiques basées sur les ressources, consultez la documentation relative aux Services AWS que vous utilisez.

### aws:SourceOrgID
<a name="condition-keys-sourceorgid"></a>

Utilisez cette clé pour comparer l'[ID d'organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) de la ressource qui fait une service-to-service demande avec l'ID d'organisation que vous spécifiez dans la politique, mais uniquement lorsque la demande est faite par un directeur de AWS service. Lorsque vous ajoutez et supprimez des comptes à une organisation dans AWS Organizations, les politiques qui contiennent la clé `aws:SourceOrgID` incluent automatiquement les bons comptes et vous n'avez pas besoin de mettre à jour manuellement les politiques.
+ **Disponibilité** : cette clé est contenue dans le contexte de la demande uniquement lorsque l'appel à votre ressource est effectué directement par un [principal du service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) au nom d'une ressource appartenant à un compte membre d'une organisation. Le service appelant transmet l'ID de l'organisation de la ressource d'origine au service appelé.
**Note**  
Cette clé fournit un mécanisme uniforme pour l’application du contrôle de l’adjoint confus entre les services au sein des Services AWS. Cependant, toutes les intégrations de services ne nécessitent pas l’utilisation de cette clé de condition globale. Consultez la documentation Services AWS que vous utilisez pour plus d'informations sur les mécanismes spécifiques aux services visant à atténuer les risques liés à la confusion entre les services.  
![\[lois : SourceOrg ID\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/sourceOrgID.png)
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Type de valeur** – À valeur unique

Vous pouvez utiliser cette clé de condition pour vous assurer qu’un service appelant ne peut accéder à votre ressource que si la requête provient d’une organisation spécifique. Par exemple, vous pouvez joindre la politique de contrôle des ressources (RCP) suivante pour refuser les demandes des principaux de service concernant les buckets Amazon S3, sauf si elles ont été déclenchées par une ressource de l'organisation spécifiée. AWS Cette politique n’applique le contrôle que sur les requêtes des principaux de service (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) qui ont la clé `aws:SourceAccount` présente (`"Null": {"aws:SourceAccount": "false"}`), de sorte que les intégrations de services qui ne nécessitent pas l’utilisation de la clé et les appels de vos principaux ne sont pas impactés. Si la clé `aws:SourceAccount` est présente dans le contexte de la requête, la condition `Null` aura la valeur `true`, ce qui entraînera l’application de la clé `aws:SourceOrgID`. Nous utilisons `aws:SourceAccount` au lieu de `aws:SourceOrgID` dans l’opérateur de condition `Null` afin que le contrôle s’applique toujours si la requête provient d’un compte qui n’appartient pas à une organisation.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceOrgID": "o-xxxxxxxxxx"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

### aws:SourceOrgPaths
<a name="condition-keys-sourceorgpaths"></a>

Utilisez cette clé pour comparer le AWS Organizations chemin de la ressource qui fait une service-to-service demande avec le chemin de l'organisation que vous spécifiez dans la politique, mais uniquement lorsque la demande est faite par un directeur de AWS service. Un AWS Organizations chemin est une représentation textuelle de la structure d'une AWS Organizations entité. Pour de plus amples informations sur l'utilisation et la compréhension des chemins, veuillez consulter [Présentation du chemin d'entité AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilité** : cette clé est contenue dans le contexte de la demande uniquement lorsque l'appel à votre ressource est effectué directement par un [principal du service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) au nom d'une ressource appartenant à un compte membre d'une organisation. Le service appelant doit transmet le chemin de l'organisation de la ressource d'origine au service appelé.
**Note**  
Cette clé fournit un mécanisme uniforme pour l’application du contrôle de l’adjoint confus entre les services au sein des Services AWS. Cependant, toutes les intégrations de services ne nécessitent pas l’utilisation de cette clé de condition globale. Consultez la documentation Services AWS que vous utilisez pour plus d'informations sur les mécanismes spécifiques aux services visant à atténuer les risques liés à la confusion entre les services.  
![\[lois : SourceOrgPaths\]](http://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/images/sourceOrgPaths.png)
+ **Type de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String) (liste)
+ **Type de valeur** – À valeur multiple

Utilisez cette clé de condition pour vous assurer qu’un service appelant ne peut accéder à votre ressource que si la requête provient d’une unité d’organisation spécifique dans AWS Organizations.

De la même manière que pour `aws:SourceOrgID`, afin d’éviter tout impact sur les intégrations de services qui ne nécessitent pas l’utilisation de cette clé, utilisez l’opérateur de condition `Null` avec la clé de condition `aws:SourceAccount` afin que le contrôle s’applique toujours si la requête provient d’un compte qui n’appartient pas à une organisation.

```
{
      "Condition": {
        "ForAllValues:StringNotLikeIfExists": {
            "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
}
```

`aws:SourceOrgPaths` 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](reference_policies_elements_condition_operators.md#Conditions_String) pour cette clé. Pour de plus amples informations sur les clés de condition à valeurs multiples, veuillez consulter [Définir les opérateurs pour les clés de contexte à valeurs multiples](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:UserAgent
<a name="condition-keys-useragent"></a>

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.
+ **Types de données** – [Chaîne](reference_policies_elements_condition_operators.md#Conditions_String)
+ **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`. Par conséquent, `aws:UserAgent` il ne doit pas être utilisé pour empêcher des parties non autorisées de faire des AWS demandes directes. Vous pouvez l'utiliser pour autoriser uniquement les applications clientes spécifiques, et uniquement après avoir testé votre politique.

### aws:IsMcpServiceAction
<a name="condition-keys-ismcpserviceaction"></a>

Utilisez cette clé pour vérifier que l'action autorisée est une action du service MCP. Cette clé ne fait pas référence aux actions entreprises par le service MCP à l'égard d'autres AWS services.
+ **Disponibilité** — Cette clé est incluse dans le contexte de la demande et définie sur True uniquement lorsque le service MCP autorise une action de service MCP.
+ **Types de données** – [Booléen](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Type de valeur** – À valeur unique

## Autres clés de condition inter-services
<a name="condition-keys-other"></a>

AWS STS [prend en charge les clés de [condition de fédération basées sur SAML et les clés](reference_policies_iam-condition-keys.md#condition-keys-saml) de condition interservices pour la fédération OIDC.](reference_policies_iam-condition-keys.md#condition-keys-wif) Ces clés sont disponibles lorsqu'un utilisateur fédéré à l'aide d'OIDC ou de SAML effectue des AWS opérations dans d'autres services.

# 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 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\$1id  |  ID d'application  |  Oui  | 
|  sub  |  ID de l’utilisateur  |  Oui  | 
|  user\$1id  |  ID de l’utilisateur  |  Oui  | 

**app\$1id**  
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\$1id**  
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\$1id | ID d'application | Oui | 
| id | id | Oui | 

**app\$1id**  
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\$1id | actor\$1id | Non | 
| job\$1workflow\$1ref | job\$1workflow\$1ref | Non | 
| référentiels | référentiels | Non | 
| identifiant\$1dépôt | identifiant\$1dé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\$1id**  
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\$1workflow\$1ref**  
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\$1dé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\$1google/organisation | google : numéro\$1organisation | Non | 

**numéro\$1google/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\$1id | rpst\$1id | Non | 

**rpst\$1id**  
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\$1id (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\$1type**  
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 (\$1), 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.

# Actions, ressources et clés de condition pour les AWS services
<a name="reference_policies_actions-resources-contextkeys"></a>

Chaque AWS service peut définir des actions, des ressources et des clés de contexte de condition à utiliser dans les politiques IAM. Pour obtenir la liste des AWS services et de leurs actions, ressources et clés contextuelles de condition, consultez la section [Actions, ressources et clés de condition](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) dans la *référence d'autorisation de service.*