

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.

# Accès aux clés KMS et autorisations
<a name="control-access"></a>

Pour l'utiliser AWS KMS, vous devez disposer d'informations d'identification AWS permettant d'authentifier vos demandes. Les informations d'identification doivent inclure les autorisations d'accès aux AWS ressources : AWS KMS keys et les [alias](kms-alias.md). Aucun AWS principal n'a d'autorisation sur une clé KMS à moins que cette autorisation ne soit fournie explicitement et ne soit jamais refusée. Il n'existe aucune autorisation implicite ou automatique pour utiliser ou gérer une clé KMS. 

Pour contrôler l'accès à vos clés KMS, vous pouvez utiliser les mécanismes de politique suivants.
+ [Politique de clé](key-policies.md) – chaque clé KMS a une politique de clé. Il s'agit du principal mécanisme de contrôle d'accès à une clé KMS. Vous pouvez utiliser la politique de clé seule pour contrôler l'accès, ce qui signifie que l'étendue complète de l'accès à la clé KMS est définie dans un document unique (la politique de clé). Pour plus d'informations sur l'utilisation des politiques de clé, consultez la rubrique [Politiques de clé](key-policies.md).
+ [Politiques IAM](iam-policies.md) – vous pouvez utiliser des politiques IAM en combinaison avec la politique de clé et les octrois pour contrôler l'accès à une clé KMS. Contrôler l'accès de cette façon vous permet de gérer toutes les autorisations pour vos identités IAM dans IAM. Pour utiliser une politique IAM pour autoriser l'accès à une clé KMS, la politique de clé doit l'autoriser explicitement. Pour en savoir plus sur l'utilisation de politiques IAM, veuillez consulter [politiques IAM](iam-policies.md). 
+ [Octrois](grants.md) – Vous pouvez utiliser des octrois en association avec les politiques IAM et de clé pour autoriser l'accès à une clé KMS. En contrôlant l'accès de cette façon, vous pouvez autoriser l'accès à la clé KMS dans la politique de clé et permettre aux identités de déléguer leur accès à d'autres personnes. Pour plus d'informations sur l'utilisation des octrois, consultez la rubrique [Subventions en AWS KMS](grants.md).

## Politiques clés de KMS
<a name="intro-key-policy"></a>

Les *politiques* constituent le principal moyen de gérer l'accès à vos AWS KMS ressources. Les politiques sont des documents qui décrivent quels principaux peuvent accéder à quelles ressources. *Les politiques associées à une identité IAM sont appelées *politiques basées sur l'identité (ou politiques* *IAM), et les politiques* associées à d'autres types de ressources sont appelées politiques de ressources.* AWS KMS les politiques de ressources pour les clés KMS sont appelées *politiques clés*.

Toutes les clés KMS ont une politique de clé. Si vous n'en fournissez pas, AWS KMS créez-en un pour vous. La [politique de clé par défaut](key-policy-default.md) AWS KMS utilisée varie selon que vous créez la clé dans la AWS KMS console ou que vous utilisez l' AWS KMS API. Nous vous recommandons de modifier la politique clé par défaut afin de l'aligner sur les exigences de votre organisation en matière d'autorisations [du moindre privilège](least-privilege.md). 

Vous pouvez utiliser la politique des clés uniquement pour contrôler l'accès si la clé et le principal IAM se trouvent dans le même AWS compte, ce qui signifie que l'étendue complète de l'accès à la clé KMS est définie dans un seul document (la politique clé). Toutefois, lorsqu'un appelant d'un compte doit accéder à une clé d'un autre compte, vous ne pouvez pas utiliser uniquement la politique des clés pour accorder l'accès. Dans le scénario entre comptes, une politique IAM doit être associée à l'utilisateur ou au rôle de l'appelant pour autoriser explicitement l'appelant à effectuer l'appel d'API.

Vous pouvez également utiliser des politiques IAM en combinaison avec des politiques clés et des autorisations pour contrôler l'accès à une clé KMS. Pour utiliser une politique IAM afin de contrôler l'accès à une clé KMS, la politique de clé doit autoriser le compte à utiliser les politiques IAM. Vous pouvez soit spécifier une [déclaration de politique clé qui active les politiques IAM](key-policy-default.md#key-policy-default-allow-root-enable-iam), soit [spécifier explicitement les principes autorisés](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying) dans la politique clé.

Lorsque vous rédigez des politiques, assurez-vous de disposer de contrôles stricts limitant les personnes autorisées à effectuer les actions suivantes :
+ Mettre à jour, créer et supprimer les politiques clés IAM et KMS
+ Associer et détacher les politiques IAM des utilisateurs, des rôles et des groupes
+ Attachez et détachez les politiques relatives aux clés KMS à vos clés KMS

## Subventions clés KMS
<a name="intro-kms-grants"></a>

Outre l'IAM et les politiques clés, AWS KMS soutient les [subventions](grants.md). Les subventions constituent un moyen flexible et puissant de déléguer des autorisations. Vous pouvez utiliser des subventions pour délivrer un accès par clé KMS limité dans le temps aux principaux IAM de votre AWS compte ou d'autres comptes. AWS Nous vous recommandons de délivrer un accès limité dans le temps si vous ne connaissez pas le nom des principaux au moment de la création des politiques, ou si les principaux nécessitant un accès changent fréquemment. Le [principal du bénéficiaire](grants.md#terms-grantee-principal) peut être sur le même compte que la clé KMS ou sur un compte différent. Si le principal et la clé KMS se trouvent dans des comptes différents, vous devez spécifier une politique IAM en plus de la subvention. Les subventions nécessitent une gestion supplémentaire, car vous devez appeler une API pour créer la subvention et pour retirer ou révoquer l'autorisation lorsqu'elle n'est plus nécessaire. 

# Politiques clés en AWS KMS
<a name="key-policies"></a>

Une politique clé est une politique de ressources pour un AWS KMS key. Les politiques de clé constituent le principal moyen de contrôler l'accès aux clés KMS. Chaque clé KMS doit avoir exactement une politique de clé. Les instructions dans la politique de clé déterminent qui a l'autorisation d'utiliser la clé KMS et la façon dont ces personnes peuvent l'utiliser. Vous pouvez également utiliser les [politiques IAM](iam-policies.md) et les [octrois](grants.md) pour contrôler l'accès à la clé KMS, mais chaque clé KMS doit avoir une politique de clé. 

Aucun AWS principal, y compris l'utilisateur root du compte ou le créateur de la clé, n'est autorisé à accéder à une clé KMS, sauf si cela est explicitement autorisé, et jamais refusé, dans une politique clé, une politique IAM ou une subvention. 

À moins que la politique de clé ne l'autorise explicitement, vous ne pouvez pas utiliser de politiques IAM pour *autoriser* l'accès à une clé KMS. Sans autorisation de la politique de clé, les politiques IAM qui octroient des autorisations n'ont aucun effet. (Vous pouvez utiliser une politique IAM pour *refuser* une autorisation à une clé KMS sans l'autorisation d'une politique de clé.) La politique de clé par défaut active les politiques IAM. Pour activer les politiques IAM dans votre politique de clé, ajoutez l’instruction de politique décrite dans [Autorise l'accès aux politiques IAM Compte AWS et les active](key-policy-default.md#key-policy-default-allow-root-enable-iam).

Contrairement aux politiques IAM, qui sont mondiales, les politiques de clés sont régionales. Une politique de clé contrôle uniquement l'accès à une clé KMS dans la même région. Elle n'a aucun effet sur les clés KMS des autres régions.

**Topics**
+ [Création d'une politique de clé](key-policy-overview.md)
+ [politique de clé par défaut](key-policy-default.md)
+ [Afficher une politique clé](key-policy-viewing.md)
+ [Modification d’une stratégie de clé](key-policy-modifying.md)
+ [Autorisations pour les AWS services](key-policy-services.md)

# Création d'une politique de clé
<a name="key-policy-overview"></a>

Vous pouvez créer et gérer des politiques clés dans la AWS KMS console ou à l'aide d'opérations d' AWS KMS API [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), telles que [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html), et [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html). 

Lorsque vous créez une clé KMS dans la AWS KMS console, celle-ci vous explique les étapes de création d'une politique clé basée sur la [politique clé par défaut de la console](key-policy-default.md). Lorsque vous utilisez le `CreateKey` ou `ReplicateKey` APIs, si vous ne spécifiez pas de stratégie clé, ceux-ci APIs appliquent la [politique clé par défaut pour les clés créées par programmation](key-policy-default.md). Lorsque vous créez l'API `PutKeyPolicy`, vous devez spécifier une stratégie de clé.

Chaque document de politique peut contenir une ou plusieurs instruction(s) de politique. L'exemple suivant montre un document de politique de clé valide avec une instruction de politique.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DescribePolicyStatement",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/Alice"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeySpec": "SYMMETRIC_DEFAULT"
        }
      }
    }
  ]
}
```

------

**Topics**
+ [Format de politique de clé](#key-policy-format)
+ [Éléments d'une politique de clé](#key-policy-elements)
+ [Exemple de politique de clé](#key-policy-example)

## Format de politique de clé
<a name="key-policy-format"></a>

Un document de politique de clé doit être conforme aux règles suivantes :
+ Jusqu'à 32 kilooctets (32 768 octets)
+ L'élément `Sid` dans une instruction de politique de clé peut inclure des espaces. (Les espaces sont interdits dans l'élément `Sid` d'un document de politique IAM.)

Un document de politique de clé ne peut contenir que les caractères suivants :
+ Caractères ASCII imprimables
+ Caractères imprimables du jeu de caractères Basic Latin et du jeu de caractères supplémentaires Latin-1
+ Les caractères spéciaux tabulation (`\u0009`), saut de ligne (`\u000A`) et retour chariot (`\u000D`)

## Éléments d'une politique de clé
<a name="key-policy-elements"></a>

Un document de politique de clé doit disposer des éléments suivants :

**Version**  
Spécifie la version du document de la politique de clé. Définissez la version sur `2012-10-17` (la dernière version).

**Instruction**  
Comprend les instructions de la politique. Un document de politique de clé doit avoir au moins une instruction.  
Chaque instruction de politique de clé est composée de six éléments. Les éléments `Effect`, `Principal`, `Action`, et `Resource` sont obligatoires.    
**Sid **  
(Facultatif) L'identifiant d'instruction (`Sid`) est une chaîne arbitraire que vous pouvez utiliser pour identifier l'instruction. Le `Sid` dans une politique de clé peut inclure des espaces. (Vous ne pouvez pas inclure d'espaces dans un élément `Sid` de politique IAM.)  
**Effet**  
(Requis) Détermine s'il convient d'autoriser ou de rejeter les autorisations figurant dans l'instruction de politique. Les valeurs valides sont `Allow` ou `Deny`. Si vous n'autorisez pas explicitement l'accès à une clé KMS, l'accès est implicitement refusé. Vous pouvez explicitement refuser l'accès à une clé KMS. Vous pouvez le faire afin de vous assurer qu'un utilisateur n'y a pas accès, même si une politique différente autorise l'accès.  
**Principal**  
(Requis) Le [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying) est l'identité qui obtient les autorisations figurant dans l'instruction de politique. Vous pouvez spécifier Comptes AWS des utilisateurs IAM, des rôles IAM et certains AWS services en tant que principaux dans une politique clé. Les [groupes d'utilisateurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) IAM ne constituent un principal valide dans aucun type de politique.  
Une valeur astérisque, par exemple `"AWS": "*"`, représente toutes les identités AWS de tous les comptes.  
Ne définissez pas le principal sur un astérisque (\$1) dans une instruction de politique de clé qui autorise des autorisations, sauf si vous utilisez des [conditions](policy-conditions.md) pour limiter la stratégie de clé. Un astérisque indique chaque identité associée à chaque Compte AWS autorisation d'utilisation de la clé KMS, sauf si une autre déclaration de politique le nie explicitement. Les utilisateurs des autres utilisateurs Comptes AWS peuvent utiliser votre clé KMS chaque fois qu'ils disposent des autorisations correspondantes sur leur propre compte.
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.
Lorsque le principal dans une instruction de politique de clé est un [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) exprimé comme `arn:aws:iam::111122223333:root"`, la déclaration de stratégie n'accorde aucune autorisation à un principal IAM. Il donne plutôt l' Compte AWS autorisation d'utiliser les politiques IAM pour déléguer les autorisations spécifiées dans la politique clé. (Un principal au format `arn:aws:iam::111122223333:root"` ne représente *pas* l'[utilisateur racine du compte AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html), malgré l'utilisation de « root » [racine] dans l'identifiant du compte. Cependant, le principal du compte représente le compte et ses administrateurs, y compris l'utilisateur racine du compte.)  
Lorsque le principal est un autre Compte AWS ou ses principaux, les autorisations ne sont effectives que lorsque le compte est activé dans la région avec la clé KMS et la politique de clé. Pour plus d'informations sur les régions qui ne sont pas activées par défaut (« Régions d'adhésion »), veuillez consulter [Gestion de Régions AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) dans la *Références générales AWS*.  
Pour autoriser un autre compte Compte AWS ou ses principaux utilisateurs à utiliser une clé KMS, vous devez fournir une autorisation dans une politique clé et dans une politique IAM de l'autre compte. Pour en savoir plus, consultez [Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS](key-policy-modifying-external-accounts.md).  
**Action**  
(Requis) Spécifiez les opérations d'API à autoriser ou à rejeter. Par exemple, l'`kms:Encrypt`action correspond à l'opération AWS KMS [Chiffrer](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html). Vous pouvez répertorier plusieurs actions dans une instruction de politique. Pour de plus amples informations, veuillez consulter [Référence des autorisations ](kms-api-permissions-reference.md).  
Si l'élément `Action` requis est absent d'une instruction de politique de clé, la déclaration de stratégie n'a aucun effet. Une déclaration de politique clé sans `Action` élément ne s'applique à aucune clé KMS.   
Lorsqu'il manque un `Action` élément à une déclaration de politique clé, la AWS KMS console signale correctement une erreur, mais le [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)et [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs réussit, même si la déclaration de politique est inefficace.  
**Ressource**  
(Requis) Dans une politique de clé, la valeur de l'élément Ressource est `"*"`, ce qui signifie « cette clé KMS ». L'astérisque (`"*"`) identifie la clé KMS à laquelle la politique de clé est attachée.  
Si l'élément `Resource` requis est absent d'une instruction de politique de clé, la déclaration de stratégie n'a aucun effet. Une instruction de politique de clé sans élément `Resource` ne s'applique à aucune clé KMS.   
Lorsqu'il manque un `Resource` élément à une déclaration de politique clé, la AWS KMS console signale correctement une erreur, mais le [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)et [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs réussit, même si la déclaration de politique est inefficace.  
**Condition**  
(Facultatif) Les conditions spécifient les exigences qui doivent être satisfaites pour qu'une politique de clé prenne effet. Avec des conditions, AWS peut évaluer le contexte d'une demande d'API afin de déterminer si la déclaration de politique s'applique ou non.   
Pour définir les conditions, vous utilisez des *clés de condition* prédéfinies. AWS KMS prend en charge les [clés de condition AWS globales](conditions-aws.md) et [les clés de AWS KMS condition](conditions-kms.md). Pour prendre en charge le contrôle d'accès basé sur les attributs (ABAC), AWS KMS fournit des clés de condition qui contrôlent l'accès à une clé KMS en fonction de balises et d'alias. Pour en savoir plus, consultez [ABAC pour AWS KMS](abac.md).  
Le format d'une condition est le suivant :  

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

```
"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}
```

Pour plus d'informations sur la syntaxe des AWS politiques, reportez-vous à la section [Référence des politiques AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le Guide de l'*utilisateur IAM*.

## Exemple de politique de clé
<a name="key-policy-example"></a>

L'exemple suivant illustre une politique de clé complète pour une clé KMS de chiffrement symétrique. Vous pouvez l'utiliser à titre de référence lorsque vous lisez les principaux concepts de stratégie de ce chapitre. Cette politique de clé combine les exemples d'instruction de politique issus de la section précédente [politique de clé par défaut](key-policy-default.md) en une politique de clé unique qui réalise les opérations suivantes :
+ Permet à l'exemple Compte AWS 111122223333 un accès complet à la clé KMS. Cela permet au compte et à ses administrateurs, y compris l'utilisateur root du compte (pour les urgences), d'utiliser des politiques IAM dans le compte pour autoriser l'accès à la clé KMS.
+ Permet au rôle IAM `ExampleAdminRole` d'administrer la clé KMS.
+ Permet au rôle IAM `ExampleUserRole` d'utiliser la clé KMS.

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

****  

```
{
    "Id": "key-consolepolicy",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyAdministratorsAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion",
                "kms:RotateKeyOnDemand"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyUse",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAttachmentPersistentResources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
```

------

# politique de clé par défaut
<a name="key-policy-default"></a>

Lorsque vous créez une clé KMS, vous pouvez spécifier la politique de clé pour la nouvelle clé KMS. Si vous n'en fournissez pas, AWS KMS créez-en un pour vous. La politique de clé par défaut AWS KMS utilisée varie selon que vous créez la clé dans la AWS KMS console ou que vous utilisez l' AWS KMS API.

**politique de clé par défaut lorsque vous créez une clé KMS par programmation**  
Lorsque vous créez une clé KMS par programmation avec l'[AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) (y compris en utilisant le [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/)ou [Outils AWS pour PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)) [AWS SDKs](https://aws.amazon.com/tools/#sdk), et que vous ne spécifiez aucune politique de clé, AWS KMS applique une politique de clé par défaut très simple. Cette politique de clé par défaut comporte une déclaration de politique qui autorise le Compte AWS propriétaire de la clé KMS à utiliser les politiques IAM pour autoriser l'accès à toutes les AWS KMS opérations sur la clé KMS. Pour plus d'informations sur cette instruction de politique, consultez la rubrique [Autorise l'accès aux politiques IAM Compte AWS et les active](#key-policy-default-allow-root-enable-iam).

**Politique de clé par défaut lorsque vous créez une clé KMS avec AWS Management Console**  
Lorsque vous [créez une clé KMS avec le AWS Management Console](create-keys.md), la politique clé commence par la déclaration de politique qui [autorise l'accès aux politiques IAM Compte AWS et les active](#key-policy-default-allow-root-enable-iam). La console ajoute ensuite une instruction d'[administrateur clé, une déclaration](#key-policy-default-allow-administrators) d'[utilisateur clé](#key-policy-default-allow-users) et (pour la plupart des types de clés) une instruction qui permet aux principaux d'utiliser la clé KMS avec [d'autres AWS services](#key-policy-service-integration). Vous pouvez utiliser les fonctionnalités de la AWS KMS console pour spécifier les utilisateurs IAM, les rôles IAM, ainsi Comptes AWS que les administrateurs principaux et les utilisateurs clés (ou les deux).

**Autorisations**
+ [Autorise l'accès aux politiques IAM Compte AWS et les active](#key-policy-default-allow-root-enable-iam)
+ [Autorise les administrateurs de clés à administrer la clé KMS](#key-policy-default-allow-administrators)
+ [Autorise les utilisateurs de clés à utiliser la clé KMS.](#key-policy-default-allow-users)
  + [Permet aux utilisateurs de clés d'utiliser une clé KMS pour les opérations de chiffrement](#key-policy-users-crypto)
  + [Permet aux utilisateurs clés d'utiliser la clé KMS avec les AWS services](#key-policy-service-integration)

## Autorise l'accès aux politiques IAM Compte AWS et les active
<a name="key-policy-default-allow-root-enable-iam"></a>

L'instruction de politique de clé par défaut suivante est extrêmement importante. 
+ Il donne au propriétaire Compte AWS de la clé KMS un accès complet à la clé KMS. 

  Contrairement aux autres politiques relatives aux AWS ressources, une politique AWS KMS clé n'autorise pas automatiquement le compte ni aucune de ses identités. Pour accorder l'autorisation aux administrateurs de compte, la politique de clé doit inclure une instruction explicite qui fournit cette autorisation, comme celle-ci.
+ Celle permet au compte d'utiliser des politiques IAM pour autoriser l'accès à la clé KMS, en plus de la politique de clé.

  Sans cette autorisation, les politiques IAM qui autorisent l'accès à la clé sont inefficaces, bien que celles qui refusent l'accès à la clé soient toujours efficaces. 
+ Cela réduit le risque que la clé devienne ingérable en accordant une autorisation de contrôle d'accès aux administrateurs du compte, y compris l'utilisateur racine du compte, qui ne peut pas être supprimé. 

L'instruction de politique de clé suivante est la politique de clé par défaut complète pour les clés KMS créées par programmation. Il s'agit de la première déclaration de politique de la politique de clé par défaut pour les clés KMS créées dans la AWS KMS console.

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
   },
  "Action": "kms:*",
  "Resource": "*"
}
```

**Autorise les politiques IAM à autoriser l'accès à la clé KMS.**  <a name="allow-iam-policies"></a>
La déclaration de politique clé présentée ci-dessus donne au Compte AWS détenteur de la clé l'autorisation d'utiliser les politiques IAM, ainsi que les politiques clés, pour autoriser toutes les actions (`kms:*`) sur la clé KMS.   
Le principal dans cette instruction de politique de clé est le [principal du compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts), qui est représenté par un ARN au format suivant : `arn:aws:iam::account-id:root`. Le principal du compte représente le AWS compte et ses administrateurs.   
Lorsque le principal d'une instruction de politique de clé correspond au principal du compte, cette instruction n'autorise aucun principal IAM à utiliser la clé KMS. Au lieu de cela, elle permet au compte d'utiliser des politiques IAM pour *déléguer* les autorisations spécifiées dans l'instruction de politique. Cette instruction de politique de clé par défaut permet au compte d'utiliser des politiques IAM pour déléguer l'autorisation pour toutes les actions (`kms:*`) sur la clé KMS.

** réduit le risque que la clé KMS devienne ingérable.**  
Contrairement aux autres politiques relatives aux AWS ressources, une politique AWS KMS clé n'autorise pas automatiquement le compte ou l'un de ses principaux responsables. Pour accorder l'autorisation à un principal, y compris le [principal du compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts), vous devez utiliser une instruction de politique de clé qui fournit explicitement l'autorisation. Vous n'êtes pas l'obligation de donner accès à la clé KMS au principal du compte ou à tout autre principal. Cependant, donner accès au principal du compte vous permet d'éviter que la clé ne devienne ingérable.  
Par exemple, supposons que vous créez une politique de clé qui donne à un seul utilisateur l'accès à la clé KMS. Si vous supprimez ensuite cet utilisateur, la clé devient ingérable et vous devez [contacter le support AWS](https://console.aws.amazon.com/support/home#/case/create) pour retrouver l'accès à la clé KMS.   
La déclaration de politique clé présentée ci-dessus autorise le [principal du compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) à contrôler la clé. Le principal du compte représente lui-même Compte AWS et ses administrateurs, y compris l'[utilisateur root du compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html). L'utilisateur racine du compte est le seul principal qui ne peut pas être supprimé, sauf si vous supprimez le Compte AWS. Conformément aux bonnes pratiques IAM, il est déconseillé d'agir au nom de l'utilisateur racine du compte, sauf en cas d'urgence. Toutefois, vous devrez peut-être agir en tant qu'utilisateur racine du compte si vous supprimez tous les autres utilisateurs et rôles ayant accès à la clé KMS. 

## Autorise les administrateurs de clés à administrer la clé KMS
<a name="key-policy-default-allow-administrators"></a>

La politique de clé par défaut créée par la console vous permet de choisir des utilisateurs et des rôles IAM dans le compte et d'en faire des *administrateurs de clé*. Cette instruction est appelée l'*instruction des administrateurs de clé*. Les administrateurs de clés ont les autorisations nécessaires pour gérer la clé KMS, mais n'ont pas d'autorisations pour utiliser la clé KMS dans des [opérations de chiffrement](kms-cryptography.md#cryptographic-operations). Vous pouvez ajouter des utilisateurs et des rôles IAM à la liste des administrateurs de clés lorsque vous créez la clé KMS dans la vue par défaut ou la vue de la politique. 

**Avertissement**  
Les administrateurs clés étant autorisés à modifier la politique clé et à créer des autorisations, ils peuvent s'octroyer, ainsi qu'à d'autres, AWS KMS des autorisations non spécifiées dans cette politique.  
Les principaux qui ont l'autorisation de gérer les balises et les alias peuvent également contrôler l'accès à une clé KMS. Pour en savoir plus, consultez [ABAC pour AWS KMS](abac.md).

**Note**  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.

L'exemple suivant montre l'instruction des administrateurs de clé dans la vue par défaut de la console AWS KMS .

![\[Administrateurs de clé dans la politique de clé par défaut de la console, vue par défaut\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/console-key-policy-administrators-60.png)


Voici un exemple d'instruction des administrateurs de clés dans la vue de politique de la console AWS KMS . Cette déclaration des administrateurs de clés concerne une clé KMS de chiffrement symétrique à région unique.

**Note**  
La AWS KMS console ajoute des administrateurs clés à la politique clé sous l'identifiant de l'instruction`"Allow access for Key Administrators"`. La modification de cet identifiant d'instruction peut avoir un impact sur la façon dont la console affiche les mises à jour que vous apportez à l'instruction.

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"},
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion",
    "kms:RotateKeyOnDemand"
  ],
  "Resource": "*"
}
```

L'instruction par défaut des administrateurs de clés pour la clé KMS la plus courante, une clé KMS de chiffrement symétrique à région unique, octroie les autorisations suivantes. Pour plus d'informations sur ces autorisations, veuillez consulter la [AWS KMS autorisations](kms-api-permissions-reference.md).

Lorsque vous utilisez la AWS KMS console pour créer une clé KMS, la console ajoute les utilisateurs et les rôles que vous spécifiez à l'`Principal`élément figurant dans la déclaration des administrateurs clés.

Un grand nombre de ces autorisations contiennent le caractère générique (`*`), qui octroie toutes les autorisations commençant par le verbe spécifié. Par conséquent, lors de l' AWS KMS ajout de nouvelles opérations d'API, les administrateurs clés sont automatiquement autorisés à les utiliser. Il n'est pas nécessaire de mettre à jour vos politiques de clé pour inclure les nouvelles opérations. Si vous préférez limiter vos administrateurs de clés à un ensemble fixe d'opérations d'API, vous pouvez [modifier votre politique de clé](key-policy-modifying.md).

**`kms:Create*`**  
Autorise [`kms:CreateAlias`](kms-alias.md) et [`kms:CreateGrant`](grants.md). (L'autorisation `kms:CreateKey` n'est valide que dans une politique IAM.)

**`kms:Describe*`**  
Autorise [`kms:DescribeKey`](viewing-keys.md) L'autorisation `kms:DescribeKey` est nécessaire pour afficher la page des détails d'une clé KMS dans la AWS Management Console.

**`kms:Enable*`**  
Autorise [`kms:EnableKey`](enabling-keys.md) Pour les clés KMS de chiffrement symétriques, elle autorise également [`kms:EnableKeyRotation`](rotate-keys.md).

**`kms:List*`**  
Autorise [`kms:ListGrants`](grants.md), [https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html) et [`kms:ListResourceTags`](tagging-keys.md). (Les autorisations `kms:ListAliases` et `kms:ListKeys`, requises pour afficher les clés KMS dans la AWS Management Console, sont valides uniquement dans les politiques IAM.)

**`kms:Put*`**  
Autorise [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) Cette autorisation autorise les administrateurs de clés à modifier la politique de cette clé KMS.

**`kms:Update*`**  
Autorise [`kms:UpdateAlias`](alias-update.md) et [https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html). Pour les clés multi-région, elle autorise [`kms:UpdatePrimaryRegion`](multi-region-update.md#update-primary-console) sur cette clé KMS.

**`kms:Revoke*`**  
Autorise [`kms:RevokeGrant`](grant-delete.md) qui permet aux administrateurs de clés de [supprimer un octroi](grant-delete.md), même s'ils ne sont pas un [principal de retrait](grants.md#terms-retiring-principal) dans l'octroi. 

**`kms:Disable*`**  
Autorise [`kms:DisableKey`](enabling-keys.md) Pour les clés KMS de chiffrement symétriques, elle autorise également [`kms:DisableKeyRotation`](rotate-keys.md).

**`kms:Get*`**  
Autorise [`kms:GetKeyPolicy`](key-policy-viewing.md) et [`kms:GetKeyRotationStatus`](rotate-keys.md). Pour les clés KMS avec des éléments de clé importés, elle autorise [https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html). Pour les clés KMS asymétriques, elle autorise [https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html). L'autorisation `kms:GetKeyPolicy` est nécessaire pour afficher la politique de clé KMS dans la AWS Management Console.

**`kms:Delete*`**  
Autorise [`kms:DeleteAlias`](kms-alias.md) Pour les clés avec des éléments de clé importés, elle autorise [`kms:DeleteImportedKeyMaterial`](importing-keys.md). Notez que l'autorisation `kms:Delete*` ne permet pas aux administrateurs de clés de supprimer la clé KMS (`ScheduleKeyDeletion`).

**`kms:TagResource`**  
Autorise [`kms:TagResource`](tagging-keys.md), qui permet aux administrateurs de clés d'ajouter des identifications à la clé KMS. Étant donné que les balises peuvent être également utilisées pour contrôler l'accès à la clé KMS, cette autorisation peut permettre aux administrateurs d'autoriser ou de refuser l'accès à la clé KMS. Pour en savoir plus, consultez [ABAC pour AWS KMS](abac.md).

**`kms:UntagResource`**  
Autorise [`kms:UntagResource`](tagging-keys.md), qui permet aux administrateurs de clés de supprimer les balises de la clé KMS. Étant donné que les balises peuvent être utilisées pour contrôler l'accès à la clé, cette autorisation peut permettre aux administrateurs d'autoriser ou de refuser l'accès à la clé KMS. Pour en savoir plus, consultez [ABAC pour AWS KMS](abac.md).

**`kms:ScheduleKeyDeletion`**  
Autorise [https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html), qui permet aux administrateurs de clés de [supprimer cette clé KMS](deleting-keys.md). Pour supprimer cette autorisation, désélectionnez l'option **Autoriser les administrateurs de clé à supprimer cette clé**.

**`kms:CancelKeyDeletion`**  
Autorise [https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html), qui permet aux administrateurs de clés d'[annuler la suppression de cette clé KMS](deleting-keys.md). Pour supprimer cette autorisation, désélectionnez l'option **Autoriser les administrateurs de clé à supprimer cette clé**.

**`kms:RotateKeyOnDemand`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html)Autorise, ce qui permet aux administrateurs clés d'[effectuer une rotation à la demande du contenu clé de cette clé KMS](rotating-keys-on-demand.md).

 

AWS KMS ajoute les autorisations suivantes à la déclaration par défaut des administrateurs de clés lorsque vous créez des clés spécifiques.

**`kms:ImportKeyMaterial`**  
L'autorisation [https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) permet aux administrateurs de clés d'importer des éléments de clé dans la clé KMS. Cette autorisation est incluse dans la politique de clé uniquement lorsque vous [créez une clé KMS sans élément de clé](importing-keys-create-cmk.md).

**`kms:ReplicateKey`**  
L'[https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)autorisation permet aux administrateurs de clés de [créer une réplique d'une clé primaire multirégionale](multi-region-keys-replicate.md) dans une autre AWS région. Cette autorisation est incluse dans la politique de clé uniquement lorsque vous créez une clé primaire ou un réplica multi-région.

**`kms:UpdatePrimaryRegion`**  
L'autorisation [https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) permet aux administrateurs de clés de [remplacer une clé de réplica multi-région par une clé primaire multi-région](multi-region-update.md). Cette autorisation est incluse dans la politique de clé uniquement lorsque vous créez une clé primaire ou un réplica multi-région.

## Autorise les utilisateurs de clés à utiliser la clé KMS.
<a name="key-policy-default-allow-users"></a>

La politique de clés par défaut créée par la console pour les clés KMS vous permet de choisir les utilisateurs IAM et les rôles IAM dans le compte, ainsi qu'en externe Comptes AWS, et d'en faire des utilisateurs *clés*. 

La console ajoute deux instructions de politique à la politique de clé pour les utilisateurs de clés.
+ [Utilisez la clé KMS directement](#key-policy-users-crypto) – La première instruction de politique de clé donne aux utilisateurs des clés l'autorisation d'utiliser la clé KMS directement pour toutes les [opérations de chiffrement](kms-cryptography.md#cryptographic-operations) prises en charge pour ce type de clé KMS.
+ [Utiliser la clé KMS avec les AWS services](#key-policy-service-integration) — La deuxième déclaration de politique autorise les utilisateurs clés à autoriser les AWS services intégrés AWS KMS à utiliser la clé KMS en leur nom pour protéger des ressources, telles que les compartiments Amazon S3 et les tables Amazon DynamoDB.

Vous pouvez ajouter des utilisateurs IAM, des rôles IAM et d'autres utilisateurs Comptes AWS à la liste des utilisateurs clés lorsque vous créez la clé KMS. Vous pouvez aussi modifier la liste avec la vue par défaut de la console pour les politiques de clé, comme illustré dans l'image suivante. La vue par défaut pour les politiques de clé est sur la page des détails de la clé. Pour plus d'informations sur la manière d'autoriser les utilisateurs d'autres pays Comptes AWS à utiliser la clé KMS, consultez[Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS](key-policy-modifying-external-accounts.md).

**Note**  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.

![\[Utilisateurs de clé dans la politique de clé par défaut de la console, vue par défaut\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/console-key-policy-users-sm.png)


Les *instructions par défaut des utilisateurs de clé* d'une clé symétrique à région unique octroient les autorisations suivantes. Pour plus d'informations sur ces autorisations, veuillez consulter la [AWS KMS autorisations](kms-api-permissions-reference.md).

Lorsque vous utilisez la AWS KMS console pour créer une clé KMS, la console ajoute les utilisateurs et les rôles que vous spécifiez à l'`Principal`élément figurant dans la déclaration de chaque utilisateur clé.

**Note**  
La AWS KMS console ajoute des utilisateurs clés à la politique clé sous les identificateurs de déclaration `"Allow use of the key"` et`"Allow attachment of persistent resources"`. La modification de ces identificateurs de déclaration peut avoir un impact sur la façon dont la console affiche les mises à jour que vous apportez à l'instruction.

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": [
    "arn:aws:iam::111122223333:role/ExampleRole",
    "arn:aws:iam::444455556666:root"
  ]},
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
},
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": [
    "arn:aws:iam::111122223333:role/ExampleRole",
    "arn:aws:iam::444455556666:root"
  ]},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

## Permet aux utilisateurs de clés d'utiliser une clé KMS pour les opérations de chiffrement
<a name="key-policy-users-crypto"></a>

Les utilisateurs de clés ont l'autorisation d'utiliser la clé KMS directement dans toutes les [opérations de chiffrement](kms-cryptography.md#cryptographic-operations) prises en charge par la clé KMS. Ils peuvent également utiliser l'[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)opération pour obtenir des informations détaillées sur la clé KMS dans la AWS KMS console ou en utilisant les opérations AWS KMS d'API.

Par défaut, la AWS KMS console ajoute à la politique clé par défaut des instructions relatives aux utilisateurs clés telles que celles des exemples suivants. Étant donné qu'ils prennent en charge différentes opérations d'API, les actions des instructions de politique pour les clés KMS de chiffrement symétriques, les clés KMS HMAC, les clés KMS asymétriques pour le chiffrement de clé publique et les clés KMS asymétriques pour la signature et la vérification sont légèrement différentes.

**Clés KMS de chiffrement symétriques**  
La console ajoute l'instruction suivante à la politique de clé pour les clés KMS de chiffrement symétriques.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey",
    "kms:Encrypt",
    "kms:GenerateDataKey*",
    "kms:ReEncrypt*"
  ],
  "Resource": "*"
}
```

**Clés KMS HMAC**  
La console ajoute l'instruction suivante à la politique de clé pour les clés KMS HMAC.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateMac",
    "kms:VerifyMac"
  ],
  "Resource": "*"
}
```

**Clés CMK asymétriques pour le chiffrement de clé publique**  
La console ajoute l'instruction suivante à la politique de clé pour les clés KMS asymétriques avec **Encrypt and decrypt (Chiffrer et déchiffrer)** comme utilisation des clés.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey",
    "kms:GetPublicKey"
  ],
  "Resource": "*"
}
```

**Clés CMK asymétriques pour la signature et la vérification**  
La console ajoute l'instruction suivante à la politique de clé pour les clés KMS asymétriques avec **Sign and verify (Signer et vérifier)** comme utilisation des clés.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:Sign",
    "kms:Verify"
  ],
  "Resource": "*"
}
```

**Clés KMS asymétriques pour dériver des secrets partagés**  
La console ajoute la déclaration suivante à la politique clé pour les clés KMS asymétriques avec une utilisation clé de l'**accord des clés**.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:DeriveSharedSecret"
  ],
  "Resource": "*"
}
```

Les actions de ces instructions donnent aux utilisateurs de clé les autorisations suivantes.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)  
Permet aux utilisateurs de clé de chiffrer des données avec cette clé KMS.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)  
Permet aux utilisateurs de clé de déchiffrer des données avec cette clé KMS.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)  
Permet aux utilisateurs clés de dériver des secrets partagés avec cette clé KMS.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)  
Permet aux utilisateurs de clé d'obtenir des informations sur cette clé KMS, y compris ses identificateurs, sa date de création, son état, etc. Il permet également aux principaux utilisateurs d'afficher les détails de la clé KMS dans la AWS KMS console.

`kms:GenerateDataKey*`  
Permet aux utilisateurs de clé de demander une paires de clés de données symétriques ou asymétriques pour les opérations de chiffrement côté client. La console utilise le caractère générique \$1 pour représenter l'autorisation pour les opérations d'API suivantes : [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), et [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html). Ces autorisations sont valides uniquement sur les clés KMS symétriques qui chiffrent les clés de données.

[km : GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)  
Permet aux utilisateurs de clés d'utiliser une clé KMS HMAC pour générer une balise HMAC.

[km : GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  
Permet aux utilisateurs de clé de télécharger la clé publique de la clé KMS asymétrique. Les parties avec lesquelles vous partagez cette clé publique peuvent chiffrer des données en dehors de AWS KMS. Cependant, ces textes chiffrés ne peuvent être déchiffrés qu'en appelant l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) dans AWS KMS.

[km : ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) \$1   
Permet aux utilisateurs de clé de rechiffrer les données initialement chiffrées avec cette clé KMS, ou d'utiliser cette clé KMS pour rechiffrer des données précédemment chiffrées. L'[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)opération nécessite l'accès aux clés KMS source et de destination. Pour ce faire, vous pouvez accorder l'autorisation `kms:ReEncryptFrom` sur la clé KMS source et l'autorisation `kms:ReEncryptTo` sur la clé KMS de destination. Cependant, par souci de simplicité, la console autorise `kms:ReEncrypt*` (avec le caractère `*` générique) sur les deux clés KMS.

[kms:Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)  
Permet aux utilisateurs de clé de signer des messages avec cette clé KMS.

[kms:Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)  
Permet aux utilisateurs de clé de vérifier les signatures avec cette clé KMS.

[km : VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)  
Permet aux utilisateurs de clés d'utiliser une clé KMS HMAC pour vérifier une balise HMAC.

## Permet aux utilisateurs clés d'utiliser la clé KMS avec les AWS services
<a name="key-policy-service-integration"></a>

La politique clé par défaut de la console donne également aux utilisateurs clés les autorisations dont ils ont besoin pour protéger leurs données dans les AWS services utilisant des autorisations. AWS les services utilisent souvent des subventions pour obtenir une autorisation spécifique et limitée d'utilisation d'une clé KMS.

Cette déclaration de politique clé permet à l'utilisateur clé de créer, de consulter et de révoquer des autorisations sur la clé KMS, mais uniquement lorsque la demande d'opération d'autorisation provient d'un [AWS service intégré à AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration). La condition de GrantIsFor AWSResource politique [kms :](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) ne permet pas à l'utilisateur d'appeler directement ces opérations de subvention. Lorsque l'utilisateur clé l'autorise, un AWS service peut créer une autorisation au nom de l'utilisateur qui permet au service d'utiliser la clé KMS pour protéger les données de l'utilisateur. 

Les utilisateurs de clé ont besoin de ces autorisations pour utiliser leur clé KMS avec des services intégrés, mais ces autorisations ne sont pas suffisantes. Les utilisateurs de clés ont également besoin d'une autorisation pour utiliser les services intégrés. Pour en savoir plus sur l'accès des utilisateurs à un AWS service intégré AWS KMS, consultez la documentation du service intégré.

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

Par exemple, les utilisateurs de clés peuvent utiliser ces autorisations sur la clé KMS de la manière suivante.
+ Utilisez cette clé KMS avec Amazon Elastic Block Store (Amazon EBS) et Amazon Elastic Compute Cloud (Amazon EC2) pour attacher un volume EBS chiffré à une instance EC2. L'utilisateur de clé accorde implicitement à Amazon EC2 l'autorisation d'utiliser la clé KMS pour attacher le volume chiffré à l'instance. Pour de plus amples informations, veuillez consulter [Comment Amazon Elastic Block Store (Amazon EBS) utilise AWS KMS](services-ebs.md).
+ Utilisez cette clé KMS avec Amazon Redshift pour lancer un cluster chiffré. L'utilisateur de clé accorde implicitement à Amazon Redshift l'autorisation d'utiliser la clé KMS pour lancer le cluster chiffré et créer des instantanés chiffrés. Pour de plus amples informations, veuillez consulter [Comment Amazon Redshift utilise AWS KMS](services-redshift.md).
+ Utiliser cette clé KMS avec d'autres [services AWS intégrés à AWS KMS](service-integration.md) qui utilisent des octrois, pour créer, gérer ou utiliser des ressources chiffrées avec ces services.

La politique de clé par défaut permet aux utilisateurs clés de déléguer leur autorisation d'octroi à *tous* les services intégrés qui utilisent des octrois. Cependant, vous pouvez créer une politique clé personnalisée qui limite l'autorisation à des AWS services spécifiques. Pour plus d'informations, reportez-vous à la clé de condition [km : ViaService](conditions-kms.md#conditions-kms-via-service).

# Afficher une politique clé
<a name="key-policy-viewing"></a>

Vous pouvez consulter la politique clé d'une clé [gérée par le AWS KMS client ou d'une clé [Clé gérée par AWS](concepts.md#aws-managed-key)](concepts.md#customer-mgn-key)intégrée à votre compte à l'aide de la AWS KMS console ou de l'[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)opération dans l' AWS KMS API. Vous ne pouvez pas utiliser ces techniques pour afficher la politique d'une clé KMS dans un autre Compte AWS. 

Pour en savoir plus sur les AWS KMS principales politiques, voir[Politiques clés en AWS KMS](key-policies.md). Pour savoir comment déterminer quels sont les utilisateurs et rôles qui ont accès à une clé KMS, veuillez consulter [Déterminer l'accès à AWS KMS keys](determining-access.md).

## Utilisation de la AWS KMS console
<a name="key-policy-viewing-console"></a>

Les utilisateurs autorisés peuvent afficher la politique de clé d'une [Clé gérée par AWS](concepts.md#aws-managed-key) ou d'une [clé gérée par le client](concepts.md#customer-mgn-key) dans l'onglet **Politique de clé** de la AWS Management Console. 

[Pour afficher la politique clé d'une clé KMS dans le AWS Management Console, vous devez disposer des GetKeyPolicy autorisations [kms : DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), kms : et [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html). ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)

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

1. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

1. 

   Pour afficher les clés de votre compte qui AWS crée et gère pour vous, dans le volet de navigation, choisissez **les clés AWS gérées**. Pour afficher les clés de votre compte que vous créez et gérez vous-même, dans le volet de navigation, choisissez **Clés gérées par le client**.

1. Dans la liste des clés KMS, choisissez l'alias ou l'ID de clé de la clé KMS que vous souhaitez examiner.

1. Choisissez l'onglet **Politique de clé**.

   Dans l'onglet **Politique de clé**, vous pouvez voir le document de politique de clé. Il s'agit d'une *vue de politique*. Dans les instructions de politique de clé, vous pouvez voir les principaux qui sont autorisés à accéder à la clé KMS par la politique de clé, ainsi que les actions qu'ils peuvent effectuer.

   L'exemple suivant montre la vue de la [politique de clé par défaut](key-policy-default.md).   
![\[Affichage de la politique clé par défaut dans la vue politique de la AWS KMS console\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/console-key-policy-view.png)

   Ou, si vous avez créé la clé KMS dans le AWS Management Console, vous verrez la *vue par défaut* avec des sections pour les **administrateurs clés**, la **suppression de clés** et **les utilisateurs clés**. Pour consulter le document de politique de clé, choisissez **Passer à la vue de politique**.

   L'exemple suivant montre la vue par défaut de la [politique de clé par défaut](key-policy-default.md).   
![\[Affichage de la politique clé par défaut dans l'affichage par défaut de la AWS KMS console\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/console-key-policy-full-vsm.png)

## Utilisation de l' AWS KMS API
<a name="key-policy-viewing-api"></a>

Pour obtenir la politique de clé pour une clé KMS dans votre Compte AWS, utilisez l'[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)opération dans l' AWS KMS API. Vous ne pouvez pas utiliser cette opération pour afficher une politique de clé d'un autre compte.

L'exemple suivant utilise la [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)commande contenue dans le AWS Command Line Interface (AWS CLI), mais vous pouvez utiliser n'importe quel AWS SDK pour effectuer cette demande. 

Notez que le paramètre `PolicyName` est obligatoire, même si `default` est sa seule valeur valide. En outre, cette commande demande une sortie en texte, plutôt qu'en JSON, pour le rendre plus facile à afficher.

Avant d'exécuter cette commande, remplacez l'exemple d'ID de clé par un identifiant valide provenant de votre compte.

```
$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text
```

La réponse doit être similaire à la suivante, qui renvoie la [politique de clé par défaut](key-policy-default.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "key-consolepolicy-3",
  "Statement" : [ {
  "Sid" : "EnableIAMUserPermissions",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::111122223333:root"
    },
    "Action" : "kms:*",
    "Resource" : "*"
  } ]
}
```

------

# Modification d’une stratégie de clé
<a name="key-policy-modifying"></a>

Vous pouvez modifier la politique de clé d'une clé KMS dans votre ordinateur Compte AWS à l'aide de l'[PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)opération AWS Management Console ou. Vous ne pouvez pas utiliser ces techniques pour modifier la politique clé d'une clé KMS d'un autre Compte AWS.

Lors de la modification d'une politique de clé, gardez à l'esprit les règles suivantes :
+ Vous pouvez afficher la politique de clé d'une [Clé gérée par AWS](concepts.md#aws-managed-key) ou d'une [clé KMS par le client](concepts.md#customer-mgn-key), mais vous ne pouvez modifier que la politique de clé d'une clé KMS géré par le client. Les politiques de Clés gérées par AWS sont créées et gérées par le AWS service qui a créé la clé KMS dans votre compte. Vous ne pouvez pas afficher ou modifier la politique de clé pour une [Clé détenue par AWS](concepts.md#aws-owned-key).
+ Vous pouvez ajouter ou supprimer des utilisateurs IAM, des rôles IAM et Comptes AWS dans la politique clé, et modifier les actions autorisées ou refusées pour ces principaux. Pour plus d'informations sur les moyens de spécifier des principaux et des autorisations dans une politique de clé, consultez la page [Politiques de clé](key-policies.md).
+ Vous ne pouvez pas ajouter de groupes IAM à une politique de clé, mais vous pouvez ajouter plusieurs utilisateurs IAM et rôles IAM. Pour de plus amples informations, veuillez consulter [Attribution à plusieurs principaux IAM de l'autorisation d'accès à une clé KMS](iam-policies.md#key-policy-modifying-multiple-iam-users).
+ Si vous ajoutez des éléments externes Comptes AWS à une politique clé, vous devez également utiliser des politiques IAM dans les comptes externes pour accorder des autorisations aux utilisateurs, aux groupes ou aux rôles IAM dans ces comptes. Pour de plus amples informations, veuillez consulter [Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS](key-policy-modifying-external-accounts.md).
+ Le document de politique de clé obtenu ne doit pas comporter plus de 32 Ko (32 768 octets).

## Comment modifier une politique de clé
<a name="key-policy-modifying-how-to"></a>

Vous pouvez modifier une politique de clé de trois façons différentes, chacune d'elles étant expliquée dans les sections suivantes.

**Topics**
+ [Utilisation de la vue AWS Management Console par défaut](#key-policy-modifying-how-to-console-default-view)
+ [Utilisation de l'affichage AWS Management Console des politiques](#key-policy-modifying-how-to-console-policy-view)
+ [Utilisation de l' AWS KMS API](#key-policy-modifying-how-to-api)

### Utilisation de la vue AWS Management Console par défaut
<a name="key-policy-modifying-how-to-console-default-view"></a>

Vous pouvez utiliser la console pour modifier une politique de clé à l'aide d'une interface graphique appelée *vue par défaut*.

Si les étapes suivantes ne correspondent pas à ce que vous voyez dans la console, cela peut signifier que cette politique n'a pas été créée par la console. Ou cela peut signifier que la politique de clé a été modifiée d'une façon que la vue par défaut de la console ne prend pas en charge. Dans ce cas, suivez les étapes de la section [Utilisation de l'affichage AWS Management Console des politiques](#key-policy-modifying-how-to-console-policy-view) ou [Utilisation de l' AWS KMS API](#key-policy-modifying-how-to-api).

1. Affichez la politique de clé d'une clé gérée par le client comme indiqué dans [Utilisation de la AWS KMS console](key-policy-viewing.md#key-policy-viewing-console). (Vous ne pouvez pas modifier les politiques clés de Clés gérées par AWS.)

1. Décidez ce qu'il convient de modifier.
   + Pour ajouter ou supprimer des [administrateurs de clé](key-policy-default.md#key-policy-default-allow-administrators), et pour autoriser ou non ces administrateurs de clé à [supprimer la clé KMS](deleting-keys.md), utilisez les contrôles de la section **Administrateurs de clé** de la page. Les administrateurs de clé gèrent la clé KMS, y compris son activation et sa désactivation, la définition de la politique de clé, et [l'activation de la rotation des clés](rotate-keys.md).
   + Pour ajouter ou supprimer des [utilisateurs clés](key-policy-default.md#key-policy-default-allow-users), et pour autoriser ou interdire Comptes AWS à des utilisateurs externes d'utiliser la clé KMS, utilisez les commandes de la section **Utilisateurs clés** de la page. Les utilisateurs de clé peuvent utiliser la clé KMS dans les [opérations de chiffrement](kms-cryptography.md#cryptographic-operations), telles que le chiffrement, le déchiffrement, le rechiffrement et la génération de clés de données.

### Utilisation de l'affichage AWS Management Console des politiques
<a name="key-policy-modifying-how-to-console-policy-view"></a>

Vous pouvez utiliser la console pour modifier un document de politique de clé à l'aide de la *vue de politique* de la console.

1. Affichez la politique de clé d'une clé gérée par le client comme indiqué dans [Utilisation de la AWS KMS console](key-policy-viewing.md#key-policy-viewing-console). (Vous ne pouvez pas modifier les politiques clés de Clés gérées par AWS.)

1. Dans la section **Politique de clé**, choisissez **Passer à la vue de la politique**.

1. Sélectionnez **Edit** (Modifier).

1. Décidez ce qu'il convient de modifier.
   + Pour ajouter un nouveau relevé, choisissez **Ajouter un nouveau relevé**. Vous pouvez ensuite sélectionner les actions, les principes et les conditions de votre nouvelle déclaration de politique clé parmi les options répertoriées dans le panneau du générateur de déclarations, ou saisir manuellement les éléments de la déclaration de politique.
   + Pour supprimer une déclaration de votre politique clé, sélectionnez-la, puis choisissez **Supprimer**. Passez en revue la déclaration de politique sélectionnée et confirmez que vous souhaitez la supprimer. Si vous décidez de ne pas procéder à la suppression de l'instruction, choisissez **Annuler**.
   + Pour modifier une déclaration de politique clé existante, sélectionnez-la. Vous pouvez ensuite utiliser le panneau du générateur de relevés pour choisir les éléments spécifiques que vous souhaitez modifier ou modifier manuellement le relevé.

1. Sélectionnez **Enregistrer les modifications**.

### Utilisation de l' AWS KMS API
<a name="key-policy-modifying-how-to-api"></a>

Vous pouvez utiliser cette [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)opération pour modifier la politique de clé d'une clé KMS dans votre Compte AWS. Vous ne pouvez pas utiliser cette API sur une clé KMS d'un autre Compte AWS.

1. Utilisez cette [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)opération pour obtenir le document de stratégie clé existant, puis enregistrez le document de stratégie clé dans un fichier. Pour obtenir un exemple de code dans plusieurs langages de programmation, veuillez consulter [Utilisation `GetKeyPolicy` avec un AWS SDK ou une CLI](example_kms_GetKeyPolicy_section.md).

1. Ouvrez le document de politique de clé dans votre éditeur de texte préféré, modifiez le document de politique de clé, puis enregistrez le fichier.

1. Utilisez cette [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)opération pour appliquer le document de politique clé mis à jour à la clé KMS. Pour obtenir un exemple de code dans plusieurs langages de programmation, veuillez consulter [Utilisation `PutKeyPolicy` avec un AWS SDK ou une CLI](example_kms_PutKeyPolicy_section.md).

Pour un exemple de copie d'une politique clé d'une clé KMS à une autre, consultez l'[GetKeyPolicy exemple](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html#examples) dans le manuel de référence des AWS CLI commandes.

# Autorisations pour les AWS services dans les politiques clés
<a name="key-policy-services"></a>

De nombreux AWS services les utilisent AWS KMS keys pour protéger les ressources qu'ils gèrent. Lorsqu'un service utilise [Clés détenues par AWS](concepts.md#aws-owned-key) ou [Clés gérées par AWS](concepts.md#aws-managed-key), le service établit et gère les politiques de clé de ces clés KMS. 

Toutefois, lorsque vous utilisez une [clé gérée par le client](concepts.md#customer-mgn-key) avec un service AWS vous définissez et gérez la politique de clé. Cette politique de clé doit accorder au service les autorisations minimales dont il a besoin pour protéger la ressource en votre nom. Nous vous recommandons de respecter le principe du moindre privilège : ne donnez au service que les autorisations dont il a besoin. Vous pouvez le faire efficacement en déterminant de quelles autorisations le service a besoin et en utilisant des [clés de condition globales AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) et des [clés de condition AWS KMS](policy-conditions.md) pour affiner les autorisations. 

Pour trouver les autorisations requises par le service sur une clé gérée par le client, consultez la documentation sur le chiffrement du service. La liste suivante inclut des liens vers la documentation de certains services :
+ **AWS CloudTrail**autorisations - [Configurez les politiques AWS KMS clés pour CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-kms-key-policy-for-cloudtrail.html#create-kms-key-policy-for-cloudtrail-decrypt)
+ Autorisations **Amazon Elastic Block Store** - Guide de l'utilisateur [Amazon EC2 et Guide de l'utilisateur](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#ebs-encryption-permissions) [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EBSEncryption.html#ebs-encryption-permissions)
+ **AWS Lambda**autorisations - [Chiffrement des données au repos pour Lambda](https://docs.aws.amazon.com/lambda/latest/dg/security-encryption-at-rest.html)
+ Autorisations **Amazon Q** - [Chiffrement des données pour Amazon Q](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/data-encryption.html)
+ Autorisations **Amazon Relational Database** Service [AWS KMS :](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.Keys.html) gestion des clés
+ **AWS Secrets Manager**permissions - [Autoriser l'utilisation de la clé KMS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-authz)
+ Autorisations **Amazon Simple Queue Service** - Gestion des [clés Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)

# Utilisation des politiques IAM avec AWS KMS
<a name="iam-policies"></a>

Vous pouvez utiliser des politiques IAM, ainsi que des [politiques clés](key-policies.md), [des autorisations](grants.md) et des politiques de point de [terminaison VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy), pour contrôler l'accès à AWS KMS keys votre entrée. AWS KMS

**Note**  
Pour utiliser une politique IAM afin de contrôler l'accès à une clé KMS, la politique de clé de la clé KMS doit donner au compte l'autorisation d'utiliser des politiques IAM. Plus précisément, la politique de clé doit inclure l'[instruction de politique qui autorise les politiques IAM](key-policy-default.md#key-policy-default-allow-root-enable-iam).  
Cette section explique comment utiliser les politiques IAM pour contrôler l'accès aux AWS KMS opérations. Pour plus d'informations sur IAM, veuillez consulter le [Guide de l'utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

Toutes les clés KMS doivent avoir une politique de clé. Les politiques IAM sont facultatives. Pour utiliser une politique IAM afin de contrôler l'accès à une clé KMS, la politique de clé de la clé KMS doit donner au compte l'autorisation d'utiliser des politiques IAM. Plus précisément, la politique de clé doit inclure l'[instruction de politique qui autorise les politiques IAM](key-policy-default.md#key-policy-default-allow-root-enable-iam).

Les politiques IAM peuvent contrôler l'accès à n'importe quelle AWS KMS opération. Contrairement aux politiques clés, les politiques IAM peuvent contrôler l'accès à plusieurs clés KMS et fournir des autorisations pour les opérations de plusieurs AWS services connexes. Mais les politiques IAM sont particulièrement utiles pour contrôler l'accès aux opérations, par exemple celles [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)qui ne peuvent pas être contrôlées par une politique clé car elles n'impliquent aucune clé KMS en particulier.

Si vous accédez AWS KMS via un point de terminaison Amazon Virtual Private Cloud (Amazon VPC), vous pouvez également utiliser une politique de point de terminaison VPC pour limiter l'accès à vos AWS KMS ressources lorsque vous utilisez le point de terminaison. Par exemple, lorsque vous utilisez le point de terminaison VPC, vous pouvez uniquement autoriser les principaux utilisateurs Compte AWS à accéder à vos clés gérées par le client. Pour plus de détails, consultez la section Politiques relatives aux points de [terminaison VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy).

Pour obtenir de l'aide sur la rédaction et la mise en forme d'un document de politique JSON, veuillez consulter [Référence de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l'utilisateur IAM*.

Vous pouvez utiliser les politiques IAM comme suit :
+ **Attachez une politique d'autorisations à un rôle pour accorder des autorisations de fédération ou entre comptes** - Vous pouvez attacher une politique IAM à un rôle IAM pour activer la fédération d'identité, autoriser les autorisations entre comptes ou accorder des autorisations aux applications qui s'exécutent sur les instances EC2. Pour plus d'informations sur les différents cas d'utilisation pour les rôles IAM, veuillez consulter [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans le *Guide de l'utilisateur IAM*.
+ **Attribuez une politique d'autorisations à un utilisateur ou à un groupe** - Vous pouvez attribuer à un utilisateur ou à un groupe d'utilisateurs une politique qui les autorise à appeler des opérations AWS KMS . Toutefois, chaque fois que possible, les bonnes pratiques IAM recommandent d'utiliser des identités dotées d'informations d'identification temporaires, comme des rôles IAM.

L'exemple suivant montre une politique IAM avec des AWS KMS autorisations. Cette politique autorise les identités IAM auxquelles elle est attachée à répertorier toutes les clés KMS et leurs alias.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:ListKeys",
      "kms:ListAliases"
    ],
    "Resource": "*"
  }
}
```

------

Comme toutes les politiques IAM, elle n'a pas d'élément `Principal`. Lorsque vous attribuez une politique IAM à une identité IAM, cette identité bénéficie des autorisations spécifiées dans la politique.

Pour un tableau présentant toutes les actions d' AWS KMS API et les ressources auxquelles elles s'appliquent, consultez le[Référence des autorisations ](kms-api-permissions-reference.md).

## Attribution à plusieurs principaux IAM de l'autorisation d'accès à une clé KMS
<a name="key-policy-modifying-multiple-iam-users"></a>

Les groupes IAM ne sont pas des principaux valides dans une politique de clé. Pour autoriser plusieurs utilisateurs et rôles à accéder à une clé KMS, effectuez l'une des opérations suivantes :
+ Utilisez un rôle IAM comme principal dans la politique de clé. Plusieurs utilisateurs autorisés peuvent assumer ce rôle selon les besoins. Pour plus d'informations, consultez [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans le *Guide de l'utilisateur IAM*.

  Rien ne vous empêche d'associer plusieurs utilisateurs IAM à une politique de clé, mais cette pratique est déconseillée, car elle vous oblige à mettre à jour la politique de clé chaque fois que la liste des utilisateurs autorisés change. En outre, les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.
+ Utilisez une politique IAM pour accorder une autorisation à un groupe IAM. Pour ce faire, assurez-vous que la politique de clé contient la déclaration qui [permet aux politiques IAM d'autoriser l'accès à la clé KMS](key-policy-default.md#key-policy-default-allow-root-enable-iam), [créez une politique IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console) qui autorise l'accès à la clé KMS, puis [attribuez cette politique à un groupe IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) dans lequel figurent les utilisateurs IAM autorisés. Grâce à cette approche, vous n'avez pas besoin de modifier de politiques lorsque la liste des utilisateurs autorisés change. Au lieu de cela, il vous suffit d'ajouter ou de supprimer ces utilisateurs à partir du groupe IAM approprié. Pour plus d'informations, consultez [Groupes d'utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) dans le *Guide de l'utilisateur IAM*.

Pour plus d'informations sur la manière dont les politiques AWS KMS clés et les politiques IAM fonctionnent ensemble, consultez[AWS KMS Permissions de résolution des](policy-evaluation.md).

# Bonnes pratiques pour les politiques IAM
<a name="iam-policies-best-practices"></a>

La sécurisation de l'accès AWS KMS keys est essentielle à la sécurité de toutes vos AWS ressources. Les clés KMS sont utilisées pour protéger la plupart des ressources les plus sensibles de votre Compte AWS. Prenez le temps de concevoir les [politiques clés, les politiques](key-policies.md) IAM, les [autorisations](grants.md) et les politiques de point de terminaison VPC qui contrôlent l'accès à vos clés KMS.

Dans les instructions de politique IAM qui contrôlent l'accès aux clés KMS, utilisez le [principe du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). N'accordez aux principaux IAM que les autorisations dont ils ont besoin pour les clés KMS qu'ils doivent utiliser ou gérer. 

Les meilleures pratiques suivantes s'appliquent aux politiques IAM qui contrôlent l'accès aux AWS KMS clés et aux alias. Pour obtenir des conseils généraux sur les bonnes pratiques en matière de politique IAM, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.

**Utilisation de politiques de clé**  
Dans la mesure du possible, fournissez des autorisations dans les politiques de clé qui affectent une clé KMS, plutôt que dans une politique IAM qui peut s'appliquer à de nombreuses clés KMS, y compris celles d'autres Comptes AWS. Cela est particulièrement important pour les autorisations sensibles telles que [kms : PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) et [kms : ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) mais également pour les opérations cryptographiques qui déterminent la manière dont vos données sont protégées.

**Limiter CreateKey l'autorisation**  
Donnez l'autorisation de créer des clés ([kms : CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)) uniquement aux principaux qui en ont besoin. Les principaux qui créent une clé KMS définissent également sa politique de clé, afin qu'ils puissent se donner, ainsi qu'à d'autres, l'autorisation d'utiliser et de gérer les clés KMS qu'ils créent. Lorsque vous accordez cette autorisation, envisagez de la limiter en utilisant les [conditions de politique](policy-conditions.md). Par exemple, vous pouvez utiliser la KeySpec condition [kms :](conditions-kms.md#conditions-kms-key-spec) pour limiter l'autorisation aux clés KMS de chiffrement symétriques.

**Spécifier des clés KMS dans une politique IAM**  
La bonne pratique consiste à spécifier l'[ARN de clé](concepts.md#key-id-key-ARN) de chaque clé KMS à laquelle l'autorisation s'applique dans l'élément `Resource` de l'instruction de politique. Cette pratique limite l'autorisation aux clés KMS requises par le principal. Par exemple, cet élément `Resource` ne répertorie que les clés KMS que le principal doit utiliser.  

```
"Resource": [
    "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"
]
```
Lorsque la spécification de clés KMS n'est pas pratique, utilisez une `Resource` valeur qui limite l'accès aux clés KMS dans une région sécurisée Compte AWS , telle que`arn:aws:kms:region:account:key/*`. Ou limitez l'accès aux clés KMS dans toutes les régions (\$1) d'une région fiable Compte AWS, telle que`arn:aws:kms:*:account:key/*`.  
Vous ne pouvez pas utiliser d'[ID de clé](concepts.md#key-id-key-id), de [nom d'alias](concepts.md#key-id-alias-name) ou d'[ARN d'alias](concepts.md#key-id-alias-ARN) pour représenter une clé KMS dans le champ `Resource` d'une politique IAM. Si vous spécifiez un ARN d'alias, la politique s'applique à l'alias et non à la clé KMS. Pour plus d'informations sur les politiques IAM d'alias, veuillez consulter [Contrôle de l'accès aux alias](alias-access.md).

**Évitez « Resource » : « \$1 » dans une politique IAM.**  <a name="avoid-resource-star"></a>
Utilisez judicieusement les caractères génériques (\$1). Dans une politique de clé, le caractère générique de l'élément `Resource` représente la clé KMS à laquelle la politique de clé est attachée. Mais dans une politique IAM, seul un caractère générique dans l'`Resource`élément (`"Resource": "*"`) applique les autorisations à toutes les clés KMS Comptes AWS que le compte principal est autorisé à utiliser. Cela peut inclure des [clés KMS dans d'autres Comptes AWS](key-policy-modifying-external-accounts.md), ainsi que des clés KMS dans le compte du principal.  
Par exemple, pour utiliser une clé KMS dans un autre compte Compte AWS, un principal doit obtenir l'autorisation de la politique de clé KMS du compte externe et de la politique IAM de son propre compte. Supposons qu'un compte arbitraire ait donné à votre Compte AWS l'autorisation [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) sur leurs clés KMS. Si c'est le cas, une politique IAM de votre compte qui donne à un rôle l'autorisation `kms:Decrypt` sur toutes les clés KMS (`"Resource": "*"`) satisferait à la partie IAM de l'exigence. Par conséquent, les principaux qui peuvent endosser ce rôle peuvent désormais déchiffrer les textes chiffrés à l'aide de la clé KMS du compte non approuvé. Les entrées relatives à leurs opérations apparaissent dans les CloudTrail journaux des deux comptes.  
Évitez notamment d'utiliser `"Resource": "*"` dans une instruction de politique qui autorise les opérations d'API suivantes. Ces opérations peuvent être appelées sur des clés KMS dans d'autres Comptes AWS.  
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)
+ [Opérations cryptographiques](kms-cryptography.md#cryptographic-operations) [([chiffrer, [déchiffrer](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html),,,, [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html),, [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html), [signer [GetPublicKey[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), vérifier)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html), [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html), [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html), [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)

**Quand utiliser « Resource » : « \$1 »**  <a name="require-resource-star"></a>
Dans une politique IAM, utilisez un caractère générique dans l'élément `Resource` uniquement pour les autorisations qui le requièrent. Seules les autorisations suivantes nécessitent l'élément `"Resource": "*"`.  
+ [km : CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
+ [km : GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)
+ [km : ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)
+ [km : ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)
+ Autorisations pour les magasins de clés personnalisés, tels que [kms : CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) et [kms : ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html).
Les autorisations pour les opérations d'alias ([kms : CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html), [kms : UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html), [kms : DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)) doivent être associées à l'alias et à la clé KMS. Vous pouvez utiliser `"Resource": "*"` dans une politique IAM pour représenter les alias et les clés KMS, ou spécifier les alias et les clés KMS dans l'élément `Resource`. Pour obtenir des exemples, consultez [Contrôle de l'accès aux alias](alias-access.md).

 

Les exemples de cette rubrique fournissent plus d'informations et de conseils sur la conception de politiques IAM pour les clés KMS. Pour connaître les meilleures pratiques en matière d'IAM pour toutes les AWS ressources, consultez [la section Bonnes pratiques de sécurité en matière d'IAM dans](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) le guide de l'utilisateur d'*IAM*.

# Spécification de clés KMS dans les instructions de politique IAM
<a name="cmks-in-iam-policies"></a>

Vous pouvez utiliser une politique IAM pour permettre à un principal d'utiliser ou de gérer des clés KMS. Les clés KMS sont spécifiées dans l'élément `Resource` de l'instruction de politique. 
+ Pour spécifier une clé KMS dans une instruction de politique IAM, vous devez utiliser son [ARN de clé](concepts.md#key-id-key-ARN). Vous ne pouvez pas utiliser un [ID de clé](concepts.md#key-id-key-id), un [nom d'alias](concepts.md#key-id-alias-name) ou un [ARN d'alias](concepts.md#key-id-alias-ARN) pour identifier une clé KMS dans une instruction de politique IAM. 

  Par exemple : « `Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` »

  Pour contrôler l'accès à une clé KMS en fonction de ses alias, utilisez les clés de ResourceAliases condition [kms : RequestAlias](conditions-kms.md#conditions-kms-request-alias) [ou kms :](conditions-kms.md#conditions-kms-resource-aliases). Pour en savoir plus, consultez [ABAC pour AWS KMS](abac.md).

  Utilisez un alias ARN comme ressource uniquement dans une déclaration de politique qui contrôle l'accès aux opérations d'alias, telles que [CreateAlias[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/UpdateAlias.html)](https://docs.aws.amazon.com/kms/latest/APIReference/CreateAlias.html), ou [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/DeleteAlias.html). Pour plus de détails, veuillez consulter [Contrôle de l'accès aux alias](alias-access.md).
+ Pour spécifier plusieurs clés KMS dans le compte et la région, utilisez des caractères génériques (\$1) dans les positions Region (Région) ou Resource ID (ID de ressource) de l'ARN clé. 

  Par exemple, pour spécifier toutes les clés KMS dans la région USA Ouest (Oregon) d'un compte, utilisez « `Resource": "arn:aws:kms:us-west-2:111122223333:key/*` ». Pour spécifier toutes les clés KMS dans toutes les régions du compte, utilisez « `Resource": "arn:aws:kms:*:111122223333:key/*` ».
+ Pour représenter toutes les clés KMS, utilisez un caractère générique seul (`"*"`). Utilisez ce format pour les opérations qui n'utilisent aucune clé KMS particulière [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), à savoir [GenerateRandom[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html), et [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html).

Lorsque vous rédigez vos instructions de politique, il s'agit d'une [bonne pratique](iam-policies-best-practices.md) pour spécifier uniquement les clés KMS que le principal doit utiliser, plutôt que de leur donner accès à toutes les clés KMS. 

Par exemple, la déclaration de politique IAM suivante permet au principal d'appeler les [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)opérations de [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) uniquement sur les clés KMS répertoriées dans l'`Resource`élément de la déclaration de politique. [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) La spécification des clés KMS par ARN de clé, qui est une bonne pratique, garantit que les autorisations sont limitées uniquement aux clés KMS spécifiées.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
     "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
     "arn:aws:kms:us-west-2:111122223333:key/01234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
```

------

Pour appliquer l'autorisation à toutes les clés KMS d'une entité sécurisée donnée Compte AWS, vous pouvez utiliser des caractères génériques (\$1) dans la région et les positions des identifiants clés. Par exemple, l'instruction de politique suivante permet au principal d'appeler les opérations spécifiées sur toutes les clés KMS dans deux exemples de comptes de confiance.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:GenerateDataKeyPair"
    ],
    "Resource": [
      "arn:aws:kms:*:111122223333:key/*",
      "arn:aws:kms:*:444455556666:key/*"
    ]
  }
}
```

------

Vous pouvez également utiliser un caractère générique (`"*"`) seul dans l'élément `Resource`. Comme il permet l'accès à toutes les clés KMS que le compte a l'autorisation d'utiliser, il est recommandé principalement pour les opérations sans clé KMS particulière et pour les instructions `Deny`. Vous pouvez également l'utiliser dans des instructions de politique qui autorisent uniquement des opérations moins sensibles en lecture seule. Pour déterminer si une AWS KMS opération implique une clé KMS particulière, recherchez la valeur de la **clé KMS** dans la colonne **Ressources** du tableau de[AWS KMS autorisations](kms-api-permissions-reference.md).

Par exemple, l'instruction de politique suivante utilise un effet `Deny` pour interdire aux principaux d'utiliser les opérations spécifiées sur une clé KMS. Elle utilise un caractère générique dans l'élément `Resource` pour représenter toutes les clés KMS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:CreateKey",
      "kms:PutKeyPolicy",
      "kms:CreateGrant",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

L'instruction de politique suivante utilise un caractère générique seul pour représenter toutes les clés KMS. Mais il n'autorise que les opérations moins sensibles en lecture seule et les opérations qui ne s'appliquent pas à une clé KMS particulière.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:CreateKey",
      "kms:ListKeys",
      "kms:ListAliases",
      "kms:ListResourceTags"
    ],
    "Resource": "*"
  }
}
```

------

# Exemples de politique IAM
<a name="customer-managed-policies"></a>

Dans cette section, vous trouverez des exemples de politiques IAM qui accordent des autorisations pour diverses actions AWS KMS .

**Important**  
Certaines des autorisations figurant dans les politiques suivantes sont autorisées uniquement lorsque la politique de clé de la clé KMS les autorise également. Pour de plus amples informations, veuillez consulter [Référence des autorisations ](kms-api-permissions-reference.md).

Pour obtenir de l'aide sur la rédaction et la mise en forme d'un document de politique JSON, veuillez consulter [Référence de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l'utilisateur IAM*.

**Topics**
+ [Autoriser un utilisateur à afficher les clés KMS dans la AWS KMS console](#iam-policy-example-read-only-console)
+ [Autoriser un utilisateur à créer des clés KMS](#iam-policy-example-create-key)
+ [Permettre à un utilisateur de chiffrer et de déchiffrer avec n'importe quelle clé KMS dans un domaine spécifique Compte AWS](#iam-policy-example-encrypt-decrypt-one-account)
+ [Autoriser un utilisateur à chiffrer et déchiffrer avec n'importe quelle clé KMS dans une région et une région spécifiques Compte AWS](#iam-policy-example-encrypt-decrypt-one-account-one-region)
+ [Autoriser un utilisateur à chiffrer et déchiffrer des données avec des clés KMS spécifiques](#iam-policy-example-encrypt-decrypt-specific-cmks)
+ [Empêcher un utilisateur de désactiver et de supprimer des clés KMS](#iam-policy-example-deny-disable-delete)

## Autoriser un utilisateur à afficher les clés KMS dans la AWS KMS console
<a name="iam-policy-example-read-only-console"></a>

La politique IAM suivante permet aux utilisateurs d'accéder à la console en lecture seule. AWS KMS Les utilisateurs disposant de ces autorisations peuvent voir toutes les clés KMS qu'ils Compte AWS contiennent, mais ils ne peuvent pas créer ou modifier de clés KMS. 

[Pour afficher les clés KMS sur les pages des **clés gérées par le client **Clés gérées par AWS****et sur les pages des clés gérées par le clientListKeys, les principaux ont besoin des GetResources autorisations [kms : ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html), kms [: et tag :](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html), même si les clés ne comportent pas de balises ni d'alias.](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) Les autorisations restantes, en particulier [kms : DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), sont requises pour afficher les colonnes facultatives du tableau des clés KMS et les données sur les pages détaillées des clés KMS. Les ListRoles autorisations [iam : ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) et [iam :](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) sont requises pour afficher la politique clé dans l'affichage par défaut sans erreur. Pour consulter les données sur la page des **magasins de clés personnalisés** et les détails sur les clés KMS dans les magasins de clés personnalisés, les principaux ont également besoin de DescribeCustomKeyStores l'autorisation [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html).

Si vous limitez l'accès de la console d'un utilisateur à des clés KMS particulières, la console affiche une erreur pour chaque clé KMS qui n'est pas visible. 

Cette politique inclut deux instructions de politique. L'élément `Resource` dans la première instruction de politique accorde les autorisations spécifiées sur toutes les clés KMS dans toutes les régions du Compte AWS d'exemple. Les utilisateurs de la console n'ont pas besoin d'un accès supplémentaire, car la console AWS KMS affiche uniquement les clés KMS dans le compte du principal. Cela est vrai même s'ils sont autorisés à afficher les clés KMS dans d'autres langues Comptes AWS. Les autorisations restantes AWS KMS et IAM nécessitent un `"Resource": "*"` élément car elles ne s'appliquent à aucune clé KMS en particulier.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ReadOnlyAccessForAllKMSKeysInAccount",
      "Effect": "Allow",
      "Action": [
        "kms:GetPublicKey",        
        "kms:GetKeyRotationStatus",
        "kms:GetKeyPolicy",
        "kms:DescribeKey",
        "kms:ListKeyPolicies",
        "kms:ListResourceTags",
        "tag:GetResources"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey",
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases",
        "iam:ListRoles",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Autoriser un utilisateur à créer des clés KMS
<a name="iam-policy-example-create-key"></a>

La politique IAM suivante permet à un utilisateur de créer tous les types de clés KMS. La valeur de l'`Resource`élément est `*` due au fait que l'`CreateKey`opération n'utilise aucune AWS KMS ressource particulière (clés KMS ou alias).

[Pour restreindre l'utilisateur à certains types de clés KMS, utilisez les clés de KeyOrigin condition [kms : KeyUsage](conditions-kms.md#conditions-kms-key-usage), [kms : et kms :](conditions-kms.md#conditions-kms-key-origin). KeySpec](conditions-kms.md#conditions-kms-key-spec)

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "kms:CreateKey",
    "Resource": "*"
  }
}
```

------

Les principaux qui créent des clés peuvent avoir besoin de certaines autorisations associées.
+ **kms : PutKeyPolicy** — Les principaux `kms:CreateKey` autorisés peuvent définir la politique de clé initiale pour la clé KMS. Cependant, l'`CreateKey`appelant doit disposer de l'PutKeyPolicyautorisation [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html), qui lui permet de modifier la politique des clés KMS, ou il doit spécifier le `BypassPolicyLockoutSafetyCheck` paramètre de`CreateKey`, ce qui n'est pas recommandé. L'appelant `CreateKey` peut obtenir l'autorisation `kms:PutKeyPolicy` pour la clé KMS depuis une politique IAM, ou il peut inclure cette autorisation dans la politique de clé de la clé KMS qu'il crée.
+ **kms : TagResource** — Pour ajouter des balises à la clé KMS pendant l'`CreateKey`opération, l'`CreateKey`appelant doit disposer de l'TagResourceautorisation [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) dans une politique IAM. L'inclusion de cette autorisation dans la politique de clé de la nouvelle clé KMS ne suffit pas. Cependant, si l'appelant `CreateKey` inclut `kms:TagResource` dans la politique de clé initiale, il peut ajouter des balises dans un appel séparé après la création de la clé KMS.
+ **kms : CreateAlias** — Les principaux qui créent une clé KMS dans la AWS KMS console doivent disposer de l'CreateAliasautorisation [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) sur la clé KMS et sur l'alias. (La console effectue deux appels ; un à `CreateKey` et un à `CreateAlias`). Vous devez fournir l'autorisation d'alias dans une politique IAM. Vous pouvez fournir l'autorisation de clé KMS dans une politique de clé ou une politique IAM. Pour en savoir plus, consultez [Contrôle de l'accès aux alias](alias-access.md).

En outre`kms:CreateKey`, la politique IAM suivante fournit des `kms:TagResource` autorisations sur toutes les clés KMS du compte Compte AWS et des `kms:CreateAlias` autorisations sur tous les alias du compte. Elle inclut également certaines autorisations utiles en lecture seule qui peuvent être fournies uniquement dans une politique IAM. 

Cette politique IAM n'inclut pas l'autorisation `kms:PutKeyPolicy` ou toute autre autorisation pouvant être définie dans une politique de clé. La définition de ces autorisations dans la politique de clé, où elles s'appliquent exclusivement à une clé KMS, est une [bonne pratique](iam-policies-best-practices.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPermissionsForParticularKMSKeys",
      "Effect": "Allow",
      "Action": "kms:TagResource",
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "IAMPermissionsForParticularAliases",
      "Effect": "Allow",
      "Action": "kms:CreateAlias",
      "Resource": "arn:aws:kms:*:111122223333:alias/*"
    },
    {
      "Sid": "IAMPermissionsForAllKMSKeys",
      "Effect": "Allow",
      "Action": [
        "kms:CreateKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Permettre à un utilisateur de chiffrer et de déchiffrer avec n'importe quelle clé KMS dans un domaine spécifique Compte AWS
<a name="iam-policy-example-encrypt-decrypt-one-account"></a>

La politique IAM suivante permet à un utilisateur de chiffrer et de déchiffrer des données avec n'importe quelle clé KMS dans le 111122223333. Compte AWS 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": "arn:aws:kms:*:111122223333:key/*"
  }
}
```

------

## Autoriser un utilisateur à chiffrer et déchiffrer avec n'importe quelle clé KMS dans une région et une région spécifiques Compte AWS
<a name="iam-policy-example-encrypt-decrypt-one-account-one-region"></a>

La politique IAM suivante permet à un utilisateur de chiffrer et de déchiffrer des données avec n'importe quelle clé KMS Compte AWS `111122223333` dans la région de l'ouest des États-Unis (Oregon).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/*"
    ]
  }
}
```

------

## Autoriser un utilisateur à chiffrer et déchiffrer des données avec des clés KMS spécifiques
<a name="iam-policy-example-encrypt-decrypt-specific-cmks"></a>

La politique IAM suivante permet à un utilisateur de chiffrer et de déchiffrer des données avec les deux clés KMS spécifiées dans l'élément `Resource`. Lorsque vous spécifiez une clé KMS dans une instruction de politique IAM, vous devez utiliser l'[ARN de clé](concepts.md#key-id-key-ARN) de la clé KMS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "arn:aws:kms:us-west-2:111122223333:key/01234abc-d12a-b34c-d56e-f1234567890a'"
    ]
  }
}
```

------

## Empêcher un utilisateur de désactiver et de supprimer des clés KMS
<a name="iam-policy-example-deny-disable-delete"></a>

La politique IAM suivante empêche un utilisateur de désactiver et de supprimer des clés KMS, même si une autre politique IAM ou une politique de clé accorde ces autorisations. Une politique qui refuse explicitement des autorisations se substitue à toutes les autres politiques, même à celles qui accordent explicitement les mêmes autorisations. Pour de plus amples informations, veuillez consulter [AWS KMS Permissions de résolution des](policy-evaluation.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:DisableKey",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

# Politiques de contrôle des ressources dans AWS KMS
<a name="resource-control-policies"></a>

Les politiques de contrôle des ressources (RCPs) sont un type de politique d'entreprise que vous pouvez utiliser pour appliquer des contrôles préventifs sur AWS les ressources de votre organisation. RCPs vous aider à restreindre de manière centralisée l'accès externe à vos AWS ressources à grande échelle. RCPs compléter les politiques de contrôle des services (SCPs). Bien que cela SCPs puisse être utilisé pour définir de manière centralisée les autorisations maximales sur les rôles et les utilisateurs IAM de votre organisation, il RCPs peut être utilisé pour définir de manière centralisée les autorisations maximales sur les AWS ressources de votre organisation.

Vous pouvez l'utiliser RCPs pour gérer les autorisations relatives aux clés KMS gérées par le client dans votre organisation. RCPs ne suffisent pas à elles seules à accorder des autorisations aux clés gérées par vos clients. Aucune autorisation n'est accordée par un RCP. Un RCP définit un garde-fou en matière d'autorisations, ou fixe des limites, aux actions que les identités peuvent effectuer sur les ressources des comptes concernés. L'administrateur doit toujours associer des politiques basées sur l'identité aux rôles ou aux utilisateurs IAM, ou des politiques clés pour réellement accorder des autorisations.

**Note**  
Les politiques de contrôle des ressources de votre organisation ne s'appliquent pas à [Clés gérées par AWS](concepts.md#aws-managed-key).  
Clés gérées par AWS sont créés, gérés et utilisés en votre nom par un AWS service, vous ne pouvez ni modifier ni gérer ses autorisations.

**En savoir plus**
+ Pour des informations plus générales RCPs, voir les [politiques de contrôle des ressources](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ Pour plus de détails sur la façon de définir RCPs, y compris des exemples, consultez la section [Syntaxe RCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps_syntax.html) dans le *guide de AWS Organizations l'utilisateur*.

L'exemple suivant montre comment utiliser un RCP pour empêcher les principaux externes d'accéder aux clés gérées par le client dans votre organisation. Cette politique n'est qu'un exemple, et vous devez l'adapter à vos besoins commerciaux et de sécurité uniques. Par exemple, vous souhaiterez peut-être personnaliser votre politique pour autoriser l'accès à vos partenaires commerciaux. Pour plus de détails, consultez le [référentiel d'exemples de politiques de périmètre des données](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/resource_control_policies).

**Note**  
L'`kms:RetireGrant`autorisation n'est pas effective dans un RCP, même si l'`Action`élément indique un astérisque (\$1) comme caractère générique.  
Pour plus d'informations sur le mode de détermination `kms:RetireGrant` de l'autorisation, consultez[Retrait et révocation d'octrois](grant-delete.md).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RCPEnforceIdentityPerimeter",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "kms:*",
            "Resource": "*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:PrincipalOrgID": "my-org-id"
                },
                "Bool": {
                    "aws:PrincipalIsAWSService": "false"
                }
            }
        }
    ]
}
```

------

L'exemple de RCP suivant exige que les responsables du AWS service puissent accéder à vos clés KMS gérées par le client uniquement lorsque la demande provient de votre organisation. Cette politique applique le contrôle uniquement aux demandes `aws:SourceAccount` présentes. Cela garantit que les intégrations de services qui ne nécessitent pas l'utilisation de `aws:SourceAccount` ne sont pas affectées. Si elle `aws:SourceAccount` est présente dans le contexte de la demande, la `Null` condition est évaluée à`true`, ce qui entraîne l'application de la `aws:SourceOrgID` clé.

Pour plus d'informations sur le problème des adjoints confus, voir [Le problème des adjoints confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) dans le *guide de l'utilisateur d'IAM*.

```
```

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RCPEnforceConfusedDeputyProtection",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "kms:*",
            "Resource": "*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceOrgID": "my-org-id"
                },
                "Bool": {
                    "aws:PrincipalIsAWSService": "true"
                },
                "Null": {
                    "aws:SourceAccount": "false"
                }
            }
        }
    ]
}
```

------

# Subventions en AWS KMS
<a name="grants"></a>

Un *octroi* est un instrument de politique qui permet aux [principaux AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) d'utiliser des clés KMS dans les opérations de chiffrement. Il peut également leur permettre d'afficher une clé KMS (`DescribeKey`), mais aussi de créer et de gérer des octrois. Lorsque vous autorisez l'accès à une clé KMS, les octrois sont pris en compte avec des [politiques de clé](key-policies.md) et des [politiques IAM](iam-policies.md). Les octrois sont souvent utilisés pour des autorisations temporaires, car vous pouvez en créer un, utiliser ses autorisations et les supprimer sans modifier vos politiques de clé ou IAM.

Les subventions sont couramment utilisées par AWS les services qui s'intègrent AWS KMS pour crypter vos données au repos. Le service crée un octroi au nom d'un utilisateur du compte, utilise ses autorisations et retire l'octroi dès que sa tâche est terminée. Pour plus de détails sur la manière dont les AWS services utilisent les subventions, consultez la rubrique *Chiffrement au repos* du guide de l'utilisateur ou du guide du développeur du service.

Les octrois sont un mécanisme de contrôle d'accès très souple et utile. Lorsque vous créez un octroi pour une clé KMS, celui-ci permet au principal bénéficiaire d'appeler les opérations d'octroi spécifiées sur la clé KMS, à condition que toutes les conditions spécifiées dans l'octroi soient remplies. 
+ Chaque octroi permet d'accéder à exactement une clé KMS. Vous pouvez créer un octroi pour une clé KMS dans un autre Compte AWS.
+ Un octroi peut autoriser l'accès à une clé KMS, mais pas le lui refuser.
+ Chaque octroi a un [principal bénéficiaire](#terms-grantee-principal). Le principal du bénéficiaire peut représenter une ou plusieurs identités au même Compte AWS titre que la clé KMS ou dans un compte différent.
+ Un octroi peut uniquement permettre des [opérations d'octroi](#terms-grant-operations). Les opérations d'octroi doivent être prises en charge par la clé KMS de l'octroi. Si vous spécifiez une opération non prise en charge, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)demande échoue avec une `ValidationError` exception.
+ Le principal bénéficiaire peut utiliser les autorisations que l'octroi lui donne sans spécifier l'octroi, comme il le ferait si les autorisations provenaient d'une politique de clé ou d'une politique IAM. Cependant, étant donné que l' AWS KMS API suit un modèle de [cohérence final](#terms-eventual-consistency), lorsque vous créez, retirez ou révoquez une subvention, il peut y avoir un bref délai avant que la modification ne soit disponible dans AWS KMS son intégralité. Pour utiliser immédiatement les autorisations dans un octroi, [utilisez un jeton d'octroi](using-grant-token.md).
+ Un principal autorisé peut supprimer l'octroi (le [retirer](#terms-retire-grant) ou le [révoquer](#terms-revoke-grant)). La suppression d'un octroi élimine toutes les autorisations qu'il accorde. Vous n'avez pas besoin de déterminer les politiques à ajouter ou à supprimer pour annuler l'octroi. 
+ AWS KMS limite le nombre d'autorisations sur chaque clé KMS. Pour en savoir plus, consultez [Octrois par clé KMS : 50 000](resource-limits.md#grants-per-key).

Soyez prudent lorsque vous créez des octrois et lorsque vous autorisez d'autres personnes à en créer. L'autorisation de créer des subventions a des implications en matière de sécurité, tout comme l'PutKeyPolicyautorisation de définir des politiques en termes de [kilomètres](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html).
+ Les utilisateurs autorisés à créer des autorisations pour une clé KMS (`kms:CreateGrant`) peuvent utiliser une autorisation pour autoriser les utilisateurs et les rôles, y compris les AWS services, à utiliser la clé KMS. Les principes peuvent être des identités propres Compte AWS ou des identités appartenant à un autre compte ou à une autre organisation.
+ Les subventions ne peuvent autoriser qu'un sous-ensemble d' AWS KMS opérations. Vous pouvez utiliser des octrois pour autoriser les principaux à afficher la clé KMS, à l'utiliser dans les opérations de chiffrement, mais aussi à créer et à retirer des octrois. Pour plus d'informations, veuillez consulter .[Opérations d'octroi](#terms-grant-operations). Vous pouvez également utiliser des [contraintes d'octroi](create-grant-overview.md#grant-constraints) pour limiter les autorisations dans un octroi pour une clé de chiffrement symétrique.
+ Les principaux peuvent obtenir l'autorisation de créer des octrois à partir d'une politique de clé ou d'une politique IAM. Les directeurs qui obtiennent `kms:CreateGrant` l'autorisation d'une politique peut créer des subventions pour tout [opération d'octroi](#terms-grant-operations) sur la clé KMS. Ces mandants ne sont pas tenus d'avoir l'autorisation qu'ils accordent sur la clé. Lorsque vous accordez l'autorisation `kms:CreateGrant` dans une politique, vous pouvez utiliser des [conditions de politique](grant-authorization.md) pour limiter cette autorisation.
+ Les principaux peuvent également obtenir l'autorisation de créer des octrois à partir d'un octroi. Ces principaux peuvent uniquement déléguer les autorisations qui leur ont été accordées, même s'ils disposent d'autres autorisations en vertu d'une politique. Pour en savoir plus, consultez [Octroi CreateGrant d'autorisation](create-grant-overview.md#grant-creategrant).

## Concepts d'octroi
<a name="grant-concepts"></a>

Pour utiliser efficacement les octrois, vous devez comprendre les termes et les concepts utilisés par AWS KMS . 

**Contrainte d'octroi**  <a name="terms-grant-constraint"></a>
Condition qui limite les autorisations dans l'octroi. Actuellement, AWS KMS prend en charge les contraintes d'octroi basées sur le [contexte de chiffrement](encrypt_context.md) dans la demande d'opération cryptographique. Pour en savoir plus, consultez [Utilisation des contraintes d'octroi](create-grant-overview.md#grant-constraints).

**ID d'octroi**  <a name="terms-grant-id"></a>
Identifiant unique d'un octroi pour une clé KMS. Vous pouvez utiliser un identifiant de subvention, ainsi qu'un [identifiant clé](concepts.md#key-id), pour identifier une autorisation dans une [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)demande [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)ou.

**Opérations d'octroi**  <a name="terms-grant-operations"></a>
Les AWS KMS opérations que vous pouvez autoriser dans le cadre d'une subvention. Si vous spécifiez d'autres opérations, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)demande échoue avec une `ValidationError` exception. Ce sont aussi les opérations qui acceptent un [jeton d'octroi](#grant_token). Pour de plus amples informations sur ces autorisations, veuillez consulter la [AWS KMS autorisations](kms-api-permissions-reference.md).  
Ces opérations d'octroi représentent effectivement l'autorisation d'utiliser l'opération. Par conséquent, pour l'opération `ReEncrypt`, vous pouvez spécifier `ReEncryptFrom`, `ReEncryptTo` ou les deux `ReEncrypt*`.  
Les opérations d'octroi sont les suivantes :  
+ Opérations cryptographiques
  + [Decrypt (Déchiffrer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
  + [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
  + [Encrypt (Chiffrer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
  + [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
  + [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
  + [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
  + [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
  + [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
  + [ReEncryptFrom](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [ReEncryptTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [Sign (Signer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
  + [Verify (Vérifier)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
  + [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)
+ Autres opérations
  + [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
  + [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
  + [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)
  + [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
Les opérations d'octroi que vous autorisez doivent être prises en charge par la clé KMS de l'octroi. Si vous spécifiez une opération non prise en charge, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)demande échoue avec une `ValidationError` exception. Par exemple, les octrois pour les clés KMS de chiffrement symétrique ne peuvent pas autoriser les opérations [Sign (Signer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), [Verify (Vérifier)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html), [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) ou [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html). Les octrois pour les clés KMS asymétriques ne peuvent autoriser aucune opération générant des clés de données ou des paires de clés de données.

**Jeton d'octroi**  <a name="grant_token"></a>
L' AWS KMS API suit un modèle de [cohérence éventuel](#terms-eventual-consistency). Lorsque vous créez un octroi, il se peut qu'il y ait un bref délai avant que le changement ne soit disponible via AWS KMS. La propagation de la modification dans l'ensemble du système prend généralement moins de quelques secondes, mais dans certains cas, cela peut prendre plusieurs minutes. Si vous essayez d'utiliser un octroi avant d'être propagé complètement sur le système, vous pouvez obtenir un message d'accès refusé. Un jeton d'octroi vous permet de faire référence à l'octroi et d'utiliser les autorisations d'octroi immédiatement.   
Un *jeton d'octroi* est une chaîne unique, non secrète, de longueur variable et codée en base64 qui représente un octroi. Vous pouvez utiliser le jeton d'octroi pour identifier l'octroi dans n'importe quelle [opération d'octroi](#terms-grant-operations). Cependant, comme la valeur du jeton est un résumé de hachage, elle ne révèle aucun détail sur l'octroi.  
Un jeton d'octroi est conçu pour être utilisé uniquement jusqu'à ce qu'il se propage complètement sur AWS KMS. Après cela, le [principal bénéficiaire](#terms-grantee-principal) peut utiliser l'autorisation dans l'octroi sans fournir de jeton d'octroi ou toute autre preuve de l'octroi. Vous pouvez utiliser un jeton de subvention à tout moment, mais une fois que l'autorisation est finalement cohérente, c'est AWS KMS l'autorisation qui détermine les autorisations, et non le jeton de subvention.  
Par exemple, la commande suivante appelle l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération. Elle utilise un jeton d'octroi pour représenter l'octroi qui donne à l'appelant (le principal bénéficiaire) l'autorisation d'appeler `GenerateDataKey` sur la clé KMS spécifiée.  

```
$ aws kms generate-data-key \
        --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
        --key-spec AES_256 \
        --grant-token $token
```
Vous pouvez également utiliser le jeton d'octroi pour identifier un octroi dans les opérations qui gèrent les octrois. Par exemple, le [directeur sortant](#terms-retiring-principal) peut utiliser un jeton de subvention lors d'un appel à l'[RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)opération.   

```
$ aws kms retire-grant \
        --grant-token $token
```
`CreateGrant` est la seule opération qui renvoie un jeton d'octroi. Vous ne pouvez pas obtenir de jeton d'autorisation à partir d'une autre AWS KMS opération ou du [CloudTrail journal des événements](ct-creategrant.md) associés à l' CreateGrant opération. Les [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html)opérations [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)et renvoient l'[ID de subvention](#terms-grant-id), mais pas un jeton de subvention.  
Pour en savoir plus, consultez [Utilisation d'un jeton d'octroi](using-grant-token.md).

**Principal bénéficiaire**  <a name="terms-grantee-principal"></a>
Identité qui obtient les autorisations spécifiées dans l'octroi. Chaque octroi n'a qu'un seul principal bénéficiaire, mais ce dernier peut représenter plusieurs identités.   
Le principal bénéficiaire peut être n'importe quel AWS principal, y compris un Compte AWS (root), un [utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html), un rôle [IAM, un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) ou un utilisateur [fédéré, ou un utilisateur ayant un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) assumé. Le principal bénéficiaire peut se trouver dans le même compte que la clé KMS ou un autre compte. Toutefois, le principal bénéficiaire ne peut pas être un [principal de service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), un [groupe IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ou une [organisation AWS](https://docs.aws.amazon.com/organizations/latest/userguide/).  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.

**Retirer (un octroi)**  <a name="terms-retire-grant"></a>
Résilie un octroi. Vous retirez un octroi lorsque vous avez terminé d'utiliser les autorisations.  
La révocation et le retrait d'un octroi suppriment l'octroi. Toutefois, le retrait est effectué par un principal spécifié dans l'octroi. La révocation est généralement effectuée par un administrateur de clé. Pour en savoir plus, consultez [Retrait et révocation d'octrois](grant-delete.md).

**Principal de retrait**  <a name="terms-retiring-principal"></a>
Un principal qui peut [retirer un octroi](#terms-retire-grant). Vous pouvez spécifier un principal de retrait dans un octroi, mais ce n'est pas obligatoire. Le mandant sortant peut être n'importe quel AWS mandant, y compris les utilisateurs IAM Comptes AWS, les rôles IAM, les utilisateurs fédérés et les utilisateurs des rôles assumés. Le principal de retrait peut se trouver dans le même compte que la clé KMS ou un autre compte.  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.
Outre le remboursement du capital spécifié dans la subvention, une subvention peut être retirée par le fournisseur Compte AWS dans lequel la subvention a été créée. Si l'octroi autorise l'opération `RetireGrant`, le [principal bénéficiaire](#terms-grantee-principal) peut retirer l'octroi. En outre, le Compte AWS directeur sortant peut déléguer l'autorisation de retirer une subvention à un directeur IAM du même nom. Compte AWS Compte AWS Pour en savoir plus, consultez [Retrait et révocation d'octrois](grant-delete.md).

**Révoquer (un octroi)**  <a name="terms-revoke-grant"></a>
Résilie un octroi. Vous révoquez un octroi pour refuser activement les autorisations que l'octroi autorise.   
La révocation et le retrait d'un octroi suppriment l'octroi. Toutefois, le retrait est effectué par un principal spécifié dans l'octroi. La révocation est généralement effectuée par un administrateur de clé. Pour en savoir plus, consultez [Retrait et révocation d'octrois](grant-delete.md).

**Cohérence éventuelle (pour les octrois)**  <a name="terms-eventual-consistency"></a>
L' AWS KMS API suit un modèle de [cohérence éventuel](https://en.wikipedia.org/wiki/Eventual_consistency). Lorsque vous créez, retirez ou révoquez un octroi, il se peut qu'il y ait un bref délai avant que le changement ne soit disponible via AWS KMS. La propagation de la modification dans l'ensemble du système prend généralement moins de quelques secondes, mais dans certains cas, cela peut prendre plusieurs minutes.  
Vous pouvez prendre connaissance de ce bref délai si vous obtenez des erreurs inattendues. Par exemple, si vous essayez de gérer une nouvelle subvention ou d'utiliser les autorisations d'une nouvelle autorisation avant que l'autorisation ne soit connue dans son intégralité AWS KMS, vous risquez de recevoir un message d'erreur de refus d'accès. Si vous retirez ou révoquez un octroi, le principal bénéficiaire peut toujours utiliser ses autorisations pendant une courte période jusqu'à ce que l'octroi soit complètement supprimé. La stratégie classique consiste à réessayer la demande, et certaines AWS SDKs incluent une logique d'annulation automatique et de nouvelle tentative.  
AWS KMS possède des fonctionnalités pour atténuer ce bref délai.   
+ Pour utiliser immédiatement les autorisations dans un nouvel octroi, utilisez un [jeton d'octroi](using-grant-token.md). Vous pouvez utiliser un jeton d'octroi pour faire référence à un octroi dans n'importe quelle [opération d'octroi](#terms-grant-operations). Pour obtenir des instructions, veuillez consulter [Utilisation d'un jeton d'octroi](using-grant-token.md). 
+ L'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération possède un `Name` paramètre qui empêche les nouvelles tentatives de créer des autorisations dupliquées.
Les jetons d'octroi remplacent la validité de l'octroi jusqu'à ce que tous les points de terminaison du service aient été mis à jour avec le nouvel état de l'octroi. Dans la plupart des cas, une cohérence éventuelle sera obtenue dans les cinq minutes.
Pour plus d'informations, consultez la rubrique relative à la [cohérence à terme AWS KMS](accessing-kms.md#programming-eventual-consistency).

# Bonnes pratiques en matière de AWS KMS subventions
<a name="grant-best-practices"></a>

AWS KMS recommande les meilleures pratiques suivantes lors de la création, de l'utilisation et de la gestion des subventions.
+ Limitez les autorisations de l'octroi aux autorisations requises par le principal bénéficiaire. Utilisez le principe d'[accès le moins privilégié](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Utilisez un principal bénéficiaire spécifique, tel qu'un rôle IAM, et donnez au principal l'autorisation d'utiliser uniquement les opérations API dont il a besoin. 
+ Utilisez le contexte de chiffrement de [contraintes d'octroi](grants.md#terms-grant-constraint) pour garantir que les appelants utilisent la clé KMS aux fins prévues. Pour en savoir plus sur l'utilisation du contexte de chiffrement dans une demande de sécurisation de vos données, consultez [Comment protéger l'intégrité de vos données chiffrées en utilisant AWS Key Management Service et EncryptionContext](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) dans le *blog sur la AWS sécurité*.
**Astuce**  
Utilisez la contrainte de [EncryptionContextEqual](create-grant-overview.md#grant-constraints)subvention dans la mesure du possible. La contrainte de [EncryptionContextSubset](create-grant-overview.md#grant-constraints)subvention est plus difficile à utiliser correctement. Si vous devez l'utiliser, lisez attentivement la documentation et testez la contrainte d'octroi pour vous assurer qu'elle fonctionne comme prévu.
+ Supprimer les octrois en double. Les octrois en double ont les mêmes ARN de clé, actions d'API, principal bénéficiaire, contexte de chiffrement et nom. Si vous retirez ou révoquez l'octroi initial, mais que vous laissez les doublons, les doublons restants constituent une escalade involontaire de privilèges. Pour éviter de dupliquer les octrois lors de la relance d'une demande `CreateGrant`, utilisez le paramètre [`Name`](create-grant-overview.md#grant-create). Pour détecter les autorisations dupliquées, utilisez l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)opération. Si vous créez accidentellement un octroi en double, retirez-le ou révoquez-le dès que possible. 
**Note**  
Les octrois pour les [clés gérées par AWS](concepts.md#aws-managed-key) peuvent ressembler à des doublons, mais ont des principaux bénéficiaires différents.  
Le champ `GranteePrincipal` de la réponse `ListGrants` contient habituellement le bénéficiaire principal. Toutefois, lorsque le principal bénéficiaire de la subvention est un AWS service, le `GranteePrincipal` champ contient le [principal du service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), qui peut représenter plusieurs principaux bénéficiaires différents.
+ N'oubliez pas que les octrois n'expirent pas automatiquement. [Retirez ou révoquez l'octroi](grant-delete.md) dès que l'autorisation n'est plus nécessaire. Les octrois qui ne sont pas supprimés peuvent créer un risque de sécurité pour les ressources chiffrées.

# Contrôle de l'accès aux octrois
<a name="grant-authorization"></a>

Vous pouvez contrôler l'accès aux opérations qui créent et gèrent des octrois dans les politiques de clés, les politiques IAM et les octrois. Les principaux qui obtiennent l'autorisation `CreateGrant` d'un octroi ont des [autorisations d'octroi plus limitées](create-grant-overview.md#grant-creategrant). 


| Opération API | politique de clé ou politique IAM | Grant (Octroi) | 
| --- | --- | --- | 
| CreateGrant | ✓ | ✓ | 
| ListGrants | ✓ | - | 
| ListRetirableGrants | ✓ | - | 
| Retirer des octrois | (Limité. Voir [Retrait et révocation d'octrois](grant-delete.md)) | ✓ | 
| RevokeGrant | ✓ | - | 

Lorsque vous utilisez une politique clé ou une politique IAM pour contrôler l'accès aux opérations qui créent et gèrent des autorisations, vous pouvez utiliser une ou plusieurs des conditions de politique suivantes pour limiter l'autorisation. AWS KMS prend en charge toutes les clés de condition relatives aux subventions suivantes. Pour plus d'informations et d'exemples, veuillez consulter [AWS KMS clés de condition](conditions-kms.md).

[km : GrantConstraintType](conditions-kms.md#conditions-kms-grant-constraint-type)  
Permet aux principaux de créer un octroi uniquement lorsque l'octroi inclut la [contrainte d'octroi](create-grant-overview.md#grant-constraints)spécifiée.

[km : GrantIsFor AWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource)  
Permet aux principaux d'appeler `CreateGrant``ListGrants`, ou `RevokeGrant` uniquement lorsqu'[un AWS service intégré AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) envoie la demande au nom du principal.

[km : GrantOperations](conditions-kms.md#conditions-kms-grant-operations)  
Autorise les principaux à créer un octroi, mais limite l'octroi aux opérations spécifiées.

[km : GranteePrincipal](conditions-kms.md#conditions-kms-grantee-principal)  
Autorise les principaux à créer un octroi uniquement pour le [principal bénéficiaire](grants.md#terms-grantee-principal) spécifié.

[km : RetiringPrincipal](conditions-kms.md#conditions-kms-retiring-principal)  
Permet aux principaux de créer un octroi uniquement lorsque l'octroi spécifie un [principal de retrait](grants.md#terms-retiring-principal).

# Création d'octrois
<a name="create-grant-overview"></a>

Avant de créer un octroi, découvrez ses options de personnalisation. Vous pouvez utiliser des *contraintes d'octroi* pour limiter les autorisations dans l'octroi. En outre, renseignez-vous sur l'autorisation `CreateGrant` d'octroi. Les principaux qui obtiennent l'autorisation de créer des octrois à partir d'un octroi sont limités au niveau des octrois qu'ils peuvent créer.

**Topics**
+ [Création d'un octroi](#grant-create)
+ [Octroi CreateGrant d'autorisation](#grant-creategrant)

## Création d'un octroi
<a name="grant-create"></a>

Pour créer une subvention, appelez l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération. Spécifiez une clé KMS, un [principal bénéficiaire](grants.md#terms-grantee-principal) et une liste des [opérations d'octroi](grants.md#terms-grant-operations) autorisées. Vous pouvez également désigner un [principal de retrait](grants.md#terms-retiring-principal) facultatif. Pour personnaliser l'octroi, utilisez des paramètres `Constraints` facultatifs pour définir les [contraintes d'octroi](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html).

Lorsque vous créez, retirez ou révoquez un octroi, il peut y avoir un bref délai, généralement de moins de cinq minutes, avant que la modification ne soit disponible sur AWS KMS. Pour plus d'informations, consultez la rubrique relative à la [cohérence à terme (pour les octrois)](grants.md#terms-eventual-consistency).

Par exemple, la commande `CreateGrant` suivante crée un octroi qui permet aux utilisateurs autorisés à assumer le rôle `keyUserRole` d'appeler l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) (Déchiffrer) sur la [clé KMS symétrique](symm-asymm-choose-key-spec.md#symmetric-cmks) spécifiée. L'autorisation utilise le paramètre `RetiringPrincipal` pour désigner un principal qui peut retirer l'autorisation. Elle inclut également une contrainte d'autorisation qui l'autorise uniquement lorsque le [contexte de chiffrement](encrypt_context.md) de la requête inclut `"Department": "IT"`.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

Si votre code relance l'opération `CreateGrant`, ou utilise un kit SDK [AWS qui relance automatiquement les demandes](https://docs.aws.amazon.com/general/latest/gr/api-retries.html), utilisez le paramètre [Name (Nom)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-Name) facultatif pour empêcher la création d'octrois en double. S'il AWS KMS reçoit une `CreateGrant` demande de subvention ayant les mêmes propriétés qu'une subvention existante, y compris le nom, il reconnaît la demande comme une nouvelle tentative et ne crée pas de nouvelle autorisation. Vous pouvez utiliser la valeur `Name` pour identifier l'octroi dans n'importe quelle opération AWS KMS .

**Important**  
N'incluez pas d'informations confidentielles ou sensibles dans le nom de l’octroi. Il peut apparaître en texte brut dans CloudTrail les journaux et autres sorties.

```
$ aws kms create-grant \
    --name IT-1234abcd-keyUserRole-decrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

Pour des exemples de code qui montrent comment créer des subventions dans plusieurs langages de programmation, voir[Utilisation `CreateGrant` avec un AWS SDK ou une CLI](example_kms_CreateGrant_section.md).

### Utilisation des contraintes d'octroi
<a name="grant-constraints"></a>

Les [contraintes d'octroi](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) définissent les conditions des autorisations que l'octroi donne au principal bénéficiaire. Les contraintes d'octroi prennent la place de [clés de condition](policy-conditions.md) dans une [politique de clé](key-policies.md) ou une [politique IAM](iam-policies.md). Chaque valeur de contrainte d'octroi peut inclure jusqu'à 8 paires de contextes de chiffrement. La valeur de contexte de chiffrement dans chaque contrainte d'octroi ne peut pas dépasser 384 caractères.

**Important**  
N'incluez pas d'informations confidentielles ou sensibles dans ce champ. Ce champ peut être affiché en texte brut dans les CloudTrail journaux et autres sorties.

AWS KMS prend en charge deux contraintes `EncryptionContextEquals` d'autorisation`EncryptionContextSubset`, qui établissent toutes deux des exigences relatives au [contexte de chiffrement](encrypt_context.md) dans une demande d'opération cryptographique. 

Les contraintes d'octroi du contexte de chiffrement sont conçues pour être utilisées avec des [opérations d'octroi](grants.md#terms-grant-operations) qui ont un paramètre de contexte de chiffrement. 
+ Les contraintes de contexte de chiffrement ne sont valides que dans un octroi pour une clé KMS de chiffrement symétrique. Les opérations de chiffrement avec d'autres clés KMS ne prennent pas en charge un contexte de chiffrement.
+ La contrainte de contexte de chiffrement est ignorée pour les opérations `DescribeKey` et `RetireGrant`. `DescribeKey` et `RetireGrant` n'ont pas de paramètre de contexte de chiffrement, mais vous pouvez inclure ces opérations dans un octroi qui a une contrainte de contexte de chiffrement.
+ Vous pouvez utiliser une contrainte de contexte de chiffrement dans un octroi pour l'opération `CreateGrant`. La contrainte de contexte de chiffrement nécessite que tous les octrois créés avec l'autorisation `CreateGrant` aient une contrainte de contexte de chiffrement tout aussi stricte ou plus stricte.

AWS KMS prend en charge les contraintes d'octroi de contexte de chiffrement suivantes.

**EncryptionContextEquals**  
Utilisez `EncryptionContextEquals` pour spécifier le contexte de chiffrement exact pour les demandes autorisées.   
`EncryptionContextEquals` exige que les paires de contexte de chiffrement de la requête correspondent exactement, y compris au niveau des minuscules/majuscules, aux paires de contexte de chiffrement de la contrainte d'octroi. Les paires peuvent apparaître dans n'importe quel ordre, mais les clés et valeurs dans chaque paire ne peuvent pas varier.   
Par exemple, si l'a contrainte d'octroi `EncryptionContextEquals` exige la paire de contextes de chiffrement `"Department": "IT"`, l'octroi autorise les demandes du type spécifié uniquement lorsque le contexte de chiffrement de la requête est exactement `"Department": "IT"`.

**EncryptionContextSubset**  
Utilisez `EncryptionContextSubset` pour exiger que les demandes incluent des paires de contexte de chiffrement particulières.  
`EncryptionContextSubset` exige que la demande inclue toutes les paires de contexte de chiffrement de la contrainte d'octroi (une correspondance exacte sensible à la casse), mais la demande peut avoir des paires de contexte de chiffrement supplémentaires. Les paires peuvent apparaître dans n'importe quel ordre, mais les clés et valeurs dans chaque paire ne peuvent pas varier.   
Par exemple, si l'a contrainte d'octroi `EncryptionContextSubset` exige la paire de contextes de chiffrement `Department=IT`, l'octroi autorise les demandes du type spécifié uniquement lorsque le contexte de chiffrement de la requête est `"Department": "IT"` ou inclut `"Department": "IT"`, ainsi que d'autres paires de contexte de chiffrement, telles que `"Department": "IT","Purpose": "Test"`.

Pour spécifier une contrainte de contexte de chiffrement dans une autorisation pour une clé KMS de chiffrement symétrique, utilisez le `Constraints` paramètre dans l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération. L'octroi créé par cette commande accorde aux utilisateurs qui sont autorisés à assumer le rôle `keyUserRole` l'autorisation d'appeler l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) (Déchiffrer). Toutefois, cette autorisation est effective uniquement lorsque le contexte de chiffrement de la demande `Decrypt` est une paire de contextes de chiffrement `"Department": "IT"`.

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextEquals={Department=IT}
```

L'octroi obtenu ressemble à ce qui suit. Notez que l'autorisation accordée au rôle `keyUserRole` n'est effective que lorsque la demande `Decrypt` utilise la même paire de contextes de chiffrement que celle spécifiée dans la contrainte d'octroi. Pour trouver les autorisations sur une clé KMS, utilisez l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)opération.

```
$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "Decrypt"
            ],
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
            "CreationDate": 1568565290.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole"
        }
    ]
}
```

Pour satisfaire la contrainte d'octroi `EncryptionContextEquals`, le contexte de chiffrement dans la demande pour l'opération `Decrypt` doit être une paire `"Department": "IT"`. Une demande telle que la suivante émanant du principal bénéficiaire satisferait à la contrainte d'octroi `EncryptionContextEquals`.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Lorsque la contrainte d'octroi est `EncryptionContextSubset`, les paires de contexte de chiffrement de la demande doivent inclure les paires de contexte de chiffrement dans la contrainte d'octroi, mais la demande peut également inclure d'autres paires de contexte de chiffrement. La contrainte d'octroi suivante nécessite que l'une des paires de contexte de chiffrement dans la demande soit `"Deparment": "IT"`.

```
"Constraints": {
   "EncryptionContextSubset": {
       "Department": "IT"
   }
}
```

La demande suivante émanant du principal bénéficiaire satisferait à la fois aux contraintes d'octroi `EncryptionContextEqual` et `EncryptionContextSubset` dans cet exemple.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Toutefois, une demande comme celle qui suit émanant du principal bénéficiaire satisferait à la contrainte d'octroi `EncryptionContextSubset`, mais pas à la contrainte d'octroi `EncryptionContextEquals`.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT,Purpose=Test
```

AWS les services utilisent souvent des contraintes de contexte de chiffrement dans les autorisations qui leur donnent l'autorisation d'utiliser des clés KMS dans votre Compte AWS. Par exemple, Amazon DynamoDB utilise un octroi comme le suivant pour obtenir l'autorisation d'utiliser la [Clé gérée par AWS](concepts.md#aws-managed-key) pour DynamoDB dans votre compte. La contrainte d'octroi `EncryptionContextSubset` de cet octroi rend les autorisations de l'octroi effectives uniquement lorsque le contexte de chiffrement de la demande inclut les paires`"subscriberID": "111122223333"` et `"tableName": "Services"`. Cette contrainte d'octroi signifie que l'octroi autorise DynamoDB à utiliser la clé KMS spécifiée uniquement pour une table particulière de votre Compte AWS.

Pour obtenir ce résultat, exécutez l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)opération sur DynamoDB de votre compte. Clé gérée par AWS 

```
$ aws kms list-grants --key-id 0987dcba-09fe-87dc-65ba-ab0987654321

{
    "Grants": [
        {
            "Operations": [
                "Decrypt",
                "Encrypt",
                "GenerateDataKey",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
            ],
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Constraints": {
                "EncryptionContextSubset": {
                    "aws:dynamodb:tableName": "Services",
                    "aws:dynamodb:subscriberId": "111122223333"
                }
            },
            "CreationDate": 1518567315.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com",
            "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com",
            "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a",
            "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59"
        }
    ]
}
```

## Octroi CreateGrant d'autorisation
<a name="grant-creategrant"></a>

Un octroi peut inclure l'autorisation d'appeler l'opération `CreateGrant`. Toutefois, quand un [principal bénéficiaire](grants.md#terms-grantee-principal) obtient l'autorisation d'appeler `CreateGrant` à partir d'un octroi, plutôt que d'une politique, cette autorisation est limitée. 
+ Le principal bénéficiaire peut uniquement créer des octrois qui permettent une partie ou la totalité des opérations de l'octroi parent.
+ Les [contraintes d'octroi](#grant-constraints) dans les octrois qu'elles créent doivent être au moins aussi strictes que celles de l'octroi parent.

Ces limites ne s'appliquent pas aux principaux qui obtiennent l'autorisation `CreateGrant` à partir d'une politique, bien que leurs autorisations puissent être limitées par des [conditions de politique](grant-authorization.md).

Par exemple, imaginons un octroi qui autorise le principal bénéficiaire à appeler les opérations `GenerateDataKey`, `Decrypt` et `CreateGrant`. Nous appelons un octroi qui autorise l'autorisation `CreateGrant` d'un *octroi parent*.

```
# The original grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "GenerateDataKey",
                "Decrypt",
                "CreateGrant
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

Le principal bénéficiaire, exampleUser, peut utiliser cette autorisation pour créer un octroi qui inclut n'importe quel sous-ensemble des opérations spécifiées dans l'octroi parent, par exemple `CreateGrant` et `Decrypt`. L'*octroi enfant* ne peut pas inclure d'autres opérations, comme `ScheduleKeyDeletion` ou `ReEncrypt`.

De plus, les [contraintes d'octroi](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) des octrois enfants doivent être aussi restrictives, voire plus, que celles de l'octroi parent. Par exemple, l'octroi enfant peut ajouter des paires dans une contrainte `EncryptionContextSubset` de l'octroi parent, mais ne peut pas les supprimer. L'octroi enfant peut modifier une contrainte `EncryptionContextSubset` en contrainte `EncryptionContextEquals`, mais pas l'inverse.

Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.

Par exemple, le principal bénéficiaire peut utiliser l'autorisation `CreateGrant` qu'il a obtenue de l'octroi parent pour créer l'octroi enfant suivant. Les opérations de l'octroi enfant sont un sous-ensemble des opérations de l'octroi parent et les contraintes d'octroi sont plus restrictives.

```
# The child grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572249600.0,
            "GrantId": "fedcba9999c1e2e9876abcde6e9d6c9b6a1987650000abcee009abcdef40183f",
            "Operations": [
                "CreateGrant"
                "Decrypt"
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/anotherUser",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

Le principal bénéficiaire de l'octroi enfant ,`anotherUser`, peut utiliser son autorisation `CreateGrant` pour créer des octrois. Cependant, les octrois que `anotherUser` crée doit inclure les opérations dans leur octroi parent ou un sous-ensemble, et les contraintes d'octroi doivent être les mêmes ou plus strictes. 

# Affichage d'octrois
<a name="grant-view"></a>

Pour consulter la subvention, utilisez l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)opération. Vous devez spécifier la clé KMS à laquelle les octrois s'appliquent. Vous pouvez également filtrer la liste des octrois par ID d'octroi ou principal bénéficiaire. Pour obtenir plus d'exemples, consultez [Utilisation `ListGrants` avec un AWS SDK ou une CLI](example_kms_ListGrants_section.md).

Pour consulter toutes les subventions accordées dans la région Compte AWS et dont le [capital est retraité en](grants.md#terms-retiring-principal) particulier, utilisez [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html). Les réponses comprennent des détails sur chaque octroi.

**Note**  
Le champ `GranteePrincipal` de la réponse `ListGrants` contient habituellement le bénéficiaire principal. Toutefois, lorsque le principal bénéficiaire de la subvention est un AWS service, le `GranteePrincipal` champ contient le [principal du service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), qui peut représenter plusieurs principaux bénéficiaires différents.

Par exemple, la commande suivante répertorie tous les octrois d'une clé KMS.

```
$  aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Operations": [
                "Decrypt"
            ]
        }
    ]
}
```

# Utilisation d'un jeton d'octroi
<a name="using-grant-token"></a>

L' AWS KMS API suit un modèle de [cohérence éventuel](grants.md#terms-eventual-consistency). Lorsque vous créez un octroi, il se peut qu'il ne soit pas effectif immédiatement. Il se peut qu'il y ait un bref délai avant que le changement ne soit disponible via AWS KMS. La propagation de la modification dans l'ensemble du système prend généralement moins de quelques secondes, mais dans certains cas, cela peut prendre plusieurs minutes. Une fois que la modification a été entièrement appliquée à l’ensemble du système, le principal bénéficiaire peut utiliser les autorisations dans l'octroi sans spécifier le jeton d'octroi ou une preuve de l'octroi. Toutefois, si une subvention est si récente qu'elle n'est pas encore connue de tous AWS KMS, la demande peut échouer avec une `AccessDeniedException` erreur.

Pour utiliser immédiatement les autorisations dans un nouvel octroi, utilisez le [jeton d'octroi](grants.md#grant_token) pour l'octroi. Enregistrez le jeton de subvention renvoyé par l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération. Soumettez ensuite le jeton de subvention dans la demande AWS KMS d'opération. Vous pouvez soumettre un jeton de subvention à n'importe quelle [opération de AWS KMS subvention](grants.md#terms-grant-operations) et vous pouvez soumettre plusieurs jetons de subvention dans la même demande.



L'exemple suivant utilise l'`CreateGrant`opération pour créer une autorisation autorisant les opérations [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)et [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). Elle enregistre le jeton d'octroi que `CreateGrant` renvoie dans la variable `token`. Ensuite, dans un appel à l'opération `GenerateDataKey`, elle utilise le jeton d'octroi dans la variable `token`.

```
# Create a grant; save the grant token 
$ token=$(aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/appUser \
    --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \
    --operations GenerateDataKey Decrypt \
    --query GrantToken \
    --output text)

# Use the grant token in a request
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    –-key-spec AES_256 \
    --grant-tokens $token
```

Les directeurs autorisés peuvent également utiliser un jeton de subvention pour retirer une nouvelle subvention avant même que la subvention ne soit disponible dans AWS KMS son intégralité. (L'opération `RevokeGrant` n'accepte pas de jeton d'octroi.) Pour en savoir plus, consultez [Retrait et révocation d'octrois](grant-delete.md).

```
# Retire the grant
$ aws kms retire-grant --grant-token $token
```

# Retrait et révocation d'octrois
<a name="grant-delete"></a>

Pour supprimer un octroi, la retirer ou la révoquer.

Les [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)opérations [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)et sont très similaires les unes aux autres. Les deux opérations suppriment un octroi, ce qui élimine les autorisations qu'il accorde. La principale différence entre ces opérations est la façon dont elles sont autorisées.

**RevokeGrant**  
Comme pour la plupart AWS KMS des opérations, l'accès à l'`RevokeGrant`opération est contrôlé par le biais de [politiques clés](key-policies.md) et de [politiques IAM](iam-policies.md). L'[RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)API peut être appelée par n'importe quel principal `kms:RevokeGrant` autorisé. Cette autorisation est incluse dans les autorisations standard accordées aux administrateurs de clé. En règle générale, les administrateurs révoquent un octroi pour refuser les autorisations qu'il accorde.

**RetireGrant**  
L'octroi détermine qui peut la retirer. Cette conception vous permet de contrôler le cycle de vie d'un octroi sans modifier les politiques clé ou les politiques IAM. Généralement, vous retirez un octroi lorsque vous avez terminé d'utiliser ses autorisations.  
Un octroi peut être retiré par un [principal de retrait](grants.md#terms-retiring-principal) spécifié dans l'octroi. Le [principal bénéficiaire](grants.md#terms-grantee-principal) peut également retirer l'octroi, mais seulement s'il est également un principal de retrait ou si l'octroi comprend l'opération `RetireGrant`. À titre de sauvegarde, le Compte AWS système dans lequel la subvention a été créée peut annuler la subvention.  
Il existe une autorisation `kms:RetireGrant` qui peut être utilisée dans les politiques IAM, mais dont l'utilité est limitée. Les principaux spécifiés dans l'octroi peuvent retirer un octroi sans l'autorisation `kms:RetireGrant`. L'autorisation `kms:RetireGrant` à elle seule ne permet pas aux principaux de retirer un octroi. L'`kms:RetireGrant`autorisation n'est pas effective dans le cadre d'une [politique clé](key-policies.md) ou d'une [politique de contrôle des ressources](resource-control-policies.md).  
+ Pour refuser l'autorisation de retirer une subvention, vous pouvez utiliser une `Deny` action dont l'`kms:RetireGrant`autorisation figure dans vos politiques IAM.
+ Le Compte AWS propriétaire de la clé KMS peut déléguer l'`kms:RetireGrant`autorisation à un principal IAM du compte. 
+ Si le mandant sortant est différent Compte AWS, les administrateurs de l'autre compte peuvent `kms:RetireGrant` déléguer l'autorisation de retirer la subvention à un directeur IAM de ce compte.

L' AWS KMS API suit un modèle de [cohérence éventuel](grants.md#terms-eventual-consistency). Lorsque vous créez, retirez ou révoquez un octroi, il se peut qu'il y ait un bref délai avant que le changement ne soit disponible via AWS KMS. La propagation de la modification dans l'ensemble du système prend généralement moins de quelques secondes, mais dans certains cas, cela peut prendre plusieurs minutes. Si vous devez supprimer une nouvelle subvention immédiatement, avant qu'elle ne soit entièrement disponible AWS KMS, [utilisez un jeton de subvention](using-grant-token.md) pour annuler la subvention. Vous ne pouvez pas utiliser un jeton d'octroi pour révoquer un octroi.

# Clés de condition pour AWS KMS
<a name="policy-conditions"></a>

Vous pouvez spécifier des conditions dans les [politiques clés et les politiques](key-policies.md) [IAM qui contrôlent l'](iam-policies.md)accès aux AWS KMS ressources. L'Instruction de politique est en vigueur uniquement lorsque les conditions sont vérifiées. Par exemple, il est possible d'appliquer une instruction de politique après une date spécifique. Ou, vous pouvez faire en sorte qu'une instruction de politique contrôle l'accès uniquement lorsqu'une valeur spécifique apparaît dans une demande d'API.

Pour spécifier des conditions, utilisez les *clés de condition* dans l'[élément `Condition`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) d'une instruction de politique avec des [opérateurs de condition IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html). Certaines clés de condition s'appliquent de manière générale AWS ; d'autres sont spécifiques à AWS KMS.

Les valeurs des clés de condition doivent respecter les règles de caractères et de codage des politiques AWS KMS clés et des politiques IAM. Pour plus d'informations sur les règles de document de politique de clé, voir [Format de politique de clé](key-policy-overview.md#key-policy-format). Pour plus d'informations sur les règles du document de politique IAM, veuillez consulter [Exigences relatives aux noms IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) dans le *Guide de l'utilisateur IAM*.

**Topics**
+ [AWS clés de condition globales](conditions-aws.md)
+ [AWS KMS clés de condition](conditions-kms.md)
+ [AWS KMS clés de condition pour les plateformes certifiées](conditions-attestation.md)

# AWS clés de condition globales
<a name="conditions-aws"></a>

AWS définit des [clés de condition globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys), un ensemble de clés de conditions de politique pour tous les AWS services qui utilisent IAM pour le contrôle d'accès. AWS KMS prend en charge toutes les clés de condition globales. Vous pouvez les utiliser dans les politiques AWS KMS clés et les politiques IAM.

Par exemple, vous pouvez utiliser la clé de condition PrincipalArn globale [aws :](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) pour autoriser l'accès à une AWS KMS key (clé KMS) uniquement lorsque le principal de la demande est représenté par le nom de ressource Amazon (ARN) dans la valeur de la clé de condition. Pour prendre en charge le [contrôle d'accès basé sur les attributs](abac.md) (ABAC) dans AWS KMS, vous pouvez utiliser la clé de condition globale [aws :ResourceTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) dans une politique IAM afin d'autoriser l'accès aux clés KMS avec une balise particulière.

Pour éviter qu'un AWS service ne soit utilisé comme un sous-traitant confus dans une politique où le principal est un [directeur de AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), vous pouvez utiliser les clés de condition [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)ou [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globales. Pour en savoir plus, consultez [Utilisation des clés de condition `aws:SourceArn` ou `aws:SourceAccount`](least-privilege.md#least-privilege-source-arn).

Pour plus d'informations sur les clés de condition AWS globales, y compris les types de demandes dans lesquels elles sont disponibles, voir [Clés contextuelles de conditions AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*. Pour accéder à des exemples d'utilisation des clés de condition globale dans des politiques IAM, veuillez consulter [Contrôle de l'accès aux demandes](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests) et [Contrôle des clés de balise](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys) dans le *Guide de l'utilisateur IAM*.

Les rubriques suivantes fournissent des conseils spéciaux pour l'utilisation des clés de condition basées sur les adresses IP et les points de terminaison VPC.

**Topics**
+ [Utilisation de la condition d'adresse IP dans les politiques avec AWS KMS autorisations](#conditions-aws-ip-address)
+ [Utilisation des conditions de point de terminaison VPC dans les politiques avec autorisations AWS KMS](#conditions-aws-vpce)
+ [Utilisation IPv6 des adresses dans IAM et des politiques AWS KMS clés](#KMS-IPv6-policies)

## Utilisation de la condition d'adresse IP dans les politiques avec AWS KMS autorisations
<a name="conditions-aws-ip-address"></a>

Vous pouvez l'utiliser AWS KMS pour protéger vos données dans le cadre d'un [AWS service intégré](service-integration.md). Mais soyez prudent lorsque vous spécifiez les [opérateurs de condition d'adresse IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) ou la clé de `aws:SourceIp` condition dans la même déclaration de politique qui autorise ou refuse l'accès à AWS KMS. Par exemple, la politique décrite dans [AWS: Refuse l'accès à la AWS base de l'adresse IP source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html) limite les AWS actions aux demandes provenant de la plage d'adresses IP spécifiée.

Envisagez le scénario suivant :

1. Vous associez une politique telle que celle présentée à l'adresse [AWS suivante : Refuse l'accès à une identité IAM en AWS fonction de l'adresse IP source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html). Vous définissez la valeur de la clé de condition `aws:SourceIp` sur la plage d'adresses IP de la société de l'utilisateur. D'autres politiques permettant d'utiliser Amazon EBS, Amazon EC2 et AWS KMS sont attribuées à cette identité IAM.

1. L'identité tente d'attacher un volume EBS chiffré à une instance EC2. Cette action échoue avec une erreur d'autorisation bien que l'utilisateur soit autorisé à utiliser l'ensemble des services concernés.

L'étape 2 échoue car la demande AWS KMS de déchiffrement de la clé de données chiffrée du volume provient d'une adresse IP associée à l'infrastructure Amazon EC2. Pour que l'opération aboutisse, la requête doit provenir de l'adresse IP de l'utilisateur d'origine. Étant donné que la politique à l'étape 1 refuse explicitement toutes les demandes provenant d'adresses IP autres que celles spécifiées, Amazon EC2 n'est pas autorisé à déchiffrer la clé de données chiffrée du volume EBS.

Par ailleurs, la clé de condition `aws:SourceIP` n'est pas en vigueur lorsque la demande provient d'un [point de terminaison d'un VPC Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html). Pour restreindre les demandes à un point de terminaison VPC, y compris à un [point de terminaison VPC AWS KMS](kms-vpc-endpoint.md), utilisez les clés de condition `aws:SourceVpce` ou `aws:SourceVpc`. Pour plus d'informations, consultez [Points de terminaison d'un VPC - Contrôle de l'utilisation de points de terminaison](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html#vpc-endpoints-iam-access) dans le manuel *Guide d'utilisateur Amazon VPC*. 

## Utilisation des conditions de point de terminaison VPC dans les politiques avec autorisations AWS KMS
<a name="conditions-aws-vpce"></a>

[AWS KMS prend en charge les points de terminaison Amazon Virtual Private Cloud (Amazon VPC) alimentés](kms-vpc-endpoint.md) par. [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink) Vous pouvez utiliser les clés de [condition globales suivantes dans les politiques clés](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys) et les politiques IAM pour contrôler l'accès aux AWS KMS ressources lorsque la demande provient d'un VPC ou utilise un point de terminaison VPC. Pour plus de détails, veuillez consulter [Utiliser les points de terminaison VPC pour contrôler l'accès aux ressources AWS KMS](vpce-policy-condition.md).
+ `aws:SourceVpc` limite l'accès aux requêtes à partir du VPC spécifié. 
+ `aws:SourceVpce` limite l'accès aux requêtes à partir du point de terminaison d'un VPC spécifié. 

Si vous utilisez ces clés de condition pour contrôler l'accès aux clés KMS, vous risquez de refuser par inadvertance l'accès aux AWS services utilisés en votre AWS KMS nom. 

Prenez soin d'éviter une situation comme dans l'exemple des [clés de condition d'adresse IP](#conditions-aws-ip-address). Si vous limitez les demandes de clé KMS à un point de terminaison VPC ou VPC, les appels AWS KMS provenant d'un service intégré, tel qu'Amazon S3 ou Amazon EBS, risquent d'échouer. Cela peut se produire même si la requête source provient au final du VPC ou du point de terminaison d'un VPC. 

## Utilisation IPv6 des adresses dans IAM et des politiques AWS KMS clés
<a name="KMS-IPv6-policies"></a>

Avant d'essayer d'y accéder AWS KMS IPv6, assurez-vous que toutes les politiques clés et IAM contenant des restrictions d'adresse IP sont mises à jour pour inclure les plages d' IPv6 adresses. Les politiques basées sur les adresses IP qui ne sont pas mises à jour pour gérer IPv6 les adresses peuvent entraîner une perte ou un accès incorrect des clients lorsqu'ils commencent à les utiliser IPv6. Pour obtenir des conseils généraux sur les contrôles d'accès KMS, voir[Accès aux clés KMS et autorisations](control-access.md). Pour en savoir plus sur la prise en charge du KMS et du double stack, consultez[Prise en charge des points de terminaison double pile](ipv6-kms.md).

**Important**  
Ces déclarations n'autorisent aucune action. Utilisez ces instructions en combinaison avec d'autres instructions qui autorisent des actions spécifiques.

La déclaration suivante refuse explicitement l'accès à toutes les autorisations KMS pour les demandes provenant de la `192.0.2.*` plage d' IPv4 adresses. Les autorisations KMS ne sont pas explicitement refusées aux adresses IP situées en dehors de cette plage. Étant donné que toutes les IPv6 adresses se situent en dehors de la plage refusée, cette instruction ne refuse pas explicitement les autorisations KMS pour aucune IPv6 adresse.

```
{
     "Sid": "DenyKMSPermissions",
     "Effect": "Deny",
    "Action": [
        "kms:*"
    ],
    "Resource": "*",
    "Condition": {
        "NotIpAddress": {
            "aws:SourceIp": [ 
                "192.0.2.0/24"
            ]
        }
    }
}
```

Vous pouvez modifier l'`Condition`élément pour refuser à la fois les plages d'adresses IPv4 IPv6 (`192.0.2.0/24``2001:db8:1234::/32`) et (), comme indiqué dans l'exemple suivant.

```
{
    "Sid": "DenyKMSPermissions",
    "Effect": "Deny",
    "Action": [
        "kms:*"
    ],
    "Resource": "*",
    "Condition": {
        "NotIpAddress": {
            "aws:SourceIp": [ 
                "192.0.2.0/24",
                "2001:db8:1234::/32"
            ]
        }
    }
}
```

# AWS KMS clés de condition
<a name="conditions-kms"></a>

AWS KMS fournit un ensemble de clés de condition que vous pouvez utiliser dans les politiques clés et les politiques IAM. Ces clés de condition sont spécifiques à AWS KMS. Par exemple, vous pouvez utiliser la clé de condition `kms:EncryptionContext:context-key` pour exiger un [contexte de chiffrement](encrypt_context.md) particulier lorsque vous contrôlez l'accès à une clé KMS de chiffrement symétrique.

**Conditions pour une demande d'opération d'API**

De nombreuses clés de AWS KMS condition contrôlent l'accès à une clé KMS en fonction de la valeur d'un paramètre dans la demande d' AWS KMS opération. Par exemple, vous pouvez utiliser la clé de KeySpec condition [kms :](#conditions-kms-key-spec) dans une politique IAM pour autoriser l'utilisation de l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération uniquement lorsque la valeur du `KeySpec` paramètre de la `CreateKey` demande est`RSA_4096`. 

Ce type de condition fonctionne même lorsque le paramètre n'apparaît pas dans la demande, par exemple lorsque vous utilisez la valeur par défaut du paramètre. Par exemple, vous pouvez utiliser la clé de KeySpec condition [kms :](#conditions-kms-key-spec) pour permettre aux utilisateurs d'utiliser l'`CreateKey`opération uniquement lorsque la valeur du `KeySpec` paramètre est`SYMMETRIC_DEFAULT`, qui est la valeur par défaut. Cette condition autorise les demandes dont le paramètre `KeySpec` a pour valeur `SYMMETRIC_DEFAULT` et les demandes qui n'ont pas de paramètre `KeySpec`.

**Conditions pour les clés KMS utilisées dans les opérations d'API**

Certaines clés de AWS KMS condition peuvent contrôler l'accès aux opérations en fonction d'une propriété de la clé KMS utilisée dans l'opération. Par exemple, vous pouvez utiliser la KeyOrigin condition [kms :](#conditions-kms-key-origin) pour autoriser les principaux à appeler [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)une clé KMS uniquement lorsque `Origin` la clé KMS est`AWS_KMS`. Pour savoir si une clé de condition peut être utilisée de cette manière, consultez la description de la clé de condition.

L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération. Si vous utilisez ce type de clé de condition avec une opération qui n'est pas autorisée pour une ressource clé KMS particulière, par exemple [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), l'autorisation n'est pas effective car la condition ne peut jamais être satisfaite. Aucune ressource de clé KMS n'est impliquée dans l'autorisation de l'opération `ListKeys` ni aucune propriété `KeySpec`. 

Les rubriques suivantes décrivent chaque clé de AWS KMS condition et incluent des exemples de déclarations de politique illustrant la syntaxe des politiques.

**Utilisation d'opérateurs d'ensemble avec des clés de condition**

Lorsqu'une condition de stratégie compare deux ensembles de valeurs, tels que le jeu de balises d'une demande et le jeu de balises d'une politique, vous devez indiquer AWS comment comparer les ensembles. IAM définit deux opérateurs d'ensemble, `ForAnyValue` et `ForAllValues`, à cette fin. Utilisez les opérateurs d'ensemble uniquement avec des *clés de condition multi-valeurs*, qui les nécessitent. N'utilisez pas d'opérateurs d'ensemble avec des *clés de condition à valeur unique*. Comme toujours, testez vos instructions de politiques de manière approfondie avant de les utiliser au sein d'un environnement de production.

Les clés de condition sont à valeur unique ou multi-valeurs. Pour déterminer si une clé de AWS KMS condition est à valeur unique ou à valeurs multiples, consultez la colonne **Type de valeur** dans la description de la clé de condition. 
+ Les clés de condition à *valeur unique* ont au plus une valeur dans le contexte d'autorisation (la demande ou la ressource). Par exemple, étant donné que chaque appel d'API ne peut provenir que d'une seule Compte AWS, [kms : CallerAccount](#conditions-kms-caller-account) est une clé de condition à valeur unique. N'utilisez pas d'opérateur d'ensemble avec une clé de condition à valeur unique. 
+ Les clés de condition *multi-valeurs* ont plusieurs valeurs dans le contexte d'autorisation (la demande ou la ressource). Par exemple, étant donné que chaque clé KMS peut avoir plusieurs alias, [kms : ResourceAliases](#conditions-kms-resource-aliases) peut avoir plusieurs valeurs. Les clés de condition multi-valeurs nécessitent un opérateur d'ensemble. 

Notez que la différence entre les clés de condition à valeur unique et multi-valeurs dépend du nombre de valeurs dans le contexte d'autorisation, et non du nombre de valeurs dans la condition de politique.

**Avertissement**  
L'utilisation d'un opérateur d'ensemble avec une clé de condition à valeur unique peut créer une instruction de politique trop permissive (ou trop restrictive). Utilisez des opérateurs d'ensemble uniquement avec des clés de condition multi-valeurs.  
Si vous créez ou mettez à jour une politique qui inclut un opérateur `ForAllValues` défini avec les *clés de contexte* ou de `aws:RequestTag/tag-key` condition, AWS KMS renvoie le message d'erreur suivant kms: EncryptionContext :  
`OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.`

Pour de plus amples informations sur les opérateurs d'ensemble `ForAnyValue` et `ForAllValues`, veuillez consulter [Utilisation de plusieurs clés et valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) dans le *Guide de l'utilisateur IAM*. Pour plus d'informations sur le risque lié à l'utilisation de l'opérateur `ForAllValues` défini avec une condition à valeur unique, voir [Avertissement de sécurité : ForAllValues clé à valeur unique](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-security-warning-forallvalues-with-single-valued-key) dans le guide de l'*utilisateur IAM*.

**Topics**
+ [km : BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km : CallerAccount](#conditions-kms-caller-account)
+ [kms : CustomerMasterKeySpec (obsolète)](#conditions-kms-key-spec-replaced)
+ [kms : CustomerMasterKeyUsage (obsolète)](#conditions-kms-key-usage-replaced)
+ [km : DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km : EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms EncryptionContext : touche *contextuelle*](#conditions-kms-encryption-context)
+ [km : EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km : ExpirationModel](#conditions-kms-expiration-model)
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km : GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km : GrantOperations](#conditions-kms-grant-operations)
+ [km : GranteePrincipal](#conditions-kms-grantee-principal)
+ [km : KeyAgreementAlgorithm](#conditions-kms-key-agreement-algorithm)
+ [km : KeyOrigin](#conditions-kms-key-origin)
+ [km : KeySpec](#conditions-kms-key-spec)
+ [km : KeyUsage](#conditions-kms-key-usage)
+ [km : MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km : MessageType](#conditions-kms-message-type)
+ [km : MultiRegion](#conditions-kms-multiregion)
+ [km : MultiRegionKeyType](#conditions-kms-multiregion-key-type)
+ [km : PrimaryRegion](#conditions-kms-primary-region)
+ [km : ReEncryptOnSameKey](#conditions-kms-reencrypt-on-same-key)
+ [km : RequestAlias](#conditions-kms-request-alias)
+ [km : ResourceAliases](#conditions-kms-resource-aliases)
+ [km : ReplicaRegion](#conditions-kms-replica-region)
+ [km : RetiringPrincipal](#conditions-kms-retiring-principal)
+ [km : RotationPeriodInDays](#conditions-kms-rotation-period-in-days)
+ [km : ScheduleKeyDeletionPendingWindowInDays](#conditions-kms-schedule-key-deletion-pending-window-in-days)
+ [km : SigningAlgorithm](#conditions-kms-signing-algorithm)
+ [km : ValidTo](#conditions-kms-valid-to)
+ [km : ViaService](#conditions-kms-via-service)
+ [km : WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km : WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km : BypassPolicyLockoutSafetyCheck
<a name="conditions-kms-bypass-policy-lockout-safety-check"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:BypassPolicyLockoutSafetyCheck`  |  Booléen  | À valeur unique |  `CreateKey` `PutKeyPolicy`  |  Politiques IAM uniquement Politiques de clé et politiques IAM  | 

La clé de `kms:BypassPolicyLockoutSafetyCheck` condition contrôle l'accès aux [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)opérations [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)et en fonction de la valeur du `BypassPolicyLockoutSafetyCheck` paramètre dans la demande. 

L'exemple d'instruction de politique IAM suivant empêche les utilisateurs de contourner le contrôle de sécurité du verrouillage de la politique en leur refusant l'autorisation de créer des clés KMS lorsque la valeur du paramètre `BypassPolicyLockoutSafetyCheck` dans la demande `CreateKey` est `true.`. 

```
{
  "Effect": "Deny",
  "Action": [
    "kms:CreateKey",
    "kms:PutKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

Vous pouvez également utiliser la clé de condition `kms:BypassPolicyLockoutSafetyCheck` dans une politique IAM ou une politique de clé pour contrôler l'accès à l'opération `PutKeyPolicy`. L'exemple d'instruction de politique suivant dans une politique de clé empêche les utilisateurs de contourner le contrôle de sécurité du verrouillage de la politique lors de la modification de la politique d'une clé KMS. 

Plutôt que d'utiliser explicitement `Deny`, cette instruction de politique utilise `Allow` avec [l'opérateur de condition Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) afin d'autoriser l'accès uniquement lorsque la demande n'inclut pas le paramètre `BypassPolicyLockoutSafetyCheck`. Lorsque le paramètre n'est pas utilisé, la valeur par défaut est `false`. Cette instruction de politique légèrement affaiblie peut être remplacée dans le cas rare où un contournement est nécessaire. 

```
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

**Voir aussi**
+ [km : KeySpec](#conditions-kms-key-spec)
+ [km : KeyOrigin](#conditions-kms-key-origin)
+ [km : KeyUsage](#conditions-kms-key-usage)

## km : CallerAccount
<a name="conditions-kms-caller-account"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:CallerAccount`  |  String  | À valeur unique |  Opérations liées aux ressources de clé KMS Opérations liées au magasin de clés personnalisé  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour autoriser ou refuser l'accès à toutes les identités (utilisateurs et rôles) d'un Compte AWS. Dans les politiques de clé, vous utilisez l'élément `Principal` pour spécifier les identités auxquelles l'instruction de politique s'applique. La syntaxe de l'élément `Principal` ne permet pas de spécifier toutes les identités dans un Compte AWS. Mais vous pouvez obtenir cet effet en combinant cette clé de condition avec un `Principal` élément qui spécifie toutes les AWS identités.

Vous pouvez l'utiliser pour contrôler l'accès à n'importe quelle *opération de ressource de clé KMS*, c'est-à-dire toute AWS KMS opération utilisant une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération. Elle est également valable pour les opérations qui gèrent des [magasins de clés personnalisés](key-store-overview.md#custom-key-store-overview).

Par exemple, l'instruction de politique suivante montre comment utiliser la clé de condition `kms:CallerAccount`. Cette déclaration de politique fait partie de la politique clé Clé gérée par AWS pour Amazon EBS. Il combine un `Principal` élément qui spécifie toutes les AWS identités avec la clé de `kms:CallerAccount` condition pour autoriser efficacement l'accès à toutes les identités dans Compte AWS 111122223333. Il contient une clé de AWS KMS condition supplémentaire (`kms:ViaService`) pour limiter davantage les autorisations en n'autorisant que les demandes provenant d'Amazon EBS. Pour de plus amples informations, veuillez consulter [km : ViaService](#conditions-kms-via-service).

```
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

## kms : CustomerMasterKeySpec (obsolète)
<a name="conditions-kms-key-spec-replaced"></a>

La clé de condition `kms:CustomerMasterKeySpec` est obsolète. Utilisez plutôt la clé de KeySpec condition [kms :](#conditions-kms-key-spec).

Les clés de condition `kms:CustomerMasterKeySpec` et `kms:KeySpec` fonctionnent de la même manière. Seuls les noms diffèrent. Nous vous recommandons d'utiliser `kms:KeySpec`. Toutefois, pour éviter d'interrompre les modifications, AWS KMS prend en charge les deux clés de condition.

## kms : CustomerMasterKeyUsage (obsolète)
<a name="conditions-kms-key-usage-replaced"></a>

La clé de condition `kms:CustomerMasterKeyUsage` est obsolète. Utilisez plutôt la clé de KeyUsage condition [kms :](#conditions-kms-key-usage).

Les clés de condition `kms:CustomerMasterKeyUsage` et `kms:KeyUsage` fonctionnent de la même manière. Seuls les noms diffèrent. Nous vous recommandons d'utiliser `kms:KeyUsage`. Toutefois, pour éviter d'interrompre les modifications, AWS KMS prend en charge les deux clés de condition.

## km : DataKeyPairSpec
<a name="conditions-kms-data-key-spec"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:DataKeyPairSpec`  |  String  | À valeur unique |  `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès aux [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)opérations [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)et en fonction de la valeur du `KeyPairSpec` paramètre dans la demande. Par exemple, vous pouvez autoriser des utilisateurs à générer uniquement des types particuliers de paires de clés de données.

L'exemple suivant d'instruction de politique de clé utilise la clé de condition `kms:DataKeyPairSpec` pour autoriser les utilisateurs à utiliser la clé KMS afin de générer uniquement des paires de clés de données RSA.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
```

**Voir aussi**
+ [km : KeySpec](#conditions-kms-key-spec)
+ [km : EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms EncryptionContext : touche *contextuelle*](#conditions-kms-encryption-context)
+ [km : EncryptionContextKeys](#conditions-kms-encryption-context-keys)

## km : EncryptionAlgorithm
<a name="conditions-kms-encryption-algorithm"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionAlgorithm`  |  String  | À valeur unique |  `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de condition `kms:EncryptionAlgorithm` pour contrôler l'accès aux opérations de chiffrement en fonction de l'algorithme de chiffrement utilisé dans l'opération. Pour les [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)opérations de [chiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html), de [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) et de déchiffrement, il contrôle l'accès en fonction de la valeur du [EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-EncryptionAlgorithm)paramètre figurant dans la demande. Pour les opérations qui génèrent des clés de données et des paires de clés de données, elle contrôle l'accès en fonction de l'algorithme de chiffrement utilisé pour chiffrer la clé de données.

Cette clé de condition n'a aucun effet sur les opérations effectuées en dehors de AWS KMS, telles que le chiffrement avec la clé publique dans une paire de clés KMS asymétrique en dehors de. AWS KMS

**EncryptionAlgorithm paramètre dans une demande**

Pour autoriser les utilisateurs à utiliser uniquement un algorithme de chiffrement particulier avec une clé KMS, utilisez une instruction de politique avec un effet `Deny` et un opérateur de condition `StringNotEquals`. Par exemple, l'exemple suivant d'instruction de politique de clé interdit aux principaux pouvant endosser le rôle `ExampleRole` d'utiliser cette clé KMS dans les opérations de chiffrement spécifiées, sauf si l'algorithme de chiffrement de la demande est `RSAES_OAEP_SHA_256`. un algorithme de chiffrement asymétrique utilisé avec des clés KMS RSA.

Contrairement à une instruction de politique permettant à un utilisateur d'utiliser un algorithme de chiffrement particulier, une instruction de politique avec un double négatif comme celui-ci empêche les autres politiques et octrois associés à cette clé KMS d'autoriser ce rôle à utiliser d'autres algorithmes de chiffrement. Le paramètre `Deny` dans cette instruction de politique de clé prévaut sur toute politique de clé ou politique IAM ayant un effet `Allow`. Il prévaut également sur tous les octrois associés à cette clé KMS et à ses principaux.

```
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
```

**Algorithme de chiffrement utilisé pour l'opération**

Vous pouvez également utiliser la clé de condition `kms:EncryptionAlgorithm` pour contrôler l'accès aux opérations en fonction de l'algorithme de chiffrement utilisé dans l'opération, même lorsque l'algorithme n'est pas spécifié dans la demande. Cela vous permet d'exiger ou d'interdire l'algorithme `SYMMETRIC_DEFAULT`, qui peut ne pas être spécifié dans une demande, car il s'agit de la valeur par défaut.

Cette fonction vous permet également d'utiliser la clé de condition `kms:EncryptionAlgorithm` pour contrôler l'accès aux opérations qui génèrent des clés de données et des paires de clés de données. Ces opérations utilisent uniquement des clés KMS de chiffrement symétriques et l'algorithme `SYMMETRIC_DEFAULT`.

Par exemple, cette politique IAM limite ses principaux au chiffrement symétrique. Elle interdit l'accès à toute clé KMS dans l'exemple de compte pour les opérations de chiffrement, sauf si l'algorithme de chiffrement spécifié dans la demande ou utilisé dans l'opération est SYMMETRIC\$1DEFAULT. Y compris [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)les `GenerateDataKey*` ajouts [GenerateDataKeyWithoutPlaintext[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html),, et [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)aux autorisations. La condition n'a aucun effet sur ces opérations, car elles utilisent toujours un algorithme de chiffrement symétrique.

```
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Voir aussi**
+ [km : MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km : SigningAlgorithm](#conditions-kms-signing-algorithm)

## kms EncryptionContext : touche *contextuelle*
<a name="conditions-kms-encryption-context"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContext:context-key`  |  String  | À valeur unique |  `CreateGrant` `Encrypt` `Decrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de condition `kms:EncryptionContext:context-key` pour contrôler l'accès à une [clé KMS de chiffrement symétrique](symm-asymm-choose-key-spec.md#symmetric-cmks) en fonction du [contexte de chiffrement](encrypt_context.md) d'une demande [d'opération de chiffrement](kms-cryptography.md#cryptographic-operations). Utilisez cette clé de condition pour évaluer à la fois la clé et la valeur dans la paire de contexte de chiffrement. Pour évaluer uniquement les clés de contexte de chiffrement ou pour exiger un contexte de chiffrement indépendamment des clés ou des valeurs, utilisez la clé de EncryptionContextKeys condition [kms :](#conditions-kms-encryption-context-keys).

**Note**  
Les valeurs clé de condition doivent respecter les règles de caractère pour les politiques de clé et les politiques IAM. Certains caractères valides dans un contexte de chiffrement ne sont pas valides dans les politiques. Vous ne pourrez peut-être pas utiliser cette clé de condition pour exprimer toutes les valeurs du contexte de chiffrement valides. Pour plus d'informations sur les règles de document de politique de clé, voir [Format de politique de clé](key-policy-overview.md#key-policy-format). Pour plus d'informations sur les règles du document de politique IAM, veuillez consulter [Exigences relatives aux noms IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) dans le *Guide de l'utilisateur IAM*.

Vous ne pouvez pas spécifier de contexte de chiffrement dans une opération de chiffrement avec une [clé KMS asymétrique](symmetric-asymmetric.md) ou une [clé KMS HMAC](hmac.md). Les algorithmes asymétriques et les algorithmes MAC ne prennent pas en charge un contexte de chiffrement.

Pour utiliser la clé de condition kms: EncryptionContext : *clé de contexte*, remplacez l'*context-key*espace réservé par la clé de contexte de chiffrement. Remplacez l'espace réservé *context-value* par la valeur du contexte de chiffrement.

```
"kms:EncryptionContext:context-key": "context-value"
```

Par exemple, la clé de condition suivante spécifie un contexte de chiffrement dans lequel la clé est `AppName` et la valeur est `ExampleApp` (`AppName = ExampleApp`).

```
"kms:EncryptionContext:AppName": "ExampleApp"
```

Il s'agit d'une [clé de condition à valeur unique](#set-operators). La clé de la clé de condition spécifie une clé de contexte de chiffrement particulière (*context-key*). Bien que vous puissiez inclure plusieurs paires de contexte de chiffrement dans chaque demande d'API, la paire de contexte de chiffrement avec le paramètre *context-key* ne peut avoir qu'une seule valeur. Par exemple, la clé de condition `kms:EncryptionContext:Department` s'applique uniquement aux paires de contexte de chiffrement avec une clé `Department`, et toute paire de contexte de chiffrement donnée avec la clé `Department` ne peut avoir qu'une seule valeur.

N'utilisez pas d'opérateur d'ensemble avec la clé de condition `kms:EncryptionContext:context-key`. Si vous créez une instruction de politique avec une action `Allow`, la clé de condition `kms:EncryptionContext:context-key` et l'opérateur d'ensemble `ForAllValues`, la condition autorise les demandes sans contexte de chiffrement et les demandes avec des paires de contexte de chiffrement qui ne sont pas spécifiées dans la condition de politique.

**Avertissement**  
N'utilisez pas d'opérateur d'ensemble `ForAnyValue` ou `ForAllValues` avec cette clé de condition à valeur unique. Ces opérateurs d'ensemble peuvent créer une condition de politique qui ne nécessite pas de valeurs que vous avez l'intention d'exiger et autorise les valeurs que vous avez l'intention d'interdire.  
Si vous créez ou mettez à jour une politique qui inclut un opérateur `ForAllValues` set avec la *touche de contexte kms: EncryptionContext* :, AWS KMS renvoie le message d'erreur suivant :  
`OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.`

Pour exiger une paire de contexte de chiffrement particulière, utilisez la clé de condition `kms:EncryptionContext:context-key` avec l'opérateur `StringEquals`.

L'exemple d'instruction de politique de clé suivant autorise les principaux qui peuvent endosser le rôle à utiliser la clé KMS dans une demande `GenerateDataKey`, uniquement lorsque le contexte de chiffrement de la demande inclut la paire `AppName:ExampleApp`. D'autres paires de contexte de chiffrement sont autorisées.

Le nom de la clé n'est pas sensible à la casse. La sensibilité à la casse de la valeur est déterminée par l'opérateur de condition, tel que `StringEquals`. Pour plus de détails, veuillez consulter [Sensibilité à la casse de la condition de contexte de chiffrement](#conditions-kms-encryption-context-case).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Pour exiger une paire de contextes de chiffrement et interdire toutes les autres paires de contextes de chiffrement, utilisez à la fois kms: EncryptionContext : *clé de contexte* et [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)dans la déclaration de politique. L'exemple d'instruction de politique suivant utilise la condition `kms:EncryptionContext:AppName` pour exiger la présence de la paire de contexte de chiffrement `AppName=ExampleApp` dans la demande. Il utilise également une clé de condition `kms:EncryptionContextKeys` avec l'opérateur d'ensemble `ForAllValues` pour autoriser uniquement la clé de contexte de chiffrement `AppName`. 

L'opérateur d'ensemble `ForAllValues` limite les clés de contexte de chiffrement dans la demande à `AppName`. Si la condition `kms:EncryptionContextKeys` avec l'opérateur d'ensemble `ForAllValues` a été utilisée seule dans une instruction de politique, cet opérateur d'ensemble autoriserait les demandes sans contexte de chiffrement. Toutefois, si la demande n'avait pas de contexte de chiffrement, la condition `kms:EncryptionContext:AppName` échouerait. Pour plus de détails sur l'opérateur d'ensemble `ForAllValues`, veuillez consulter [Utilisation de plusieurs clés et valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) dans le *Guide de l'utilisateur IAM*.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KeyUsers"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}
```

Vous pouvez également utiliser cette clé de condition pour refuser l'accès à une clé KMS pour une opération particulière. L'exemple d'instruction de politique de clé suivant utilise un effet `Deny` pour interdire au principal d'utiliser la clé KMS si le contexte de chiffrement de la demande inclut une paire de contexte de chiffrement `Stage=Restricted`. Cette condition permet une demande avec d'autres paires de contexte de chiffrement, y compris les paires de contexte de chiffrement avec la clé `Stage` et d'autres valeurs, telles que `Stage=Test`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": "Restricted"
    }
  }
}
```

### Utilisation de plusieurs paires de contexte de chiffrement
<a name="conditions-kms-encryption-context-many"></a>

Vous pouvez exiger ou interdire plusieurs paires de contexte de chiffrement. Vous pouvez également exiger l'une des différentes paires de contexte de chiffrement. Pour plus de détails sur la logique utilisée pour interpréter ces conditions, veuillez consulter [Création d'une condition avec plusieurs clés ou valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) dans le Guide de l'utilisateur IAM. 

**Note**  
Les versions antérieures de cette rubrique affichaient des déclarations de politique qui utilisaient les opérateurs `ForAnyValue` et `ForAllValues` set avec la *clé de condition kms: EncryptionContext : touche contextuelle*. L'utilisation d'un opérateur d'ensemble avec une [clé de condition à valeur unique](#set-operators) peut entraîner des politiques qui autorisent des demandes sans contexte de chiffrement et des paires de contexte de chiffrement non spécifiées.   
Par exemple, une condition de politique avec l'effet `Allow`, l'opérateur d'ensemble `ForAllValues` et la clé de condition `"kms:EncryptionContext:Department": "IT"` ne limite pas le contexte de chiffrement à la paire « Department = IT ». Elle autorise les demandes sans contexte de chiffrement et les demandes avec des paires de contexte de chiffrement non spécifiées, telles que `Stage=Restricted`.  
Veuillez revoir vos politiques et éliminer l'opérateur défini de toute condition à l'aide de la touche suivante kms: EncryptionContext : touche *contextuelle*. Les tentatives de création ou de mise à jour d'une politique avec ce format échouent avec une exception `OverlyPermissiveCondition`. Pour résoudre l'erreur, supprimez l'opérateur d'ensemble.

Pour exiger plusieurs paires de contexte de chiffrement, répertoriez les paires dans la même condition. L'exemple d'instruction de politique de clé suivant nécessite deux paires de contexte de chiffrement, `Department=IT` et `Project=Alpha`. Puisque les conditions ont des clés différentes (`kms:EncryptionContext:Department` et `kms:EncryptionContext:Project`), elles sont implicitement connectées par un opérateur AND. D'autres paires de contexte de chiffrement sont autorisées, mais non exigées.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    }
  }
}
```

Pour exiger une paire de contexte de chiffrement OU une autre paire, placez chaque clé de condition dans une instruction de politique distincte. L'exemple de politique de clé suivant nécessite des paires `Department=IT` *ou* `Project=Alpha`, ou les deux. D'autres paires de contexte de chiffrement sont autorisées, mais non exigées.

```
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Department": "IT"
  }
 }
},
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Project": "Alpha"
  }
 }
}
```

Pour exiger des paires de chiffrement particulières et exclure toutes les autres paires de contextes de chiffrement, utilisez à la fois kms: EncryptionContext : *clé de contexte* et [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)dans la déclaration de politique. La déclaration de politique clé suivante utilise la condition kms: EncryptionContext *:context-key* pour exiger un contexte de chiffrement avec `Department=IT` *les* `Project=Alpha` deux paires. Elle utilise une clé de condition `kms:EncryptionContextKeys` avec l'opérateur d'ensemble `ForAllValues` pour n'autoriser que les clés de contexte de chiffrement `Department` et `Project`. 

L'opérateur d'ensemble `ForAllValues` limite les clés de contexte de chiffrement dans la demande à `Department` et `Project`. S'il était utilisé seul dans une condition, cet opérateur set autoriserait les requêtes sans contexte de chiffrement, mais dans cette configuration, la *clé de contexte kms: EncryptionContext* : échouerait dans cette condition.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "Department",
        "Project"
      ]
    }
  }
}
```

Vous pouvez également interdire plusieurs paires de contexte de chiffrement. L'exemple d'instruction de politique de clé suivant utilise un effet `Deny` pour interdire au principal d'utiliser les clés KMS si le contexte de chiffrement de la demande inclut une paire `Stage=Restricted` ou `Stage=Production`. 

Plusieurs valeurs (`Restricted` et `Production`) pour la même clé (`kms:EncryptionContext:Stage`) sont implicitement connectés par un OR. Pour plus de détails, veuillez consulter [Logique d'évaluation pour les conditions avec plusieurs clés ou valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multiple-conditions-eval) dans le *Guide de l'utilisateur IAM*.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": [
         "Restricted",
         "Production"
      ] 
    }
  }
}
```

### Sensibilité à la casse de la condition de contexte de chiffrement
<a name="conditions-kms-encryption-context-case"></a>

Le contexte de chiffrement indiqué dans une opération de déchiffrement doit correspondre exactement au contexte de chiffrement précisé dans l'opération de chiffrement (en tenant compte des minuscules/majuscules). Seul l'ordre des paires dans un contexte de chiffrement avec plusieurs paire peut varier.

En revanche, dans les conditions des politiques, la clé de condition n'est pas sensible à la casse. Le respect de la casse de la valeur de condition est déterminée par l'[opérateur de condition de politique](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) que vous utilisez, comme `StringEquals` ou `StringEqualsIgnoreCase`.

À ce titre, la clé de condition, qui comprend le préfixe `kms:EncryptionContext:` et le remplacement *`context-key`*, n'est pas sensible à la casse. Une politique qui utilise cette condition ne vérifie pas la casse des éléments de la clé de condition. Le respect de la casse de la valeur, à savoir, le remplacement *`context-value`*, est déterminé par l'opérateur de condition de la politique.

Par exemple, l'instruction de politique suivante autorise l'opération lorsque le contexte de chiffrement inclut une clé `Appname`, quelle que soit sa capitalisation. La condition `StringEquals` nécessite que `ExampleApp` soit capitalisé tel qu'il est spécifié. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Appname": "ExampleApp"
    }
  }
}
```

Pour exiger une clé contextuelle de chiffrement distinguant majuscules et minuscules, utilisez la condition [kms : EncryptionContextKeys policy](#conditions-kms-encryption-context-keys) avec un opérateur de condition sensible aux majuscules et minuscules, tel que. `StringEquals` Dans cette condition de politique, étant donné que la clé de contexte de chiffrement est la valeur de cette condition de politique, sa sensibilité à la casse est déterminée par l'opérateur de condition. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Pour exiger une évaluation sensible aux majuscules et minuscules de la clé et de la valeur du contexte de chiffrement, utilisez les conditions de politique de *clé de contexte `kms:EncryptionContextKeys`* et kms: EncryptionContext : ensemble dans la même déclaration de politique. L'opérateur de condition sensible à la casse (tel que `StringEquals`) s'applique toujours à la valeur de la condition. La clé de contexte de chiffrement (telle que `AppName`) est la valeur de la condition `kms:EncryptionContextKeys`. La valeur du contexte de chiffrement (telle que`ExampleApp`) est la valeur de la condition kms: EncryptionContext : *clé de contexte*.

Par exemple, dans l'exemple suivant d'instruction de politique de clé, étant donné que l'opérateur `StringEquals` est sensible à la casse, la clé de contexte de chiffrement et la valeur de contexte de chiffrement sont toutes deux sensibles à la casse.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    },
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

### Utilisation de variables dans une condition de contexte de chiffrement
<a name="conditions-kms-encryption-context-variables"></a>

La clé et la valeur d'une paire de contexte de chiffrement doivent être des chaînes littérales simples. Il ne peut pas s'agir d'entiers ou d'objets, ou d'un type qui n'est pas entièrement résolu. Si vous utilisez un autre type, tel qu'un entier ou un flottant, il est AWS KMS interprété comme une chaîne littérale.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Toutefois, la valeur de la clé de condition `kms:EncryptionContext:context-key` peut être une [variable de politique IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). Ces variables de politique sont résolues lors de l'exécution en fonction des valeurs de la demande. Par exemple, `aws:CurrentTime ` est résolue à l'heure de la demande et `aws:username` est résolue au nom convivial de l'appelant.

Vous pouvez utiliser ces variables de politique pour créer une instruction de politique avec une condition qui nécessite des informations très spécifiques dans un contexte de chiffrement, comme le nom d'utilisateur de l'appelant. Comme elle contient une variable, vous pouvez utiliser la même instruction de politique pour tous les utilisateurs qui peuvent assumer le rôle. Vous n'avez pas besoin d'écrire une instruction de politique distincte pour chaque utilisateur.

Prenons un exemple : vous voulez que tous les utilisateurs qui peuvent endosser un rôle utilisent la même clé KMS pour chiffrer et déchiffrer leurs données. Cependant, vous souhaitez leur permettre de déchiffrer uniquement les données qu'ils ont chiffrées. Commencez par exiger que chaque demande AWS KMS inclue un contexte de chiffrement dans lequel la clé est le nom d'utilisateur de l'appelant `user` et dont la valeur est le nom AWS d'utilisateur, tel que le suivant.

```
"encryptionContext": {
    "user": "bob"
}
```

Ensuite, pour appliquer cette exigence, vous pouvez utiliser une instruction de politique comme celle de l'exemple suivant. Cette instruction de politique accorde au rôle `TestTeam` l'autorisation de chiffrer et de déchiffrer les données avec la clé KMS. Toutefois, l'autorisation est uniquement valable lorsque le contexte de chiffrement de la demande inclut une paire `"user": "<username>"`. Pour représenter le nom d'utilisateur, la condition utilise la variable de politique [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse).

Lorsque la demande est évaluée, le nom d'utilisateur de l'appelant remplace la variable dans la condition. Ainsi, la condition nécessite un contexte de chiffrement `"user": "bob"` pour « bob » et `"user": "alice"` pour « alice ».

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:user": "${aws:username}"
    }
  }
}
```

Vous pouvez utiliser une variable de politique IAM uniquement dans la valeur de la clé de condition `kms:EncryptionContext:context-key`. Vous ne pouvez pas utiliser une variable dans la clé.

Vous pouvez également utiliser des clés de contexte [spécifiques au fournisseur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_user-id.html) dans des variables. Ces clés contextuelles identifient de manière unique les utilisateurs qui se sont connectés à AWS l'aide de la fédération d'identité Web. 

Comme toutes les variables, celles-ci peuvent être utilisées uniquement dans la condition de politique `kms:EncryptionContext:context-key`, et non dans le contexte de chiffrement réel. Et elles peuvent être utilisées uniquement dans la valeur de la condition, pas dans la clé.

Par exemple, l'instruction de politique de clé suivante est similaire à la précédente. Toutefois, la condition nécessite un contexte de chiffrement où la clé est `sub` et la valeur identifie de façon unique un utilisateur connecté à un groupe d'utilisateurs Amazon Cognito. Pour plus de détails sur l'identification des utilisateurs et les rôles dans Amazon Cognito, veuillez consulter [Rôles IAM](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) dans le [guide du développeur Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
       "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}"
    }
  }
}
```

**Voir aussi**
+ [km : EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)

## km : EncryptionContextKeys
<a name="conditions-kms-encryption-context-keys"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContextKeys`  |  Chaîne (liste)  | Multi-valeurs |  `CreateGrant` `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de condition `kms:EncryptionContextKeys` pour contrôler l'accès à une [clé KMS de chiffrement symétrique](symm-asymm-choose-key-spec.md#symmetric-cmks) en fonction du [contexte de chiffrement](encrypt_context.md) d'une demande d'opération de chiffrement. Utilisez cette clé de condition pour évaluer uniquement la clé dans chaque paire de contexte de chiffrement. Utilisez la clé de condition `kms:EncryptionContext:context-key` afin d'évaluer à la fois la clé et la valeur dans le contexte de chiffrement.

Vous ne pouvez pas spécifier de contexte de chiffrement dans une opération de chiffrement avec une [clé KMS asymétrique](symmetric-asymmetric.md) ou une [clé KMS HMAC](hmac.md). Les algorithmes asymétriques et les algorithmes MAC ne prennent pas en charge un contexte de chiffrement.

**Note**  
Les valeurs des clés de condition, y compris une clé de contexte de chiffrement, doivent être conformes aux règles de caractères et de codage des politiques AWS KMS clés. Vous ne pourrez peut-être pas utiliser cette clé de condition pour exprimer toutes les clés du contexte de chiffrement valides. Pour plus d'informations sur les règles de document de politique de clé, voir [Format de politique de clé](key-policy-overview.md#key-policy-format). Pour plus d'informations sur les règles du document de politique IAM, veuillez consulter [Exigences relatives aux noms IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) dans le *Guide de l'utilisateur IAM*.

Il s'agit d'une [clé de condition multi-valeurs](#set-operators). Vous pouvez spécifier plusieurs paires de contexte de chiffrement dans chaque demande d'API. `kms:EncryptionContextKeys` compare les clés de contexte de chiffrement dans la demande à l'ensemble des clés de contexte de chiffrement dans la politique. Pour déterminer comment ces ensembles sont comparés, vous devez fournir un opérateur d'ensemble `ForAnyValue` ou `ForAllValues` dans la condition de politique. Pour plus de détails sur les opérateurs d'ensemble, veuillez consulter [Utilisation de plusieurs clés et valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) dans le Guide de l'utilisateur IAM.
+ `ForAnyValue` : au moins une clé de contexte de chiffrement dans la demande doit correspondre à une clé de contexte de chiffrement dans la condition de politique. D'autres clés de contexte de chiffrement sont autorisées. Si la demande n'a aucun contexte de chiffrement, la condition n'est pas remplie.
+ `ForAllValues` : chaque clé de contexte de chiffrement de la demande doit correspondre à une clé de contexte de chiffrement dans la condition de politique. Cet opérateur d'ensemble limite les clés de contexte de chiffrement à celles de la condition de politique. Il ne nécessite aucune clé de contexte de chiffrement, mais il interdit les clés de contexte de chiffrement non spécifiées.

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:EncryptionContextKeys` avec l'opérateur d'ensemble `ForAnyValue`. Cette instruction de politique autorise l'utilisation d'une clé KMS pour les opérations spécifiées, mais uniquement si au moins une des paires de contexte de chiffrement de la demande inclut la clé `AppName`, peu importe sa valeur. 

Par exemple, cette instruction de politique de clé autorise une demande `GenerateDataKey` avec deux paires de contexte de chiffrement, `AppName=Helper` et `Project=Alpha`, car la première paire de contexte de chiffrement répond à la condition. Une demande avec uniquement `Project=Alpha` ou sans contexte de chiffrement échouerait.

Comme l'opération [StringEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)conditionnelle distingue les majuscules et minuscules, cette déclaration de politique requiert l'orthographe et les majuscules de la clé contextuelle de chiffrement. Toutefois, vous pouvez utiliser un opérateur de condition qui ignore la casse de la clé, par exemple `StringEqualsIgnoreCase`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Vous pouvez également utiliser la clé de condition `kms:EncryptionContextKeys` pour exiger un contexte de chiffrement (tout contexte de chiffrement) dans les opérations de cryptographiques qui utilisent la clé KMS. 

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:EncryptionContextKeys` avec l'[opérateur de condition Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) pour autoriser l'accès à une clé KMS uniquement lorsque le contexte de chiffrement de la demande d'API n'est pas nul. Cette condition ne vérifie pas les clés ou les valeurs du contexte de chiffrement. Elle vérifie uniquement que le contexte de chiffrement existe. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:EncryptionContextKeys": false
    }
  }
}
```

**Voir aussi**
+ [kms EncryptionContext : touche *contextuelle*](#conditions-kms-encryption-context)
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)

## km : ExpirationModel
<a name="conditions-kms-expiration-model"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ExpirationModel`  |  String  | À valeur unique |  `ImportKeyMaterial`  |  Politiques de clé et politiques IAM  | 

La clé de `kms:ExpirationModel` condition contrôle l'accès à l'[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)opération en fonction de la valeur du [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)paramètre dans la demande. 

`ExpirationModel` est un paramètre facultatif qui détermine si les éléments de clé importés arrivent à expiration. Les valeurs valides sont `KEY_MATERIAL_EXPIRES` et `KEY_MATERIAL_DOES_NOT_EXPIRE`. La valeur par défaut est `KEY_MATERIAL_EXPIRES`. 

La date et l'heure d'expiration sont déterminées par la valeur du [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)paramètre. Le paramètre `ValidTo` est obligatoire, sauf si la valeur du paramètre `ExpirationModel` est `KEY_MATERIAL_DOES_NOT_EXPIRE`. Vous pouvez également utiliser la clé de ValidTo condition [kms :](#conditions-kms-valid-to) pour exiger une date d'expiration particulière comme condition d'accès.

L'exemple d'instruction de politique suivant utilise la clé de condition `kms:ExpirationModel` pour autoriser les utilisateurs à importer les éléments de clé dans une clé KMS uniquement lorsque la demande inclut le paramètre `ExpirationModel` et que sa valeur est `KEY_MATERIAL_DOES_NOT_EXPIRE`. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE"
    }
  }
}
```

Vous pouvez également utiliser la clé de condition `kms:ExpirationModel` pour autoriser les utilisateurs à importer les éléments de clé uniquement lorsque ceux-ci expirent. L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:ExpirationModel` avec [l'opérateur de condition Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) pour autoriser les utilisateurs à importer les éléments de clé uniquement lorsque la demande ne dispose pas de paramètre `ExpirationModel`. La valeur par défaut pour ExpirationModel est`KEY_MATERIAL_EXPIRES`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:ExpirationModel": true
    }
  }
}
```

**Voir aussi**
+ [km : ValidTo](#conditions-kms-valid-to)
+ [km : WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km : WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km : GrantConstraintType
<a name="conditions-kms-grant-constraint-type"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantConstraintType`  |  String  | À valeur unique |  `CreateGrant` `RetireGrant`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération en fonction du type de [contrainte d'autorisation](create-grant-overview.md#grant-constraints) figurant dans la demande. 

Lorsque vous créez un octroi, vous pouvez éventuellement spécifier une contrainte d'octroi pour autoriser les opérations permises par l'octroi seulement lorsqu'un [contexte de chiffrement particulier](encrypt_context.md) est présent. La contrainte d'octroi peut être de deux types : `EncryptionContextEquals` ou `EncryptionContextSubset`. Vous pouvez utiliser cette clé de condition pour vérifier que la demande contient un type ou l'autre.

**Important**  
N'incluez pas d'informations confidentielles ou sensibles dans ce champ. Ce champ peut être affiché en texte brut dans les CloudTrail journaux et autres sorties.

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:GrantConstraintType` pour autoriser les utilisateurs à créer des octrois uniquement lorsque la demande inclut une contrainte d'octroi `EncryptionContextEquals`. L'exemple suivant montre une instruction de politique dans une politique de clé.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GrantConstraintType": "EncryptionContextEquals"
    }
  }
}
```

**Voir aussi**
+ [kms EncryptionContext : touche *contextuelle*](#conditions-kms-encryption-context)
+ [km : EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km : GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km : GrantOperations](#conditions-kms-grant-operations)
+ [km : GranteePrincipal](#conditions-kms-grantee-principal)
+ [km : RetiringPrincipal](#conditions-kms-retiring-principal)

## km : GrantIsFor AWSResource
<a name="conditions-kms-grant-is-for-aws-resource"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantIsForAWSResource`  |  Booléen  | À valeur unique |  `CreateGrant` `ListGrants` `RevokeGrant`  |  Politiques de clé et politiques IAM  | 

Autorise ou refuse l'autorisation pour les [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)opérations [CreateGrant[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), ou uniquement lorsqu'un [AWS service intégré AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) appelle l'opération au nom de l'utilisateur. Cette condition de politique ne permet pas à l'utilisateur d'appeler ces opérations d'octroi directement.

L'exemple suivant d'instruction de politique de clé utilise la clé de condition `kms:GrantIsForAWSResource`. Il permet aux AWS services intégrés AWS KMS, tels qu'Amazon EBS, de créer des subventions sur cette clé KMS au nom du principal spécifié. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:GrantIsForAWSResource": true
    }
  }
}
```

**Voir aussi**
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km : GrantOperations](#conditions-kms-grant-operations)
+ [km : GranteePrincipal](#conditions-kms-grantee-principal)
+ [km : RetiringPrincipal](#conditions-kms-retiring-principal)

## km : GrantOperations
<a name="conditions-kms-grant-operations"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantOperations`  |  String  | Multi-valeurs |  `CreateGrant`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération en fonction des [opérations d'autorisation](grants.md#terms-grant-operations) figurant dans la demande. Par exemple, vous pouvez autoriser les utilisateurs à créer des octrois qui délèguent l'autorisation de chiffrer mais pas de déchiffrer. Pour plus d'informations sur les octrois, veuillez consulter [Utilisation d'octrois](grants.md).

Il s'agit d'une [clé de condition multi-valeurs](#set-operators). `kms:GrantOperations` compare l'ensemble d'opérations d'octrois dans la demande `CreateGrant` à l'ensemble d'opérations d'octrois dans la politique. Pour déterminer comment ces ensembles sont comparés, vous devez fournir un opérateur d'ensemble `ForAnyValue` ou `ForAllValues` dans la condition de politique. Pour plus de détails sur les opérateurs d'ensemble, veuillez consulter [Utilisation de plusieurs clés et valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) dans le Guide de l'utilisateur IAM.
+ `ForAnyValue` : au moins une opération d'octroi dans la demande doit correspondre à l'une des opérations d'octrois dans la condition de politique. D'autres opérations d'octrois sont autorisées.
+ ForAllValues: Chaque opération de subvention figurant dans la demande doit correspondre à une opération de subvention figurant dans la condition de politique. Cet opérateur d'ensemble limite les opérations d'octrois à celles spécifiées dans la condition de politique. Il ne nécessite aucune opération d'octroi, mais il interdit les opérations d'octrois non spécifiées.

  ForAllValues renvoie également true lorsqu'il n'y a aucune opération de subvention dans la demande, mais `CreateGrant` ne l'autorise pas. Si le paramètre `Operations` manque ou qu'il a une valeur nulle, la demande `CreateGrant` échoue.

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:GrantOperations` pour créer des octrois uniquement lorsque les opérations d'octrois sont `Encrypt`, `ReEncryptTo` ou les deux. Si l'octroi inclut toute autre opération, la demande `CreateGrant` échoue.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "Encrypt",
        "ReEncryptTo"
      ]
    }
  }
}
```

Si vous changez l'opérateur d'ensemble dans la condition de politique en `ForAnyValue`, l'instruction de politique exigerait qu'au moins une des opérations d'octrois dans l'octroi soit `Encrypt` ou `ReEncryptTo`, mais elle autoriserait d'autres opérations d'octrois, telles que `Decrypt` ou `ReEncryptFrom`.

**Voir aussi**
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km : GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km : GranteePrincipal](#conditions-kms-grantee-principal)
+ [km : RetiringPrincipal](#conditions-kms-retiring-principal)

## km : GranteePrincipal
<a name="conditions-kms-grantee-principal"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:GranteePrincipal`  |  String  | À valeur unique |  `CreateGrant`  |  Politiques de clé et IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération en fonction de la valeur du [GranteePrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-GranteePrincipal)paramètre dans la demande. Par exemple, vous pouvez créer des octrois pour utiliser une clé KMS uniquement lorsque le principal bénéficiaire de la demande `CreateGrant` correspond au principal spécifié dans l'instruction de condition.

Pour spécifier le principal du bénéficiaire, utilisez le Amazon Resource Name (ARN) d'un AWS principal. Les principaux valides incluent les utilisateurs IAM Comptes AWS, les rôles IAM, les utilisateurs fédérés et les utilisateurs des rôles assumés. Pour obtenir de l'aide sur la syntaxe ARN d'un principal, consultez la section [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) dans le guide de l'*utilisateur IAM*.

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:GranteePrincipal` afin de créer des octrois pour une clé KMS uniquement lorsque le principal bénéficiaire de l'octroi est le `LimitedAdminRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Voir aussi**
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km : GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km : GrantOperations](#conditions-kms-grant-operations)
+ [km : RetiringPrincipal](#conditions-kms-retiring-principal)

## km : KeyAgreementAlgorithm
<a name="conditions-kms-key-agreement-algorithm"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyAgreementAlgorithm`  |  String  | À valeur unique | `DeriveSharedSecret` |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de `kms:KeyAgreementAlgorithm` condition pour contrôler l'accès à l'[DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)opération en fonction de la valeur du `KeyAgreementAlgorithm` paramètre dans la demande. La seule valeur valide pour `KeyAgreementAlgorithm` est`ECDH`.

Par exemple, la déclaration de politique clé suivante utilise la clé de `kms:KeyAgreementAlgorithm` condition pour refuser tout accès à DeriveSharedSecret moins que ce ne `KeyAgreementAlgorithm` soit le cas`ECDH`.

```
{
       "Effect": "Deny",
       "Principal": {
         "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
       },
       "Action": "kms:DeriveSharedSecret",
       "Resource": "*",
       "Condition": {
            "StringNotEquals": {
               "kms:KeyAgreementAlgorithm": "ECDH"
         }
       }
}
```

**Voir aussi**
+ [km : KeyUsage](#conditions-kms-key-usage)

## km : KeyOrigin
<a name="conditions-kms-key-origin"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyOrigin`  |  String  | À valeur unique |  `CreateKey` Opérations liées aux ressources de clé KMS  |  politiques IAM Politiques de clé et politiques IAM  | 

La clé de condition `kms:KeyOrigin` contrôle l'accès aux opérations en fonction de la valeur de la propriété `Origin` de la clé KMS créée par l'opération ou utilisée dans cette dernière. Elle fonctionne comme une condition de ressource ou une condition de demande.

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération en fonction de la valeur du paramètre [Origin](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Origin) dans la demande. Les valeurs valides pour `Origin` sont `AWS_KMS``AWS_CLOUDHSM`,`EXTERNAL_KEY_STORE`, et`EXTERNAL`. 

Par exemple, vous pouvez créer une clé KMS uniquement lorsque le contenu clé est généré dans AWS KMS (`AWS_KMS`), uniquement lorsque le contenu clé est généré dans un AWS CloudHSM cluster associé à un magasin de [clés personnalisé CloudHSM](key-store-overview.md#custom-key-store-overview) `AWS_CLOUDHSM` (), uniquement lorsque le contenu clé est généré dans [un magasin de clés externe](key-store-overview.md#custom-key-store-overview) `EXTERNAL_KEY_STORE` () ou uniquement lorsque [le matériel clé est](importing-keys.md) importé depuis une source externe (). `EXTERNAL` 

L'exemple de déclaration de politique clé suivant utilise la clé de `kms:KeyOrigin` condition pour créer une clé KMS uniquement lors de la AWS KMS création du matériel clé.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": "kms:CreateKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_KMS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:GenerateDataKeyPair",
        "kms:GenerateDataKeyPairWithoutPlaintext",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_CLOUDHSM"
        }
      }
    }
  ]
}
```

------

Vous pouvez également utiliser la clé de condition `kms:KeyOrigin` pour contrôler l'accès aux opérations qui utilisent ou gèrent une clé KMS en fonction de la propriété `Origin` de la clé KMS utilisée pour l'opération. L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération.

Par exemple, la politique IAM suivante permet aux principaux d'effectuer les opérations de ressources de clé KMS spécifiées, mais uniquement avec les clés KMS du compte qui ont été créées dans un magasin de clés personnalisé.

```
{
  "Effect": "Allow",  
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyWithoutPlaintext",
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext",
    "kms:ReEncrypt*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "AWS_CLOUDHSM"
    }
  }
}
```

**Voir aussi**
+ [km : BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km : KeySpec](#conditions-kms-key-spec)
+ [km : KeyUsage](#conditions-kms-key-usage)

## km : KeySpec
<a name="conditions-kms-key-spec"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:KeySpec`  |  String  | À valeur unique |  `CreateKey` Opérations liées aux ressources de clé KMS |  politiques IAM Politiques de clé et politiques IAM  | 

La clé de condition `kms:KeySpec` contrôle l'accès aux opérations en fonction de la valeur de la propriété `KeySpec` de la clé KMS créée par l'opération ou utilisée dans cette dernière. 

Vous pouvez utiliser cette clé de condition dans une politique IAM pour contrôler l'accès à l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération en fonction de la valeur du [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeySpec)paramètre dans une `CreateKey` demande. Par exemple, vous pouvez utiliser cette condition pour autoriser les utilisateurs à créer uniquement des clés KMS de chiffrement symétriques ou des clés KMS HMAC.

L'exemple d'instruction de politique IAM suivant utilise la clé de condition `kms:KeySpec` pour autoriser les principaux à créer des clés KMS asymétriques RSA uniquement. L'autorisation n'est valide que lorsque la valeur `KeySpec` dans la demande commence par `RSA_`.

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:KeySpec": "RSA_*"
    }
  }
}
```

Vous pouvez également utiliser la clé de condition `kms:KeySpec` pour contrôler l'accès aux opérations qui utilisent ou gèrent une clé KMS en fonction de la propriété `KeySpec` de la clé KMS utilisée pour l'opération. L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération. 

Par exemple, la politique IAM suivante permet aux principaux d'effectuer les opérations de ressources de clé KMS spécifiées, mais uniquement avec les clés KMS de chiffrement symétriques du compte. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeySpec": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Voir aussi**
+ [km : BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms : CustomerMasterKeySpec (obsolète)](#conditions-kms-key-spec-replaced)
+ [km : DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km : KeyOrigin](#conditions-kms-key-origin)
+ [km : KeyUsage](#conditions-kms-key-usage)

## km : KeyUsage
<a name="conditions-kms-key-usage"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyUsage`  |  String  | À valeur unique |  `CreateKey` Opérations liées aux ressources de clé KMS  |  politiques IAM Politiques de clé et politiques IAM  | 

La clé de condition `kms:KeyUsage` contrôle l'accès aux opérations en fonction de la valeur de la propriété `KeyUsage` de la clé KMS créée par l'opération ou utilisée dans cette dernière. 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération en fonction de la valeur du [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeyUsage)paramètre dans la demande. Les valeurs valides pour `KeyUsage` sont `ENCRYPT_DECRYPT``SIGN_VERIFY`,`GENERATE_VERIFY_MAC`, et`KEY_AGREEMENT`.

Par exemple, vous pouvez créer une clé KMS uniquement lorsque `KeyUsage` a pour valeur `ENCRYPT_DECRYPT` ou refuser à un utilisateur cette autorisation lorsque `KeyUsage` a pour valeur `SIGN_VERIFY`. 

L'exemple d'instruction de politique IAM suivant utilise la clé de condition `kms:KeyUsage` pour créer une clé KMS uniquement lorsque le paramètre `KeyUsage` a pour valeur `ENCRYPT_DECRYPT`.

```
{
  "Effect": "Allow",  
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "ENCRYPT_DECRYPT"
    }
  }
}
```

Vous pouvez également utiliser la clé de condition `kms:KeyUsage` pour contrôler l'accès aux opérations qui utilisent ou gèrent une clé KMS en fonction de la propriété `KeyUsage` de la clé KMS utilisée pour l'opération. L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération.

Par exemple, la politique IAM suivante permet aux principaux d'effectuer les opérations de ressources de clé KMS spécifiées, mais uniquement avec les clés KMS du compte qui sont utilisées pour la signature et la vérification.

```
{
  "Effect": "Allow",
  "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:ScheduleKeyDeletion"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "SIGN_VERIFY"
    }
  }
}
```

**Voir aussi**
+ [km : BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms : CustomerMasterKeyUsage (obsolète)](#conditions-kms-key-usage-replaced)
+ [km : KeyOrigin](#conditions-kms-key-origin)
+ [km : KeySpec](#conditions-kms-key-spec)

## km : MacAlgorithm
<a name="conditions-kms-mac-algorithm"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:MacAlgorithm`  |  String  | À valeur unique | `GenerateMac``VerifyMac` |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de `kms:MacAlgorithm` condition pour contrôler l'accès aux [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)opérations [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)et en fonction de la valeur du `MacAlgorithm` paramètre dans la demande. 

L'exemple de politique de clé suivant permet aux utilisateurs qui peuvent endosser le rôle `testers` d'utiliser la clé KMS HMAC pour générer et vérifier les balises HMAC uniquement lorsque l'algorithme MAC de la requête est `HMAC_SHA_384` ou `HMAC_SHA_512`. Cette politique utilise deux instructions de politique distinctes ayant chacune leur propre condition. Si vous spécifiez plusieurs algorithmes MAC dans une seule instruction de condition, la condition nécessite les deux algorithmes, au lieu de l'un ou de l'autre.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_384"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_512"
        }
      }
    }
  ]
}
```

------

**Voir aussi**
+ [km : EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km : SigningAlgorithm](#conditions-kms-signing-algorithm)

## km : MessageType
<a name="conditions-kms-message-type"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:MessageType`  |  String  | À valeur unique |  `Sign` `Verify`  | Politiques de clé et politiques IAM | 

La clé de condition `kms:MessageType` contrôle l'accès aux opérations [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) et [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) en fonction de la valeur du paramètre `MessageType` de la demande. Les valeurs valides pour `MessageType` sont `RAW` et `DIGEST`. 

Par exemple, l'instruction de politique de clé suivante utilise la clé de condition `kms:MessageType` afin d'utiliser une clé KMS asymétrique pour signer un message, mais pas un condensé du message.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:MessageType": "RAW"
    }
  }
}
```

**Voir aussi**
+ [km : SigningAlgorithm](#conditions-kms-signing-algorithm)

## km : MultiRegion
<a name="conditions-kms-multiregion"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegion`  |  Booléen  | À valeur unique |  `CreateKey` Opérations liées aux ressources de clé KMS  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour autoriser les opérations uniquement sur des clés à région unique ou uniquement sur des [clés multi-région](multi-region-keys-overview.md). La clé de `kms:MultiRegion` condition contrôle l'accès aux AWS KMS opérations sur les clés KMS et à l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération en fonction de la valeur de la `MultiRegion` propriété de la clé KMS. Les valeurs valides sont `true` (multi-région) et `false` (région unique). Toutes les clés KMS ont une propriété `MultiRegion`.

Par exemple, l'instruction de politique IAM suivante utilise la clé de condition `kms:MultiRegion` afin d'autoriser les principaux à créer uniquement des clés à région unique. 

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:MultiRegion": false
    }
  }
}
```

## km : MultiRegionKeyType
<a name="conditions-kms-multiregion-key-type"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegionKeyType`  |  String  | À valeur unique |  `CreateKey` Opérations liées aux ressources de clé KMS  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour autoriser les opérations uniquement sur des [clés primaires multi-région](multi-region-keys-overview.md#mrk-primary-key) ou uniquement sur des [clés de réplica multi-région](multi-region-keys-overview.md#mrk-replica-key). La clé de `kms:MultiRegionKeyType` condition contrôle l'accès aux AWS KMS opérations sur les clés KMS et l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération en fonction de la `MultiRegionKeyType` propriété de la clé KMS. Les valeurs valides sont `PRIMARY` et `REPLICA`. Seules les clés multi-région ont une propriété `MultiRegionKeyType`.

En général, vous utilisez la clé de condition `kms:MultiRegionKeyType` dans une politique IAM pour contrôler l'accès à plusieurs clés KMS. Toutefois, comme une clé multi-région donnée peut se changer en primaire ou en réplica, vous devrez peut-être utiliser cette condition dans une politique de clé pour autoriser une opération uniquement lorsque la clé multi-région particulière est une clé primaire ou réplica.

Par exemple, l'instruction de politique IAM suivante utilise la clé de condition `kms:MultiRegionKeyType` pour permettre aux principaux de planifier et d'annuler la suppression des clés uniquement sur les clés de réplica multi-région dans le Compte AWS spécifié. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:MultiRegionKeyType": "REPLICA"
    }
  }
}
```

Pour autoriser ou refuser l'accès à toutes les clés multi-région, vous pouvez utiliser les deux valeurs ou une valeur nulle avec `kms:MultiRegionKeyType`. Cependant, la clé de MultiRegion condition [kms :](#conditions-kms-multiregion) est recommandée à cette fin.

## km : PrimaryRegion
<a name="conditions-kms-primary-region"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:PrimaryRegion`  |  Chaîne (liste)  | À valeur unique |  `UpdatePrimaryRegion`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour limiter les régions de destination dans une [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)opération. Ce sont eux Régions AWS qui peuvent héberger vos clés primaires multirégionales. 

La touche de `kms:PrimaryRegion` condition contrôle l'accès à l'[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)opération en fonction de la valeur du `PrimaryRegion` paramètre. Le `PrimaryRegion` paramètre spécifie la clé Région AWS de [réplique multirégionale qui est promue au rang de clé](multi-region-keys-overview.md#mrk-replica-key) principale. La valeur de la condition est un ou plusieurs Région AWS noms, tels que `us-east-1` ou`ap-southeast-2`, ou des modèles de noms de région, tels que `eu-*`

Par exemple, l'instruction de politique de clé suivante utilise la clé de condition `kms:PrimaryRegion` afin de permettre aux principaux de mettre à jour la région primaire d'une clé multi-région vers une des quatre régions spécifiées.

```
{
  "Effect": "Allow",
  "Action": "kms:UpdatePrimaryRegion",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Developer"
  },
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-east-1",
         "us-west-2",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

## km : ReEncryptOnSameKey
<a name="conditions-kms-reencrypt-on-same-key"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ReEncryptOnSameKey`  |  Booléen  | À valeur unique |  `ReEncrypt`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)opération selon que la demande spécifie ou non une clé KMS de destination identique à celle utilisée pour le chiffrement d'origine. 

Par exemple, l'instruction de politique de clé suivante utilise la clé de condition `kms:ReEncryptOnSameKey` pour rechiffrer uniquement lorsque la clé KMS de destination est identique à celle utilisée pour le chiffrement d'origine.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ReEncrypt*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:ReEncryptOnSameKey": true
    }
  }
}
```

## km : RequestAlias
<a name="conditions-kms-request-alias"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RequestAlias`  |  Chaîne (liste)  | À valeur unique |  [Opérations cryptographiques](kms-cryptography.md#cryptographic-operations) [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour autoriser une opération uniquement lorsque la demande utilise un alias particulier pour identifier la clé KMS. La clé de condition `kms:RequestAlias` contrôle l'accès à une clé KMS utilisée lors d'une opération cryptographique, `GetPublicKey`, ou `DescribeKey` en fonction de l'[alias](kms-alias.md) qui identifie cette clé KMS dans la demande. (Cette condition de politique n'a aucun effet sur l'[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)opération car celle-ci n'utilise pas de clé ou d'alias KMS.) 

Cette condition prend en charge le [contrôle d'accès basé sur les attributs](abac.md) (ABAC) dans AWS KMS, qui vous permet de contrôler l'accès aux clés KMS en fonction des balises et des alias d'une clé KMS. Vous pouvez utiliser des balises et des alias pour autoriser ou refuser l'accès à une clé KMS sans modifier les politiques ou les octrois. Pour plus de détails, veuillez consulter [ABAC pour AWS KMS](abac.md).

Pour spécifier l'alias dans cette condition de politique, utilisez un [nom d'alias](concepts.md#key-id-alias-name), tel que `alias/project-alpha`, ou un modèle de nom d'alias, tel que `alias/*test*`. Vous ne pouvez pas spécifier un [ARN d'alias](concepts.md#key-id-alias-ARN) dans la valeur de cette clé de condition.

Pour satisfaire à cette condition, la valeur du paramètre `KeyId` dans la demande doit être un nom d'alias ou un ARN d'alias correspondant. Si la demande utilise un [identifiant de clé](concepts.md#key-id), elle ne satisfait pas à la condition, même si elle identifie la même clé KMS.

Par exemple, la déclaration de politique clé suivante permet au principal d'appeler l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération sur la clé KMS. Cependant, cela n'est autorisé que lorsque la valeur du paramètre `KeyId` dans la demande est `alias/finance-key` ou un ARN d'alias avec ce nom d'alias, tel que `arn:aws:kms:us-west-2:111122223333:alias/finance-key`.

```
{
  "Sid": "Key policy using a request alias condition",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/developer"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RequestAlias": "alias/finance-key"
    }
  }
}
```

Vous ne pouvez pas utiliser cette clé de condition pour contrôler l'accès aux opérations d'alias, telles que [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)ou [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html). Pour de plus amples informations sur le contrôle de l'accès aux opérations d'alias, veuillez consulter [Contrôle de l'accès aux alias](alias-access.md).

## km : ResourceAliases
<a name="conditions-kms-resource-aliases"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ResourceAliases`  |  Chaîne (liste)  | Multi-valeurs | Opérations liées aux ressources de clé KMS |  Politiques IAM uniquement  | 

Utilisez cette clé de condition pour contrôler l'accès à une clé KMS en fonction des [alias](kms-alias.md) associés à la clé KMS. L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération.

Cette condition prend en charge le contrôle d'accès basé sur les attributs (ABAC) dans AWS KMS. Avec l'ABAC, vous pouvez contrôler l'accès aux clés KMS en fonction des balises attribuées à une clé KMS et des alias associés à une clé KMS. Vous pouvez utiliser des balises et des alias pour autoriser ou refuser l'accès à une clé KMS sans modifier les politiques ou les octrois. Pour plus de détails, veuillez consulter [ABAC pour AWS KMS](abac.md).

Un alias doit être unique dans une région Compte AWS et, mais cette condition vous permet de contrôler l'accès à plusieurs clés KMS dans la même région (à l'aide de l'opérateur Régions AWS de `StringLike` comparaison) ou à plusieurs clés KMS dans différents comptes.

**Note**  
La ResourceAliases condition [kms :](#conditions-kms-resource-aliases) n'est effective que lorsque la clé KMS est conforme aux [alias par quota de clé KMS](resource-limits.md#aliases-per-key). Si une clé KMS dépasse ce quota, les principaux autorisés à utiliser la clé KMS par la condition `kms:ResourceAliases` se voient refuser l'accès à la clé KMS.

Pour spécifier l'alias dans cette condition de politique, utilisez un [nom d'alias](concepts.md#key-id-alias-name), tel que `alias/project-alpha`, ou un modèle de nom d'alias, tel que `alias/*test*`. Vous ne pouvez pas spécifier un [ARN d'alias](concepts.md#key-id-alias-ARN) dans la valeur de cette clé de condition. Pour satisfaire à cette condition, la clé KMS utilisée dans l'opération doit avoir l'alias spécifié. Peu importe si ou comment la clé KMS est identifiée dans la demande pour l'opération.

Il s'agit d'une clé de condition multi-valeurs qui compare l'ensemble d'alias associé à une clé KMS à l'ensemble d'alias de la politique. Pour déterminer comment ces ensembles sont comparés, vous devez fournir un opérateur d'ensemble `ForAnyValue` ou `ForAllValues` dans la condition de politique. Pour plus de détails sur les opérateurs d'ensemble, veuillez consulter [Utilisation de plusieurs clés et valeurs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) dans le Guide de l'utilisateur IAM.
+ ForAnyValue: Au moins un alias associé à la clé KMS doit correspondre à un alias figurant dans la condition de politique. D'autres alias sont autorisés. Si la clé KMS n'a pas d'alias, la condition n'est pas remplie.
+ ForAllValues: Chaque alias associé à la clé KMS doit correspondre à un alias indiqué dans la politique. Cet opérateur d'ensemble limite les alias associés à la clé KMS à ceux de la condition de politique. Il ne nécessite aucun alias, mais il interdit les alias non spécifiés.

Par exemple, la déclaration de politique IAM suivante permet au principal d'appeler l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération sur n'importe quelle clé KMS spécifiée Compte AWS associée à l'`finance-key`alias. (Les politiques de clé des clés KMS affectées doivent également permettre au compte du principal de les utiliser pour cette opération.) Pour indiquer que la condition est remplie lorsque l'un des nombreux alias qui peuvent être associés à la clé KMS est `alias/finance-key`, la condition utilise l'opérateur d'ensemble `ForAnyValue`. 

Puisque la condition `kms:ResourceAliases` est basée sur la ressource et non pas sur la demande, un appel vers `GenerateDataKey` réussit pour toute clé KMS associée à l'alias `finance-key`, même si la demande utilise un [ID de clé](concepts.md#key-id-key-id) ou un [ARN de clé](concepts.md#key-id-key-ARN) pour identifier la clé KMS. 

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": "kms:GenerateDataKey",
  "Resource": [
    "arn:aws:kms:*:111122223333:key/*",
    "arn:aws:kms:*:444455556666:key/*"
  ],
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:ResourceAliases": "alias/finance-key"
    }
  }
}
```

L'exemple suivant de politique IAM permet au principal d'activer et de désactiver les clés KMS, mais uniquement lorsque tous les alias des clés KMS incluent « `Test` ». Cette instruction de politique utilise deux conditions. La condition avec l'opérateur d'ensemble `ForAllValues` exige que tous les alias associés à la clé KMS incluent « Test ». La condition avec l'opérateur d'ensemble `ForAnyValue` exige que la clé KMS ait au moins un alias avec « Test ». Sans la condition `ForAnyValue`, cette instruction de politique aurait autorisé le principal à utiliser les clés KMS sans alias.

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": [
    "kms:EnableKey",
    "kms:DisableKey"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "ForAllValues:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    },
    "ForAnyValue:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    }
  }
}
```

## km : ReplicaRegion
<a name="conditions-kms-replica-region"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ReplicaRegion`  |  Chaîne (liste)  | À valeur unique |  `ReplicateKey`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour limiter la Régions AWS capacité d'un principal à répliquer une clé [multirégionale.](multi-region-keys-overview.md) La clé de `kms:ReplicaRegion` condition contrôle l'accès à l'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération en fonction de la valeur du [ReplicaRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)paramètre dans la demande. Ce paramètre spécifie la Région AWS pour la nouvelle [clé de réplica](multi-region-keys-overview.md#mrk-replica-key). 

La valeur de la condition est un ou plusieurs Région AWS noms, tels que `us-east-1` ou`ap-southeast-2`, ou des modèles de noms, tels que`eu-*`. Pour obtenir la liste des noms de Régions AWS ces AWS KMS supports, consultez la section [AWS Key Management Service Points de terminaison et quotas](https://docs.aws.amazon.com/general/latest/gr/kms.html) dans le Références générales AWS.

Par exemple, la déclaration de politique clé suivante utilise la clé de `kms:ReplicaRegion` condition pour permettre aux principaux d'appeler l'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)opération uniquement lorsque la valeur du `ReplicaRegion` paramètre est l'une des régions spécifiées.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:ReplicateKey"
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ReplicaRegion": [ 
         "us-east-1",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

Cette clé de condition contrôle uniquement l'accès à l'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)opération. Pour contrôler l'accès à l'[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)opération, utilisez la clé de PrimaryRegion condition [kms :](#conditions-kms-primary-region).

## km : RetiringPrincipal
<a name="conditions-kms-retiring-principal"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RetiringPrincipal`  |  Chaîne (liste)  | À valeur unique |  `CreateGrant`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour contrôler l'accès à l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération en fonction de la valeur du [RetiringPrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)paramètre dans la demande. Par exemple, vous pouvez créer des octrois d'utilisation d'une clé KMS uniquement lorsque le `RetiringPrincipal` de la demande `CreateGrant` correspond au `RetiringPrincipal` spécifié dans l'instruction de condition.

Pour spécifier le principal sortant, utilisez le Amazon Resource Name (ARN) d'un AWS principal. Les principaux valides incluent les utilisateurs IAM Comptes AWS, les rôles IAM, les utilisateurs fédérés et les utilisateurs des rôles assumés. Pour obtenir de l'aide sur la syntaxe ARN d'un principal, consultez la section [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) dans le guide de l'*utilisateur IAM*.

L'exemple de déclaration de politique clé suivant permet à un utilisateur de créer des autorisations pour la clé KMS. La clé de `kms:RetiringPrincipal` condition restreint l'autorisation aux `CreateGrant` demandes pour lesquelles le principal sortant de la subvention est le. `LimitedAdminRole`

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Voir aussi**
+ [km : GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km : GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km : GrantOperations](#conditions-kms-grant-operations)
+ [km : GranteePrincipal](#conditions-kms-grantee-principal)

## km : RotationPeriodInDays
<a name="conditions-kms-rotation-period-in-days"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RotationPeriodInDays`  |  Numérique  | À valeur unique |  `EnableKeyRotation`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour limiter les valeurs que les principaux peuvent spécifier dans le `RotationPeriodInDays` paramètre d'une [EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)demande.

`RotationPeriodInDays`Spécifie le nombre de jours entre chaque date de rotation automatique des clés. AWS KMS vous permet de spécifier une période de rotation comprise entre 90 et 2560 jours, mais vous pouvez utiliser la clé de `kms:RotationPeriodInDays` condition pour restreindre davantage la période de rotation, par exemple en imposant une période de rotation minimale dans la plage valide.

Par exemple, la déclaration de politique clé suivante utilise la clé de `kms:RotationPeriodInDays` condition pour empêcher les directeurs d'activer la rotation des clés si la période de rotation est inférieure ou égale à 180 jours.

```
{
  "Effect": "Deny",
  "Action": "kms:EnableKeyRotation",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:RotationPeriodInDays" : "180"
      }
  }
}
```

## km : ScheduleKeyDeletionPendingWindowInDays
<a name="conditions-kms-schedule-key-deletion-pending-window-in-days"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ScheduleKeyDeletionPendingWindowInDays`  |  Numérique  | À valeur unique |  `ScheduleKeyDeletion`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser cette clé de condition pour limiter les valeurs que les principaux peuvent spécifier dans le `PendingWindowInDays` paramètre d'une [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)demande.

`PendingWindowInDays`Spécifie le nombre de jours à AWS KMS attendre avant de supprimer une clé. AWS KMS vous permet de spécifier une période d'attente comprise entre 7 et 30 jours, mais vous pouvez utiliser la clé de `kms:ScheduleKeyDeletionPendingWindowInDays` condition pour limiter davantage la période d'attente, par exemple en imposant une période d'attente minimale comprise dans la plage valide.

Par exemple, l'instruction de politique de clé suivante utilise la clé de condition `kms:ScheduleKeyDeletionPendingWindowInDays` pour empêcher les principaux de planifier la suppression des clés si le délai d'attente est inférieur ou égal à 21 jours.

```
{
  "Effect": "Deny",
  "Action": "kms:ScheduleKeyDeletion",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:ScheduleKeyDeletionPendingWindowInDays" : "21"
      }
  }
}
```

## km : SigningAlgorithm
<a name="conditions-kms-signing-algorithm"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:SigningAlgorithm`  |  String  | À valeur unique |  `Sign`  `Verify`  |  Politiques de clé et politiques IAM  | 

Vous pouvez utiliser la clé de `kms:SigningAlgorithm` condition pour contrôler l'accès aux opérations de [signature](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) et de [vérification](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) en fonction de la valeur du [SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-SigningAlgorithm)paramètre dans la demande. Cette clé de condition n'a aucun effet sur les opérations effectuées en dehors de AWS KMS, telles que la vérification des signatures avec la clé publique dans une paire de clés KMS asymétrique en dehors de AWS KMS.

L'exemple de politique de clé suivant permet aux utilisateurs pouvant endosser le rôle `testers` d'utiliser la clé KMS pour signer des messages uniquement lorsque l'algorithme de signature utilisé pour la demande est un algorithme RSASSA\$1PSS, tel que `RSASSA_PSS_SHA512`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/testers"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:SigningAlgorithm": "RSASSA_PSS*"
    }
  }
}
```

**Voir aussi**
+ [km : EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km : MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km : MessageType](#conditions-kms-message-type)

## km : ValidTo
<a name="conditions-kms-valid-to"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ValidTo`  |  Horodatage  | À valeur unique |  `ImportKeyMaterial`  |  Politiques de clé et politiques IAM  | 

La clé de `kms:ValidTo` condition contrôle l'accès à l'[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)opération en fonction de la valeur du [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)paramètre dans la demande, qui détermine la date d'expiration du matériel clé importé. La valeur est exprimée en [heure Unix](https://en.wikipedia.org/wiki/Unix_time).

Par défaut, le paramètre `ValidTo` est obligatoire dans une demande `ImportKeyMaterial`. Toutefois, si la valeur du [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)paramètre est`KEY_MATERIAL_DOES_NOT_EXPIRE`, le `ValidTo` paramètre n'est pas valide. Vous pouvez également utiliser la clé de ExpirationModel condition [kms :](#conditions-kms-expiration-model) pour demander le `ExpirationModel` paramètre ou une valeur de paramètre spécifique.

L'exemple d'instruction de politique suivant autorise un utilisateur à importer des éléments de clé dans une clé KMS. La clé de condition `kms:ValidTo` limite l'autorisation aux requêtes `ImportKeyMaterial` où la valeur `ValidTo` est inférieure ou égale à `1546257599.0` (31 décembre 2018 11:59:59 PM). 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "NumericLessThanEquals": {
      "kms:ValidTo": "1546257599.0"
    }
  }
}
```

**Voir aussi**
+ [km : ExpirationModel](#conditions-kms-expiration-model) 
+ [km : WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km : WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km : ViaService
<a name="conditions-kms-via-service"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:ViaService`  |  String  | À valeur unique |  Opérations liées aux ressources de clé KMS  |  Politiques de clé et politiques IAM  | 

La clé de `kms:ViaService` condition limite l'utilisation d'une clé KMS aux demandes spécifiées Services AWS. Cette clé de condition s'applique uniquement aux [sessions d'accès avancé](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Vous pouvez spécifier un ou plusieurs services dans chaque clé de condition `kms:ViaService`. L'opération doit être une *opération de ressource de clé KMS*, c'est-à-dire une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la table [Actions and Resources (Actions et ressources)](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de `KMS key` dans la colonne `Resources` de l'opération.

Par exemple, l'instruction de politique de clé suivante utilise la clé de condition `kms:ViaService` pour autoriser l'utilisation d'une [clé gérée par le client](concepts.md#customer-mgn-key) pour les actions spécifiées uniquement lorsque la demande provient d'Amazon EC2 ou Amazon RDS dans la région USA Ouest (Oregon), au nom de `ExampleRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
        "ec2.us-west-2.amazonaws.com",
        "rds.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

Vous pouvez également utiliser une clé de condition `kms:ViaService` pour refuser l'autorisation d'utiliser une clé KMS lorsque la demande provient de services particuliers. Par exemple, l'instruction suivante de politique d'une politique de clé utilise une clé de condition `kms:ViaService` pour empêcher une clé gérée par le client d'être utilisée pour les opérations `Encrypt` lorsque la demande provient de AWS Lambda au nom de `ExampleRole`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt"    
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
          "lambda.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**Important**  
Lorsque vous utilisez la clé de condition `kms:ViaService`, le service effectue la demande au nom d'un principal dans le Compte AWS. Ces principaux doivent disposer des autorisations suivantes :  
Autorisation d'utiliser la clé KMS. Le principal doit accorder ces autorisations au service intégré pour que celui-ci puisse utiliser la clé gérée par le client au nom du principal. Pour de plus amples informations, veuillez consulter [Utilisation du AWS KMS chiffrement avec les AWS services](service-integration.md).
L'autorisation d'utiliser le service intégré. Pour en savoir plus sur l'accès des utilisateurs à un AWS service intégré AWS KMS, consultez la documentation du service intégré.

Toutes les [Clés gérées par AWS](concepts.md#aws-managed-key) utilisent une clé de condition `kms:ViaService` dans leur document de politique de clé. Cette condition permet à la clé KMS d'être utilisée uniquement pour les demandes qui proviennent du service qui a créé la clé KMS. Pour voir la politique clé d'un Clé gérée par AWS, utilisez l'[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)opération. 

La clé de condition `kms:ViaService` est valide dans les instructions de la politique IAM et de la politique de clé. Les services que vous spécifiez doivent être [intégrés à AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) et prendre en charge la clé de condition `kms:ViaService`.

### Services prenant en charge la clé de condition `kms:ViaService`
<a name="viaService_table"></a>

Le tableau suivant répertorie les AWS services intégrés à la clé de `kms:ViaService` condition dans les clés gérées par le client AWS KMS et prenant en charge son utilisation. Les services de ce tableau peuvent ne pas être disponibles dans toutes les régions. Utilisez le `.amazonaws.com` suffixe du AWS KMS ViaService nom dans toutes les AWS partitions.

**Note**  
Il peut être nécessaire de faire défiler horizontalement ou verticalement pour afficher toutes les données de ce tableau.


| Nom du service | AWS KMS ViaService nom | 
| --- | --- | 
| Opération d’IA Amazon | aiops.AWS\$1region.amazonaws.com | 
| AWS App Runner | apprunner.AWS\$1region.amazonaws.com | 
| AWS AppFabric | appfabric.AWS\$1region.amazonaws.com | 
| Amazon AppFlow | appflow.AWS\$1region.amazonaws.com | 
| AWS Application Migration Service | mgn.AWS\$1region.amazonaws.com | 
| Amazon Athena | athena.AWS\$1region.amazonaws.com | 
| AWS Audit Manager | auditmanager.AWS\$1region.amazonaws.com | 
| Amazon Aurora | rds.AWS\$1region.amazonaws.com | 
| AWS Backup | backup.AWS\$1region.amazonaws.com | 
| Passerelle AWS Backup  | backup-gateway.AWS\$1region.amazonaws.com | 
| Copie du modèle Amazon Bedrock | bedrock.AWS\$1region.amazonaws.com | 
| Kit SDK Amazon Chime | chimevoiceconnector.AWS\$1region.amazonaws.com | 
| AWS Clean Rooms ML | cleanrooms-ml.AWS\$1region.amazonaws.com | 
| AWS CodeArtifact | codeartifact.AWS\$1region.amazonaws.com | 
|  CodeGuru Réviseur Amazon | codeguru-reviewer.AWS\$1region.amazonaws.com | 
| Amazon Comprehend | comprehend.AWS\$1region.amazonaws.com | 
| Amazon Connect | connect.AWS\$1region.amazonaws.com | 
| Profils des clients Amazon Connect | profile.AWS\$1region.amazonaws.com | 
| Amazon Q in Connect | wisdom.AWS\$1region.amazonaws.com | 
| AWS Database Migration Service (AWS DMS) | dms.AWS\$1region.amazonaws.com | 
| AWS DeepRacer | deepracer.AWS\$1region.amazonaws.com | 
| AWS Directory Service | directoryservice.AWS\$1region.amazonaws.com | 
| Amazon DocumentDB | docdb-elastic.AWS\$1region.amazonaws.com | 
| Amazon DynamoDB | dynamodb.AWS\$1region.amazonaws.com | 
| Amazon EC2 Systems Manager (SSM) | ssm.AWS\$1region.amazonaws.com | 
| Amazon Elastic Block Store (Amazon EBS) | ec2.AWS\$1region.amazonaws.com (EBS uniquement) | 
| Amazon Elastic Container Registry (Amazon ECR) | ecr.AWS\$1region.amazonaws.com | 
| Amazon Elastic File System (Amazon EFS) | elasticfilesystem.AWS\$1region.amazonaws.com | 
| Amazon ElastiCache |  Incluez les deux ViaService noms dans la valeur de la clé de condition : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/conditions-kms.html)  | 
| AWS Elemental MediaTailor | mediatailor.AWS\$1region.amazonaws.com | 
| AWS Résolution de l'entité | entityresolution.AWS\$1region.amazonaws.com | 
| Amazon EventBridge | events.AWS\$1region.amazonaws.com | 
| Amazon FinSpace | finspace.AWS\$1region.amazonaws.com | 
| Amazon Forecast | forecast.AWS\$1region.amazonaws.com | 
| Amazon FSx | fsx.AWS\$1region.amazonaws.com | 
| AWS Glue | glue.AWS\$1region.amazonaws.com | 
| AWS Ground Station | groundstation.AWS\$1region.amazonaws.com | 
| Amazon GuardDuty | malware-protection.AWS\$1region.amazonaws.com | 
| AWS HealthLake | healthlake.AWS\$1region.amazonaws.com | 
| AWS IoT SiteWise | iotsitewise.AWS\$1region.amazonaws.com | 
| Amazon Kendra | kendra.AWS\$1region.amazonaws.com | 
| Amazon Keyspaces (pour Apache Cassandra) | cassandra.AWS\$1region.amazonaws.com | 
| Amazon Kinesis | kinesis.AWS\$1region.amazonaws.com | 
| Amazon Data Firehose | firehose.AWS\$1region.amazonaws.com | 
| Amazon Kinesis Video Streams | kinesisvideo.AWS\$1region.amazonaws.com | 
| AWS Lambda | lambda.AWS\$1region.amazonaws.com | 
| Amazon Lex | lex.AWS\$1region.amazonaws.com | 
| AWS License Manager | license-manager.AWS\$1region.amazonaws.com | 
| Amazon Location Service | geo.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Equipment | lookoutequipment.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Metrics | lookoutmetrics.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Vision | lookoutvision.AWS\$1region.amazonaws.com | 
| Amazon Macie | macie.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization | m2.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization Tests d'applications | apptest.AWS\$1region.amazonaws.com | 
| Amazon Managed Blockchain | managedblockchain.AWS\$1region.amazonaws.com | 
| Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka.AWS\$1region.amazonaws.com | 
| Amazon Managed Workflows for Apache Airflow (MWAA) | airflow.AWS\$1region.amazonaws.com | 
| Amazon MemoryDB | memorydb.AWS\$1region.amazonaws.com | 
| Amazon Monitron | monitron.AWS\$1region.amazonaws.com | 
| Amazon MQ | mq.AWS\$1region.amazonaws.com | 
| Amazon Neptune | rds.AWS\$1region.amazonaws.com | 
| Amazon Nimble Studio | nimble.AWS\$1region.amazonaws.com | 
| AWS HealthOmics | omics.AWS\$1region.amazonaws.com | 
| Amazon OpenSearch Service | es.AWS\$1region.amazonaws.com, aoss.AWS\$1region.amazonaws.com | 
|  OpenSearch Forfaits personnalisés Amazon | custom-packages.AWS\$1region.amazonaws.com | 
| AWS Proton | proton.AWS\$1region.amazonaws.com | 
| Amazon Quantum Ledger Database (Amazon QLDB) | qldb.AWS\$1region.amazonaws.com | 
| Analyse des performances d’Amazon RDS | rds.AWS\$1region.amazonaws.com | 
| Amazon Redshift | redshift.AWS\$1region.amazonaws.com | 
| Ouvrez l'éditeur de requête V2 Amazon Redshift. | sqlworkbench.AWS\$1region.amazonaws.com | 
| Amazon Redshift Serverless | redshift-serverless.AWS\$1region.amazonaws.com | 
| Amazon Rekognition | rekognition.AWS\$1region.amazonaws.com | 
| Amazon Relational Database Service (Amazon RDS) | rds.AWS\$1region.amazonaws.com | 
| Stockage de données répliquées Amazon | ards.AWS\$1region.amazonaws.com | 
| Amazon SageMaker AI | sagemaker.AWS\$1region.amazonaws.com | 
| AWS Secrets Manager | secretsmanager.AWS\$1region.amazonaws.com | 
| Amazon Security Lake | securitylake.AWS\$1region.amazonaws.com | 
| Amazon Simple Email Service (Amazon SES) | ses.AWS\$1region.amazonaws.com | 
| Amazon Simple Notiﬁcation Service (Amazon SNS) | sns.AWS\$1region.amazonaws.com | 
| Amazon Simple Queue Service (Amazon SQS) | sqs.AWS\$1region.amazonaws.com | 
| Amazon Simple Storage Service (Amazon S3) | s3.AWS\$1region.amazonaws.com | 
| Tables Amazon S3 | s3tables.AWS\$1region.amazonaws.com | 
| AWS Snowball Edge | importexport.AWS\$1region.amazonaws.com | 
| AWS Step Functions | states.AWS\$1region.amazonaws.com | 
| AWS Storage Gateway | storagegateway.AWS\$1region.amazonaws.com | 
| AWS Systems Manager Incident Manager | ssm-incidents.AWS\$1region.amazonaws.com | 
| AWS Systems Manager Incident Manager Contacts | ssm-contacts.AWS\$1region.amazonaws.com | 
| Amazon Timestream | timestream.AWS\$1region.amazonaws.com | 
| Amazon Translate | translate.AWS\$1region.amazonaws.com | 
| Accès vérifié par AWS | verified-access.AWS\$1region.amazonaws.com | 
| Amazon WorkMail | workmail.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces | workspaces.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Thin Client | thinclient.AWS\$1region.amazonaws.com | 
|  WorkSpaces Site Web d'Amazon | workspaces-web.AWS\$1region.amazonaws.com | 
| AWS X-Ray | xray.AWS\$1region.amazonaws.com | 

## km : WrappingAlgorithm
<a name="conditions-kms-wrapping-algorithm"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingAlgorithm`  |  String  | À valeur unique |  `GetParametersForImport`  |  Politiques de clé et politiques IAM  | 

Cette clé de condition contrôle l'accès à l'[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)opération en fonction de la valeur du [WrappingAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingAlgorithm)paramètre dans la demande. Vous pouvez utiliser cette condition pour exiger des principaux qu'ils utilisent un algorithme particulier pour chiffrer des matériaux clé au cours du processus d'importation. Les demandes de clé publique requise et du jeton d'importation échouent lorsqu'un algorithme d'encapsulage est spécifié.

L'exemple d'instruction de politique de clé suivant utilise la clé de condition `kms:WrappingAlgorithm` pour donner à l'utilisateur de l'exemple l'autorisation d'appeler l'opération `GetParametersForImport`, mais l'empêche d'utiliser l'algorithme d'encapsulage `RSAES_OAEP_SHA_1`. Lorsque `WrappingAlgorithm` dans la requête `GetParametersForImport` indique `RSAES_OAEP_SHA_1`, l'opération échoue.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1"
    }
  }
}
```

**Voir aussi**
+ [km : ExpirationModel](#conditions-kms-expiration-model)
+ [km : ValidTo](#conditions-kms-valid-to)
+ [km : WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km : WrappingKeySpec
<a name="conditions-kms-wrapping-key-spec"></a>


| AWS KMS clés de condition | Type de condition | Type de la valeur | opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingKeySpec`  |  String  | À valeur unique |  `GetParametersForImport`  |  Politiques de clé et politiques IAM  | 

Cette clé de condition contrôle l'accès à l'[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)opération en fonction de la valeur du [WrappingKeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingKeySpec)paramètre dans la demande. Vous pouvez utiliser cette condition pour exiger des principaux qu'ils utilisent un type particulier de clé publique au cours du processus d'importation. Si la requête spécifie un autre type de clé, elle échoue.

Étant donné que la seule valeur valide comme valeur du paramètre `WrappingKeySpec` est `RSA_2048`, les utilisateurs ne peuvent pas employer cette valeur de façon efficace, ce qui les empêche d'utiliser l'opération `GetParametersForImport`. 

L'exemple d'instruction de politique suivant utilise la clé de condition `kms:WrappingAlgorithm` pour exiger que la valeur du paramètre `WrappingKeySpec` de la demande soit `RSA_4096`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:WrappingKeySpec": "RSA_4096"
    }
  }
}
```

**Voir aussi**
+ [km : ExpirationModel](#conditions-kms-expiration-model)
+ [km : ValidTo](#conditions-kms-valid-to)
+ [km : WrappingAlgorithm](#conditions-kms-wrapping-algorithm)

# AWS KMS clés de condition pour les plateformes certifiées
<a name="conditions-attestation"></a>

AWS KMS fournit des clés de condition pour prendre en charge l'attestation cryptographique pour [AWS Nitro Enclaves et NitroTPM](https://docs.aws.amazon.com/enclaves/latest/user/). AWS Nitro Enclaves est une fonctionnalité Amazon EC2 qui vous permet de créer des environnements informatiques isolés [appelés](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-enclave) enclaves pour protéger et traiter des données hautement sensibles. NitroTPM étend des fonctionnalités d'attestation similaires aux instances EC2.

Lorsque vous appelez les opérations [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html), [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret), [GenerateDataKey[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), ou [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)API avec un document d'attestation signé, celles-ci APIs chiffrent le texte en clair de la réponse sous la clé publique du document d'attestation et renvoient du texte chiffré au lieu du texte en clair. Ce texte chiffré peut être déchiffré uniquement à l'aide de la clé privée dans l'enclave. Pour de plus amples informations, veuillez consulter [Support des attestations cryptographiques dans AWS KMS](cryptographic-attestation.md).

**Note**  
Si vous ne fournissez pas de politique clé lorsque vous créez une AWS KMS clé, AWS créez-en une pour vous. Cette [politique de clé par défaut](key-policy-default.md) accorde au Comptes AWS propriétaire de la clé KMS un accès complet à la clé et permet au compte d'utiliser les politiques IAM pour autoriser l'accès à la clé. Cette politique autorise toutes les actions telles que le [déchiffrement.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) AWS recommande d'appliquer le principe de [Autorisations relatives au moindre privilège](least-privilege.md) à vos politiques clés KMS. Vous pouvez également restreindre l'accès en [modifiant l'action de politique clé KMS](key-policy-modifying.md) pour `kms:*` to`[NotAction:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html)kms:Decrypt`.

Les clés de condition suivantes vous permettent de limiter les autorisations pour ces opérations en fonction du contenu du document d'attestation signé. Avant d'autoriser une opération, AWS KMS compare le document d'attestation aux valeurs de ces clés de AWS KMS condition.

# Clés de condition pour Nitro Enclaves
<a name="conditions-nitro-enclave"></a>

Les clés de condition suivantes sont spécifiques à l'attestation de Nitro Enclaves :

## km RecipientAttestation : ImageSha 384
<a name="conditions-kms-recipient-image-sha"></a>


| AWS KMS Clés de condition | Type de condition | Type de la valeur | Opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:ImageSha384`  |  String  | À valeur unique |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Politiques de clé et politiques IAM  | 

La clé de `kms:RecipientAttestation:ImageSha384` condition contrôle l'accès à `Decrypt``DeriveSharedSecret`,`GenerateDataKey`,`GenerateDataKeyPair`, et `GenerateRandom` avec une clé KMS lorsque le résumé d'image du document d'attestation signé dans la demande correspond à la valeur de la clé de condition. La `ImageSha384` valeur correspond à celle indiquée PCR0 dans le document d'attestation. Cette clé de condition n'est effective que lorsque le `Recipient` paramètre de la demande spécifie un document d'attestation signé pour une enclave AWS Nitro.

Cette valeur est également incluse dans les [CloudTrailévénements relatifs](ct-nitro-enclave.md) aux demandes adressées AWS KMS aux enclaves Nitro.

Par exemple, la déclaration de politique clé suivante autorise le `data-processing` rôle à utiliser la clé KMS pour les [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)opérations de [déchiffrement [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html), [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html), et. La clé de `kms:RecipientAttestation:ImageSha384` condition autorise les opérations uniquement lorsque la valeur de résumé d'image (PCR0) du document d'attestation dans la demande correspond à la valeur de résumé d'image dans la condition. Cette clé de condition n'est effective que lorsque le `Recipient` paramètre de la demande spécifie un document d'attestation signé pour une enclave AWS Nitro.

Si la demande n'inclut pas de document d'attestation valide provenant d'une enclave AWS Nitro, l'autorisation est refusée car cette condition n'est pas remplie.

```
{
  "Sid" : "Enable enclave data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DeriveSharedSecret",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyPair",
    "kms:GenerateRandom"
  ],
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:ImageSha384": "9fedcba8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef1abcdef0abcdef1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef99"
    }
  }
}
```

## km : : PCR RecipientAttestation <PCR\$1ID>
<a name="conditions-kms-recipient-pcrs"></a>


| AWS KMS Clés de condition | Type de condition | Type de la valeur | Opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:PCR<PCR_ID>`  |  String  | À valeur unique |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Politiques de clé et politiques IAM  | 

La clé de `kms:RecipientAttestation:PCR<PCR_ID>` condition contrôle l'accès à`Decrypt`,`DeriveSharedSecret`, `GenerateDataKey``GenerateDataKeyPair`, et `GenerateRandom` avec une clé KMS uniquement lorsque les enregistrements de configuration de la plate-forme (PCRs) à partir du document d'attestation signé dans la demande correspondent PCRs à ceux de la clé de condition. Cette clé de condition n'est effective que lorsque le `Recipient` paramètre de la demande spécifie un document d'attestation signé provenant d'une enclave AWS Nitro.

Cette valeur est également incluse dans les [CloudTrailévénements](ct-nitro-enclave.md) qui représentent des demandes adressées à AWS KMS des enclaves Nitro.

Pour spécifier une valeur PCR, utilisez le format suivant. Concaténez l'ID de PCR au nom de clé de condition. Vous pouvez spécifier un identifiant PCR identifiant l'une des [six mesures de l'enclave](https://docs.aws.amazon.com/enclaves/latest/user/set-up-attestation.html#where) ou un identifiant PCR personnalisé que vous avez défini pour un cas d'utilisation spécifique. La valeur PCR doit être une chaîne hexadécimale en minuscules de 96 octets maximum.

```
"kms:RecipientAttestation:PCRPCR_ID": "PCR_value"
```

Par exemple, la clé de condition suivante spécifie une valeur particulière pour PCR1, qui correspond au hachage du noyau utilisé pour l'enclave et le processus d'amorçage.

```
kms:RecipientAttestation:PCR1: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

Par exemple, l'instruction de stratégie de clé suivante autorise le rôle `data-processing` à utiliser la clé KMS pour l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html).

La clé de `kms:RecipientAttestation:PCR` condition contenue dans cette instruction autorise l'opération uniquement lorsque la PCR1 valeur du document d'attestation signé dans la demande correspond à la `kms:RecipientAttestation:PCR1` valeur de la condition. Utilisez l'opérateur de politique `StringEqualsIgnoreCase` pour exiger une comparaison insensible à la casse des valeurs PCR.

Si la demande n'inclut pas de document d'attestation, l'autorisation est refusée car cette condition n'est pas remplie.

```
{
  "Sid" : "Enable enclave data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": "kms:Decrypt",
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:PCR1": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87"
    }
  }
}
```

# Clés de condition pour NitroTPM
<a name="conditions-nitro-tpm"></a>

Les clés de condition suivantes sont spécifiques à l'attestation NitroTPM :

## kms : : Nitro PMPCR RecipientAttestation <PCR\$1ID>
<a name="conditions-kms-recipient-nitro-tpm-pcrs"></a>


| AWS KMS Clés de condition | Type de condition | Type de la valeur | Opérations d’API | Type de politique | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:NitroTPMPCR<PCR_ID>`  |  String  | À valeur unique |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Politiques de clé et politiques IAM  | 

La clé de `kms:RecipientAttestation:NitroTPMPCR<PCR_ID>` condition contrôle l'accès à`Decrypt`,`DeriveSharedSecret`, `GenerateDataKey``GenerateDataKeyPair`, et `GenerateRandom` avec une clé KMS uniquement lorsque les enregistrements de configuration de la plate-forme (PCRs) à partir du document d'attestation signé dans la demande correspondent PCRs à ceux de la clé de condition. Cette clé de condition n'est effective que lorsque le `Recipient` paramètre de la demande spécifie un document d'attestation signé par NitroTPM.

Cette valeur est également incluse dans les [CloudTrailévénements](ct-nitro-tpm.md) qui représentent des demandes adressées à AWS KMS NitroTPM.

Pour spécifier une valeur PCR, utilisez le format suivant. Concaténez l'ID de PCR au nom de clé de condition. La valeur PCR doit être une chaîne hexadécimale en minuscules de 96 octets maximum.

```
"kms:RecipientAttestation:NitroTPMPCRPCR_ID": "PCR_value"
```

Par exemple, la clé de condition suivante spécifie une valeur particulière pour PCR4 :

```
kms:RecipientAttestation:NitroTPMPCR4: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

Par exemple, l'instruction de stratégie de clé suivante autorise le rôle `data-processing` à utiliser la clé KMS pour l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html).

La clé de `kms:RecipientAttestation:NitroTPMPCR` condition contenue dans cette instruction autorise l'opération uniquement lorsque la PCR4 valeur du document d'attestation signé dans la demande correspond à la `kms:RecipientAttestation:NitroTPMPCR4` valeur de la condition. Utilisez l'opérateur de politique `StringEqualsIgnoreCase` pour exiger une comparaison insensible à la casse des valeurs PCR.

Si la demande n'inclut pas de document d'attestation, l'autorisation est refusée car cette condition n'est pas remplie.

```
{
  "Sid" : "Enable NitroTPM data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": "kms:Decrypt",
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:NitroTPMPCR4": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87"
    }
  }
}
```

# Autorisations relatives au moindre privilège
<a name="least-privilege"></a>

Étant donné que vos clés KMS protègent les informations sensibles, nous vous recommandons de suivre le principe de l'accès le moins privilégié. Déléguez les autorisations minimales requises pour effectuer une tâche lorsque vous définissez vos politiques clés. N'autorisez toutes les actions (`kms:*`) sur une politique de clé KMS que si vous prévoyez de restreindre davantage les autorisations avec des politiques IAM supplémentaires. Si vous envisagez de gérer les autorisations à l'aide de politiques IAM, limitez le nombre de personnes habilitées à créer des politiques IAM et à les associer à des principes IAM et [surveillez](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-iam-policy-changes) les modifications apportées aux politiques.

Si vous autorisez toutes les actions (`kms:*`) à la fois dans la politique clé et dans la stratégie IAM, le principal dispose des autorisations d'administration et d'utilisation de la clé KMS. Pour des raisons de sécurité, nous recommandons de ne déléguer ces autorisations qu'à des responsables spécifiques. Vous pouvez le faire en nommant explicitement le principal dans la politique clé ou en limitant les principes auxquels la stratégie IAM est attachée. Vous pouvez également utiliser des [clés de condition](policy-conditions.md) pour restreindre les autorisations. Par exemple, vous pouvez utiliser le [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 autoriser toutes les actions si le principal effectuant l'appel d'API possède la balise spécifiée dans la règle de condition.

Pour mieux comprendre comment les déclarations de politique sont évaluées AWS, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*. Nous vous recommandons de consulter cette rubrique avant de rédiger des politiques afin de réduire le risque que votre politique ait des effets imprévus, tels que l'octroi d'un accès à des mandants qui ne devraient pas y avoir accès.

**Astuce**  
Lorsque vous testez une application dans un environnement hors production, utilisez [IAM Access Analyzer](https://aws.amazon.com/iam/features/analyze-access/) pour vous aider à appliquer le principe du moindre privilège à vos politiques IAM.

Si vous utilisez des utilisateurs IAM plutôt que des rôles IAM, nous vous recommandons vivement d'activer l'authentification AWS [multifactorielle (](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)MFA) afin de réduire la vulnérabilité des informations d'identification à long terme. Vous pouvez utiliser MFA pour effectuer les tâches suivantes : 
+ Exigez que les utilisateurs valident leurs informations d'identification auprès de la MFA avant d'effectuer des actions privilégiées, telles que la planification de la suppression de clés.
+ Répartissez la propriété du mot de passe d'un compte administrateur et du dispositif MFA entre les individus afin de mettre en œuvre une autorisation partagée.

**En savoir plus**
+ [AWS politiques gérées pour les fonctions professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)
+ [Techniques d’écriture de politiques IAM selon le principe de moindre privilège](https://aws.amazon.com//blogs/security/techniques-for-writing-least-privilege-iam-policies/)

## Implémentation des autorisations avec le moindre privilégié
<a name="key-policy-least-privilege"></a>

Lorsque vous autorisez un AWS service à utiliser une clé KMS, assurez-vous que l'autorisation n'est valide que pour les ressources auxquelles le service doit accéder en votre nom. Cette stratégie du moindre privilège permet d'empêcher l'utilisation non autorisée d'une clé KMS lorsque les demandes sont transmises entre les AWS services.

Pour mettre en œuvre une stratégie de moindre privilège, nous vous recommandons d'utiliser les clés de condition de contexte de AWS KMS chiffrement et les clés de condition de l'ARN source global ou du compte source.

### Utilisation des clés de condition de contexte de chiffrement
<a name="least-privilege-encryption-context"></a>

Le moyen le plus efficace de mettre en œuvre les autorisations les moins privilégiées lors de l'utilisation AWS KMS des ressources consiste à inclure les clés de [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys)condition [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context)ou dans la politique qui permet aux principaux d'appeler des opérations AWS KMS cryptographiques. Ces clés de condition sont particulièrement efficaces parce qu'elles associent l'autorisation au [contexte de chiffrement](encrypt_context.md) qui est lié au texte chiffré lorsque la ressource est chiffrée. 

[Utilisez les clés de conditions de contexte de chiffrement uniquement lorsque l'action indiquée dans la déclaration de politique est [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)une opération cryptographique AWS KMS symétrique qui prend un `EncryptionContext` paramètre, telle que les opérations telles que [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)ou Decrypt.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) (Pour obtenir la liste des opérations prises en charge, consultez [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context) ou [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys).) Si vous utilisez ces clés de condition pour autoriser d'autres opérations, par exemple [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), l'autorisation sera refusée.

Définissez la valeur sur le contexte de chiffrement utilisé par le service lorsqu'il chiffre la ressource. Ces informations sont généralement disponibles dans le chapitre Sécurité de la documentation du service. Par exemple, le [contexte de chiffrement de AWS Proton](https://docs.aws.amazon.com/proton/latest/adminguide/data-protection.html#encryption-context) identifie la ressource AWS Proton et son modèle associé. Le [contexte de chiffrement AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-encryption-context) identifie le secret et sa version. Le [contexte de chiffrement pour Amazon Location](https://docs.aws.amazon.com/location/latest/developerguide/encryption-at-rest.html#location-encryption-context) identifie le dispositif de suivi ou la collection. 

L'exemple suivant d'instruction de politique de clé permet à Amazon Location Service de créer des octrois pour le compte des utilisateurs autorisés. [Cette déclaration de politique limite l'autorisation en utilisant les touches [kms : CallerAccount](conditions-kms.md#conditions-kms-caller-account), kms : et `kms:EncryptionContext:context-key` condition pour lier l'autorisation à une ressource de suivi particulière. ViaService](conditions-kms.md#conditions-kms-via-service)

```
{
  "Sid": "Allow Amazon Location to create grants on behalf of authorized users",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/LocationTeam"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "geo.us-west-2.amazonaws.com",
      "kms:CallerAccount": "111122223333",
      "kms:EncryptionContext:aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:tracker/SAMPLE-Tracker"
    }
  }
}
```

### Utilisation des clés de condition `aws:SourceArn` ou `aws:SourceAccount`
<a name="least-privilege-source-arn"></a>

Lorsque le principal dans une instruction de politique de clé est un [mandataire du service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), nous vous recommandons vivement d'utiliser les clés de condition globales [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) ou [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount), en plus de la clé de condition `kms:EncryptionContext:context-key`. L'ARN et les valeurs du compte sont incluses dans le contexte d'autorisation uniquement lorsqu'une demande AWS KMS provient d'un autre AWS service. Cette combinaison de conditions implémente des autorisations de moindre privilège et évite l'éventualité pour [un programme d'être manipulé par un autre pour obtenir un accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Les principes de service ne sont généralement pas utilisés comme principes dans une politique clé, mais certains AWS services, tels que AWS CloudTrail, l'exigent. 

Pour utiliser les clés de condition globales `aws:SourceArn` ou `aws:SourceAccount`, définissez comme valeur l'Amazon Resource Name (ARN) ou le compte de la ressource à chiffrer. Par exemple, dans une instruction de politique de clé qui autorise AWS CloudTrail à chiffrer un journal d'activité, définissez l'ARN de ce dernier comme valeur de `aws:SourceArn`. Dans la mesure du possible, utilisez `aws:SourceArn`, qui est plus spécifique. Définissez comme valeur l'ARN ou un modèle d'ARN avec des caractères génériques. Si vous ne connaissez pas l'ARN de la ressource, utilisez `aws:SourceAccount` à la place.

**Note**  
Si un ARN de ressource inclut des caractères non autorisés dans une politique de AWS KMS clé, vous ne pouvez pas utiliser cet ARN de ressource dans la valeur de la clé de `aws:SourceArn` condition. Utilisez à la place la clé de condition `aws:SourceAccount`. Pour plus d'informations sur les règles de document de politique de clé, voir [Format de politique de clé](key-policy-overview.md#key-policy-format).

Dans l'exemple de politique de clé suivant, le principal qui obtient les autorisations est `cloudtrail.amazonaws.com`, le principal du service AWS CloudTrail . Pour implémenter le moindre privilège, cette politique utilise les clés de condition `aws:SourceArn` et `kms:EncryptionContext:context-key`. La déclaration de politique CloudTrail permet d'utiliser la clé KMS pour [générer la clé de données](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) utilisée pour chiffrer une trace. Les conditions `aws:SourceArn` et `kms:EncryptionContext:context-key` sont évaluées indépendamment. Toute demande d'utilisation de la clé KMS pour l'opération spécifiée doit répondre aux deux conditions.

Pour restreindre l'autorisation du service au journal d'activité `finance` dans l'exemple de compte (111122223333) et la région `us-west-2`, cette instruction de politique affecte à la condition de clé `aws:SourceArn` l'ARN d'un journal d'activité donné. L'instruction de condition utilise l'[ArnEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN)opérateur pour garantir que chaque élément de l'ARN est évalué indépendamment lors de la correspondance. L'exemple utilise également la clé de condition `kms:EncryptionContext:context-key` pour limiter l'autorisation aux journaux d'activité dans un compte et une région particuliers. 

Avant d'utiliser cette politique de clé, remplacez l'exemple d'ID de compte, de région et de nom de journal d'activité par des valeurs valides de votre compte.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudTrailToEncryptLogs",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:cloudtrail:us-west-2:111122223333:trail/finance"
          ]
        },
        "StringLike": {
          "kms:EncryptionContext:aws:cloudtrail:arn": [
            "arn:aws:cloudtrail:*:111122223333:trail/*"
          ]
        }
      }
    }
  ]
}
```

------

# ABAC pour AWS KMS
<a name="abac"></a>

Le contrôle d'accès basé sur les attributs (ABAC) est une stratégie d'autorisation qui définit les autorisations en fonction des attributs. AWS KMS prend en charge ABAC en vous permettant de contrôler l'accès aux clés gérées par vos clients en fonction des balises et des alias associés aux clés KMS. Les clés de condition de balise et d'alias qui activent ABAC AWS KMS constituent un moyen puissant et flexible d'autoriser les principaux à utiliser les clés KMS sans modifier les politiques ni gérer les subventions. Toutefois, vous devriez utiliser cette fonction avec précaution, afin que les principaux ne soient pas autorisés ou refusés par inadvertance. 

Si vous utilisez l'ABAC, sachez que l'autorisation de gérer les balises et les alias est désormais une autorisation de contrôle d'accès. Assurez-vous de connaître les balises et alias existants sur toutes les clés KMS avant de déployer une politique qui en dépend. Prenez des précautions raisonnables lors de l'ajout, de la suppression et de la mise à jour des alias, ainsi que lors de l'étiquetage et du désétiquetage des clés. Accordez des autorisations pour gérer les balises et les alias uniquement aux principaux qui en ont besoin, et limitez les balises et les alias qu'ils peuvent gérer. 

**Remarques**  
Lorsque vous utilisez ABAC pour AWS KMS, veillez à ne pas autoriser les principaux à gérer les balises et les alias. La modification d'une balise ou d'un alias peut autoriser ou refuser l'accès à une clé KMS. Les administrateurs de clés qui n'ont pas l'autorisation de modifier les politiques de clé ou de créer des octrois peuvent contrôler l'accès aux clés KMS s'ils sont autorisés à gérer les balises ou les alias.   
Les modifications d'alias et de balises peuvent prendre jusqu'à cinq minutes pour affecter l'autorisation de clé KMS. Les modifications récentes peuvent être visibles dans les opérations d'API avant qu'elles n'affectent l'autorisation.  
Pour contrôler l'accès à une clé KMS en fonction de son alias, vous devez utiliser une clé de condition. Vous ne pouvez pas utiliser un alias pour représenter une clé KMS dans l'élément `Resource` d'une instruction de politique. Lorsqu'un alias apparaît dans l'élément `Resource`, l'instruction de politique s'applique à l'alias et non à la clé KMS associée.

**En savoir plus**
+ Pour plus de détails sur la AWS KMS prise en charge d'ABAC, y compris des exemples, consultez [Utiliser des alias pour contrôler l'accès aux clés KMS](alias-authorization.md) et[Utiliser des balises pour contrôler l'accès aux clés KMS](tag-authorization.md).
+ Pour des informations plus générales sur l'utilisation de balises pour contrôler l'accès aux AWS ressources, voir À [quoi sert ABAC ? AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) et [le contrôle de l'accès aux AWS ressources à l'aide de balises de ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) dans le *guide de l'utilisateur IAM*.

## Clés de condition ABAC pour AWS KMS
<a name="about-abac-kms"></a>

Pour autoriser l'accès aux clés KMS en fonction de leurs balises et alias, utilisez les clés de condition suivantes dans une politique de clé ou une politique IAM.


| Clé de condition ABAC | Description | Type de politique | AWS KMS opérations | 
| --- | --- | --- | --- | 
| [lois : ResourceTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) | La balise (clé et valeur) de la clé KMS correspond à la balise (clé et valeur) ou au modèle de balise dans la politique. | Politique IAM uniquement | Opérations liées aux ressources de clé KMS 2 | 
| [aws :RequestTag//*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag) | La balise (clé et valeur) dans la demande correspond à la balise (clé et valeur) ou au modèle de balise dans la politique. | Politique de clé et politiques IAM1 | [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html), [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) | 
| [lois : TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) | Dans la demande, les clés de balise correspondent à celles de la politique. | Politique de clé et politiques IAM1 | [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html), [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) | 
| [km : ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) | Les alias associés à la clé KMS correspondent aux alias ou aux modèles d'alias de la politique. | Politique IAM uniquement | Opérations liées aux ressources de clé KMS 2 | 
| [km : RequestAlias](conditions-kms.md#conditions-kms-request-alias) | L'alias qui représente la clé KMS dans la demande correspond à l'alias ou aux modèles d'alias de la politique. | Politique de clé et politiques IAM1 | [opérations cryptographiques](kms-cryptography.md#cryptographic-operations), [DescribeKey[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) | 

1Toute clé de condition pouvant être utilisée dans une politique de clé peut également être utilisée dans une politique IAM, mais uniquement si [la politique clé le permet](key-policy-default.md#key-policy-default-allow-root-enable-iam).

2Une *opération de ressource de clé KMS* est une opération autorisée pour une clé KMS particulière. Pour identifier les opérations de ressources de clés KMS, dans la [table AWS KMS des autorisations](kms-api-permissions-reference.md#kms-api-permissions-reference-table), recherchez la valeur de la clé KMS dans la colonne `Resources` de l'opération. 

Par exemple, vous pouvez utiliser ces clés de condition pour créer les politiques suivantes.
+ Une politique IAM avec `kms:ResourceAliases` qui autorise l'utilisation de clés KMS avec un alias ou un modèle d'alias particulier. Cela est un peu différent des politiques qui reposent sur des balises : bien que vous puissiez utiliser des modèles d'alias dans une politique, chaque alias doit être unique dans une région Compte AWS et. Cela vous permet d'appliquer une politique à un ensemble sélectionné de clés KMS sans indiquer la clé ARNs des clés KMS dans la déclaration de stratégie. Pour ajouter ou supprimer des clés KMS de l'ensemble, modifiez l'alias de la clé KMS.
+ Une politique de clé avec `kms:RequestAlias` qui permet aux principaux d'utiliser une clé KMS dans une opération `Encrypt`, mais uniquement lorsque la demande `Encrypt` utilise cet alias pour identifier la clé KMS.
+ Une politique IAM avec `aws:ResourceTag/tag-key` qui refuse l'autorisation d'utiliser des clés KMS avec une clé et une valeur de balise particulières. Cela vous permet d'appliquer une politique à un ensemble sélectionné de clés KMS sans indiquer la clé ARNs des clés KMS dans la déclaration de stratégie. Pour ajouter ou supprimer des clés KMS de l'ensemble, étiquetez ou désétiquetez la clé KMS.
+ Une politique IAM avec `aws:RequestTag/tag-key` qui permet aux principaux de supprimer uniquement les balises de clés KMS `"Purpose"="Test"`. 
+ Une politique IAM avec `aws:TagKeys` qui refuse l'autorisation d'étiqueter ou de désétiqueter une clé KMS avec une clé de balise `Restricted`.

L'ABAC rend la gestion des accès flexible et évolutive. Par exemple, vous pouvez utiliser la clé de condition `aws:ResourceTag/tag-key` pour créer une politique IAM qui permet aux principaux d'utiliser une clé KMS pour des opérations spécifiées uniquement lorsque la clé KMS possède une balise `Purpose=Test`. La politique s'applique à toutes les clés KMS dans toutes les régions du Compte AWS.

Lorsqu'elle est attachée à un utilisateur ou à un rôle, la politique IAM suivante permet aux principaux d'utiliser toutes les clés KMS existantes avec une balise `Purpose=Test` pour les opérations spécifiées. Pour autoriser cet accès à des clés KMS nouvelles ou existantes, vous n'avez pas besoin de modifier la politique. Il suffit de joindre la balise `Purpose=Test` aux clés KMS. De même, pour supprimer cet accès des clés KMS avec une balise `Purpose=Test`, modifiez ou supprimez la balise. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Purpose": "Test"
        }
      }
    }
  ]
}
```

------

Toutefois, si vous utilisez cette fonction, faites attention lors de la gestion des balises et des alias. L'ajout, la modification ou la suppression d'une balise ou d'un alias peut autoriser ou refuser l'accès à une clé KMS par inadvertance. Les administrateurs de clés qui n'ont pas l'autorisation de modifier les politiques de clé ou de créer des octrois peuvent contrôler l'accès aux clés KMS s'ils sont autorisés à gérer les balises et les alias. Pour atténuer ce risque, envisagez de [limiter les autorisations de gestion des balises](tag-permissions.md#tag-permissions-conditions) et des [alias](alias-access.md#alias-access-limiting). Par exemple, vous pouvez autoriser uniquement les principaux sélectionnés à gérer les balises `Purpose=Test`. Pour plus de détails, veuillez consulter [Utiliser des alias pour contrôler l'accès aux clés KMS](alias-authorization.md) et [Utiliser des balises pour contrôler l'accès aux clés KMS](tag-authorization.md).

## Des balises ou des alias ?
<a name="abac-tag-or-alias"></a>

AWS KMS supporte ABAC avec des tags et des alias. Les deux options offrent une stratégie de contrôle d'accès flexible et évolutive, mais elles sont légèrement différentes l'une de l'autre. 

Vous pouvez décider d'utiliser des balises ou des alias en fonction de vos habitudes AWS d'utilisation particulières. Par exemple, si vous avez déjà accordé des autorisations d'étiquetage à la plupart des administrateurs, il peut être plus facile de contrôler une stratégie d'autorisation basée sur des alias. Ou, si vous approchez du quota pour le nombre d'[alias par clé KMS](resource-limits.md#aliases-per-key), vous pouvez préférer une stratégie d'autorisation basée sur des balises. 

Les avantages suivants sont d'intérêt général.

**Avantages du contrôle d'accès basé sur les identifications**
+ Même mécanisme d'autorisation pour différents types de AWS ressources. 

  Vous pouvez utiliser la même balise ou clé de balise pour contrôler l'accès à plusieurs types de ressources, tels qu'un cluster Amazon Relational Database Service (Amazon RDS), un volume Amazon Elastic Block Store (Amazon EBS) et une clé KMS. Cette fonction permet plusieurs modèles d'autorisation plus flexibles que le contrôle d'accès classique basé sur les rôles.
+ Autoriser l'accès à un groupe de clés KMS.

  Vous pouvez utiliser des balises pour gérer l'accès à un groupe de clés KMS dans le même Compte AWS et la même région. Attribuez la même balise ou la même clé de balise aux clés KMS que vous choisissez. Créez ensuite une déclaration de easy-to-maintain politique simple basée sur le tag ou la clé du tag. Pour ajouter ou supprimer une clé KMS de votre groupe d'autorisations, ajoutez ou supprimez la balise ; vous n'avez pas besoin de modifier la politique.

**Avantages du contrôle d'accès basé sur les alias**
+ Autoriser l'accès aux opérations cryptographiques en fonction des alias.

  La plupart des conditions de politique basées sur les demandes pour les attributs, y compris [aws :RequestTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag), affectent uniquement les opérations qui ajoutent, modifient ou suppriment l'attribut. Mais la clé de RequestAlias condition [kms :](conditions-kms.md#conditions-kms-request-alias) contrôle l'accès aux opérations cryptographiques en fonction de l'alias utilisé pour identifier la clé KMS dans la demande. Par exemple, vous pouvez accorder à un principal l'autorisation d'utiliser une clé KMS dans une opération `Encrypt` mais uniquement lorsque la valeur du paramètre `KeyId` est `alias/restricted-key-1`. Cette condition nécessite tous les éléments suivants pour répondre aux exigences :
  + La clé KMS doit être associée à cet alias.
  + La demande doit utiliser l'alias pour identifier la clé KMS.
  + Le principal doit être autorisé à utiliser la clé KMS sujette à la condition `kms:RequestAlias`. 

  Cela est particulièrement utile si vos applications utilisent fréquemment des noms d'alias ou des alias ARNs pour faire référence aux clés KMS.
+ Fournir des autorisations très limitées.

  Un alias doit être unique dans une région Compte AWS et. Par conséquent, donner aux principaux accès à une clé KMS basée sur un alias peut être beaucoup plus restrictif que leur donner un accès basé sur une balise. Contrairement aux alias, les balises peuvent être affectées à plusieurs clés KMS dans le même compte et la même région. Si vous le souhaitez, vous pouvez utiliser un modèle d'alias, tel que `alias/test*`, pour donner aux principaux accès à un groupe de clés KMS dans le même compte et la même région. Cependant, autoriser ou refuser l'accès à un alias particulier permet un contrôle très strict sur les clés KMS.

# Résolution des problèmes liés à ABAC pour AWS KMS
<a name="troubleshooting-tags-aliases"></a>

Le contrôle de l'accès aux clés KMS en fonction de leurs balises et alias est pratique et puissant. Cependant, cette méthode est sujette à quelques erreurs prévisibles que vous voudrez éviter.

## Accès modifié en raison d'un changement de balise
<a name="access-denied-tag"></a>

Si une balise est supprimée ou si sa valeur est modifiée, les principaux qui ont accès à une clé KMS basée uniquement sur cette balise se verront refuser l'accès à la clé KMS. Cela peut également se produire lorsqu'une balise incluse dans une instruction de politique de refus est ajoutée à une clé KMS. L'ajout d'une balise liée à une politique à une clé KMS peut permettre l'accès aux principaux qui devraient se voir refuser l'accès à une clé KMS.

Supposons, par exemple, qu'un principal ait accès à une clé KMS basée sur la balise `Project=Alpha`, par exemple l'autorisation fournie par l'exemple d'instruction de politique IAM suivant. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyWithResourceTag",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "Alpha"
        }
      }
    }
  ]
}
```

------

Si la balise est supprimée de cette clé KMS ou si la valeur de la balise est modifiée, le principal n'a plus l'autorisation d'utiliser la clé KMS pour les opérations spécifiées. Cela peut devenir évident lorsque le directeur essaie de lire ou d'écrire des données dans un AWS service qui utilise une clé gérée par le client. Pour suivre le changement de balise, consultez vos CloudTrail journaux [TagResource](ct-tagresource.md)ou [UntagResource entrées](ct-untagresource.md).

Pour restaurer l'accès sans mettre à jour la politique, modifiez les balises de la clé KMS. Cette mesure a un impact minime sur une brève période et elle prend effet sur l'ensemble de AWS KMS. Pour éviter une erreur comme celle-ci, accordez des autorisations d'étiquetage et de désétiquetage uniquement aux principaux qui en ont besoin et [limitez leurs autorisations d'étiquetage](tag-permissions.md#tag-permissions-conditions) aux balises qu'ils doivent gérer. Avant de modifier une balise, recherchez des politiques pour détecter l'accès qui dépend de la balise et obtenir des clés KMS dans toutes les régions qui possèdent la balise. Vous pouvez envisager de créer une CloudWatch alarme Amazon lorsque des balises spécifiques sont modifiées.

## Changement d'accès dû à un changement d'alias
<a name="access-denied-alias"></a>

Si un alias est supprimé ou associé à une autre clé KMS, les principaux qui ont accès à la clé KMS basée uniquement sur cet alias se verront refuser l'accès à la clé KMS. Cela peut également se produire lorsqu'un alias associé à une clé KMS est inclus dans une instruction de politique de refus. L'ajout d'un alias lié à une politique à une clé KMS peut également permettre l'accès aux principaux qui devraient se voir refuser l'accès à une clé KMS.

Par exemple, la déclaration de politique IAM suivante utilise la clé de ResourceAliases condition [kms :](conditions-kms.md#conditions-kms-resource-aliases) pour autoriser l'accès aux clés KMS dans les différentes régions du compte avec l'un des alias spécifiés.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:List*",
        "kms:Describe*",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "kms:ResourceAliases": [
            "alias/ProjectAlpha",
            "alias/ProjectAlpha_Test",
            "alias/ProjectAlpha_Dev"
          ]
        }
      }
    }
  ]
}
```

------

Pour suivre le changement d'alias, consultez vos CloudTrail journaux pour [CreateAlias[UpdateAlias](ct-updatealias.md)](ct-createalias.md), et vos [DeleteAlias](ct-deletealias.md)entrées.

Pour restaurer l'accès sans mettre à jour la politique, modifiez les alias associés à la clé KMS. Étant donné que chaque alias ne peut être associé qu'à une seule clé KMS dans un compte et une région, la gestion des alias est un peu plus difficile que la gestion des balises. La restauration de l'accès de certains principaux sur une clé KMS peut refuser au même ou à d'autres principaux l'accès à une autre clé KMS. 

Pour éviter cette erreur, n'accordez des autorisations de gestion d'alias qu'aux principaux qui en ont besoin et [limitez leurs autorisations de gestion des alias](alias-access.md#alias-access-limiting) aux alias qu'ils doivent gérer. Avant de mettre à jour ou de supprimer un alias, recherchez des politiques pour détecter l'accès qui dépend de l'alias et recherchez les clés KMS dans toutes les régions associées à l'alias.

## Accès refusé en raison d'un quota d'alias
<a name="access-denied-alias-quota"></a>

Les utilisateurs autorisés à utiliser une clé KMS dans une limite de [kilomètres bénéficieront ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) d'une `AccessDenied` exception si la clé KMS dépasse les [alias par défaut par quota de clé KMS](resource-limits.md#aliases-per-key) pour ce compte et cette région. 

Pour restaurer l'accès, supprimez les alias associés à la clé KMS afin qu'elle soit conforme au quota. Sinon, utilisez un autre mécanisme pour accorder aux utilisateurs l'accès à la clé KMS. 

## Modification retardée de l'autorisation
<a name="tag-alias-auth-delay"></a>

Les modifications que vous apportez aux balises et aux alias peuvent prendre jusqu'à cinq minutes pour affecter l'autorisation des clés KMS. Par conséquent, un changement de balise ou d'alias peut être reflété dans les réponses des opérations d'API avant qu'elles n'affectent l'autorisation. Ce délai est susceptible d'être plus long que le bref délai de cohérence éventuel qui affecte la plupart des AWS KMS opérations. 

Par exemple, vous disposez peut-être d'une politique IAM qui autorise certains principaux à utiliser n'importe quelle clé KMS avec une balise `"Purpose"="Test"`. Ensuite, vous ajoutez la balise `"Purpose"="Test"` sur une clé KMS. Bien que l'[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)opération soit terminée et que la [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html)réponse confirme que la balise est attribuée à la clé KMS, les principaux peuvent ne pas avoir accès à la clé KMS pendant cinq minutes au maximum.

Pour éviter les erreurs, intégrez ce délai attendu à votre code. 

## Demandes ayant échoué en raison des mises à jour d'alias
<a name="failed-requests"></a>

Lorsque vous mettez à jour un alias, vous associez un alias existant à une autre clé KMS. 

Le [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) et les [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)demandes spécifiant le [nom d'alias](concepts.md#key-id-alias-name) ou l'[ARN de l'alias](concepts.md#key-id-alias-ARN) peuvent échouer car l'alias est désormais associé à une clé KMS qui n'a pas chiffré le texte chiffré. Cette situation renvoie généralement un `IncorrectKeyException` ou `NotFoundException`. Si la demande n'a pas de paramètre `KeyId` ou `DestinationKeyId`, l'opération peut échouer avec l'exception `AccessDenied`, car l'appelant n'a plus accès à la clé KMS qui a chiffré le texte chiffré. 

Vous pouvez suivre les modifications en consultant CloudTrail les journaux et [CreateAlias[UpdateAlias](ct-updatealias.md)](ct-createalias.md)les entrées des [DeleteAlias](ct-deletealias.md)journaux. Vous pouvez également utiliser la valeur du `LastUpdatedDate` champ dans la [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)réponse pour détecter un changement. 

Par exemple, l'[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)exemple de réponse suivant montre que l'`ProjectAlpha_Test`alias de la `kms:ResourceAliases` condition a été mis à jour. Par conséquent, les principaux qui ont un accès en fonction de l'alias perdent leur accès à la clé KMS précédemment associée. Au lieu de cela, ils ont accès à la clé KMS nouvellement associée. 

```
$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/ProjectAlpha`)]'

{
    "Aliases": [
        {
            "AliasName": "alias/ProjectAlpha_Test",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Test",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1566518783.394,
            "LastUpdatedDate": 1605308931.903
        },
        {
            "AliasName": "alias/ProjectAlpha_Restricted",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Restricted",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1553410800.010,
            "LastUpdatedDate": 1553410800.010
        }
    ]
}
```

La solution à ce problème n'est pas simple. Vous pouvez à nouveau mettre à jour l'alias pour l'associer à la clé KMS d'origine. Toutefois, avant d'agir, vous devez tenir compte de l'effet de cette modification sur la clé KMS actuellement associée. Si les principaux utilisent cette dernière clé KMS dans des opérations de chiffrement, ils peuvent avoir besoin d'un accès continu à celle-ci. Dans ce cas, vous pouvez mettre à jour la politique pour vous assurer que les principaux ont l'autorisation d'utiliser les deux clés KMS. 

Vous pouvez empêcher une erreur comme celle-ci : avant de mettre à jour un alias, examinez les politiques pour détecter l'accès qui dépend de l'alias. Obtenez ensuite les clés KMS dans toutes les régions associées à l'alias. Accordez des autorisations de gestion d'alias uniquement aux principaux qui en ont besoin et [limitez leurs autorisations de gestion d'alias](alias-access.md#alias-access-limiting) aux alias qu'ils doivent gérer.

# RBAC pour AWS KMS
<a name="rbac"></a>

Le contrôle d'accès basé sur les rôles (RBAC) est une stratégie d'autorisation qui fournit aux utilisateurs uniquement les autorisations nécessaires pour effectuer leurs tâches, et rien de plus. AWS KMS prend en charge le RBAC en vous permettant de contrôler l'accès à vos clés en spécifiant des autorisations détaillées sur l'utilisation des clés dans le cadre des politiques [clés](key-policies.md). Les politiques clés spécifient une ressource, une action, un effet, un principal et des conditions facultatives pour accorder l'accès aux clés.

Pour implémenter le RBAC dans AWS KMS, nous recommandons de séparer les autorisations pour les utilisateurs clés et les administrateurs principaux.

------
#### [ Key users ]

L'exemple de politique clé suivant permet au rôle `ExampleUserRole` IAM d'utiliser la clé KMS.

```
{
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
  }
```

 Vos utilisateurs principaux peuvent avoir besoin de moins d'autorisations que l'utilisateur dans cet exemple. Attribuez uniquement les autorisations dont l'utilisateur a besoin. Posez les questions suivantes pour affiner davantage les autorisations.
+ Quels sont les principaux IAM (rôles ou utilisateurs) qui ont besoin d'accéder à la clé ?
+ Quelles actions chaque directeur doit-il effectuer avec la clé ? Par exemple, le principal a-t-il uniquement besoin des autorisations de chiffrement et de signature ?
+ L'utilisateur est-il un être humain ou un AWS service ? S'il s'agit d'un AWS service, vous pouvez utiliser la [clé de condition](conditions-kms.md#conditions-kms-via-service) pour limiter l'utilisation des clés à un AWS service spécifique.

------
#### [ Key administrators ]



L'exemple de politique clé suivant permet au rôle `ExampleAdminRole` IAM d'administrer la clé KMS. 

```
{
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
    }
```

 Vos administrateurs principaux peuvent avoir besoin de moins d'autorisations que l'administrateur dans cet exemple. N'attribuez que les autorisations dont vos principaux administrateurs ont besoin.

------

N'accordez aux utilisateurs que les autorisations dont ils ont besoin pour remplir leurs rôles. Les autorisations d'un utilisateur peuvent varier selon que la clé est utilisée dans des environnements de test ou de production. Si vous utilisez des autorisations moins restrictives dans certains environnements non liés à la production, mettez en œuvre un processus pour tester les politiques avant leur mise en production.

**En savoir plus**
+ [Identités IAM (utilisateurs, groupes d'utilisateurs et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)
+ [Types de contrôle d'accès](https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/access-control-types.html)

# Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS
<a name="key-policy-modifying-external-accounts"></a>

Vous pouvez autoriser les utilisateurs ou les rôles d'un autre Compte AWS pays à utiliser une clé KMS dans votre compte. L'accès inter-comptes nécessite une autorisation dans la politique de clé de la clé KMS et dans une politique IAM dans le compte de l'utilisateur externe.

L'autorisation inter-comptes n'est effective que pour les opérations suivantes :
+ [Opérations cryptographiques](kms-cryptography.md#cryptographic-operations)
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)
+ [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)
+ [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)
+ [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
+ [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)

Si vous accordez à un utilisateur d'un autre compte des autorisations pour d'autres opérations, ces autorisations n'ont aucun effet. Par exemple, si vous accordez au principal d'un autre compte une ListKeys autorisation [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) dans une politique IAM, ou [kms :](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) une ScheduleKeyDeletion autorisation sur une clé KMS dans une politique clé, les tentatives de l'utilisateur pour appeler ces opérations sur vos ressources échouent toujours. 

Pour plus de détails sur l'utilisation des clés KMS dans différents comptes pour les AWS KMS opérations, consultez **la colonne Utilisation entre comptes** dans le [AWS KMS autorisations](kms-api-permissions-reference.md) et[Utilisation de clés KMS dans d'autres comptes](#cross-account-use). Il existe aussi une section **Cross-account use (Utilisation inter-comptes)** dans chaque description d'API de la [référence d'API AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/APIReference/).

**Avertissement**  
Soyez prudent lorsque vous autorisez les principaux à utiliser vos clés KMS. Dans la mesure du possible, suivez le principe du *moindre privilège*. Donnez uniquement aux utilisateurs l'accès aux clés KMS dont ils ont besoin pour les opérations dont ils ont besoin.  
Par ailleurs, soyez prudent en ce qui concerne l'utilisation d'une clé KMS inconnue, en particulier d'une clé KMS dans un compte différent. Les utilisateurs malveillants peuvent vous autoriser à utiliser leur clé KMS pour obtenir des informations sur vous ou votre compte.   
Pour plus d'informations sur l'utilisation des politiques pour protéger les ressources de votre compte, veuillez consulter [Bonnes pratiques pour les politiques IAM](iam-policies-best-practices.md).

Pour accorder l'autorisation d'utiliser une clé KMS aux utilisateurs et aux rôles d'un autre compte, vous devez utiliser deux types de politiques différents :
+ La **politique de clé** pour la clé KMS doit accorder au compte externe (ou aux utilisateurs et rôles du compte externe) l'autorisation d'utiliser la clé KMS. La politique de clé se trouve dans le compte qui possède la clé KMS.
+ Les **politiques IAM** du compte externe doivent déléguer les autorisations de politique de clé à leurs utilisateurs et rôles. Ces politiques sont définies dans le compte externe et accordent des autorisations aux utilisateurs et rôles de ce compte.

La politique de clé détermine qui *peut* avoir accès à la clé KMS. La politique IAM détermine qui *a* accès à la clé KMS. Ni la politique de clé ni la politique IAM à elles seules ne suffisent. Vous devez modifier les deux. 

Pour modifier la politique clé, vous pouvez utiliser la [vue des politiques](key-policy-modifying.md#key-policy-modifying-how-to-console-policy-view) dans les opérations AWS Management Console ou utiliser les [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)opérations [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)ou.

Pour obtenir de l'aide concernant la modification des politiques IAM, veuillez consulter [Utilisation des politiques IAM avec AWS KMS](iam-policies.md). 

Pour obtenir un exemple qui montre comment la politique de clé et les politiques IAM fonctionnent ensemble pour autoriser l'utilisation d'une clé KMS dans un autre compte, veuillez consulter [Exemple 2 : L'utilisateur assume un rôle autorisé à utiliser une clé KMS dans un autre Compte AWS](policy-evaluation.md#example-cross-acct).

Vous pouvez consulter les AWS KMS opérations entre comptes qui en résultent sur la clé KMS dans vos [AWS CloudTrail journaux](logging-using-cloudtrail.md). Les opérations qui utilisent des clés KMS dans d'autres comptes sont journalisées à la fois dans le compte de l'appelant et dans le compte propriétaire de la clé KMS.

**Topics**
+ [Étape 1 : ajouter une déclaration de politique de clé dans le compte local](#cross-account-key-policy)
+ [Étape 2 : ajouter des politiques IAM dans le compte externe](#cross-account-iam-policy)
+ [Autoriser l'utilisation de clés KMS externes avec Services AWS](#cross-account-service)
+ [Utilisation de clés KMS dans d'autres comptes](#cross-account-use)

**Note**  
Les exemples de cette rubrique montrent comment utiliser ensemble une politique de clé et une politique IAM pour fournir et limiter l'accès à une clé KMS. Ces exemples génériques ne sont pas destinés à représenter les autorisations requises par une clé KMS en particulier Service AWS . Pour plus d'informations sur les autorisations Service AWS requises, consultez la rubrique relative au chiffrement dans la documentation du service.

## Étape 1 : ajouter une déclaration de politique de clé dans le compte local
<a name="cross-account-key-policy"></a>

La politique de clé pour une clé KMS constitue l'élément principal qui détermine qui peut accéder à la clé KMS et quelles sont les opérations pouvant être effectuées. La politique de clé est toujours définie dans le compte propriétaire de la clé KMS. Contrairement aux politiques IAM, les politiques de clé ne spécifient pas de ressource. La ressource est la clé KMS associée à la politique de clé. Lors de l'octroi d'une autorisation entre comptes, la politique de clé relative à la clé KMS doit accorder au compte externe (ou aux utilisateurs et rôles du compte externe) l'autorisation d'utiliser la clé KMS.

Pour accorder à un compte externe l'autorisation d'utiliser la clé KMS, ajoutez une instruction à la politique de clé qui spécifie le compte externe. Dans l'élément `Principal` de la politique de clé, entrez l'Amazon Resource Name (ARN) du compte externe. 

Lorsque vous spécifiez un compte externe dans une politique de clé, les administrateurs IAM du compte externe peuvent utiliser des politiques IAM pour déléguer ces autorisations à tous les utilisateurs et rôles du compte externe. Ils peuvent également décider quelles sont les actions spécifiées dans la politique de clé que les utilisateurs et les rôles peuvent effectuer. 

Les autorisations accordées au compte externe et à ses principaux ne sont efficaces que si le compte externe est activé dans la région qui héberge la clé KMS et sa politique de clé. Pour plus d'informations sur les régions qui ne sont pas activées par défaut (« Régions d'adhésion »), veuillez consulter [Gestion de Régions AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) dans la *Références générales AWS*.

Par exemple, supposons que vous vouliez autoriser le compte `444455556666` à utiliser une clé KMS de chiffrement symétrique dans le compte `111122223333`. Pour ce faire, ajoutez une instruction de politique comme celle de l'exemple suivant à la politique de clé pour la clé KMS dans le compte `111122223333`. Cette instruction de politique accorde au compte externe, `444455556666`, l'autorisation d'utiliser la clé KMS dans les opérations de chiffrement pour les clés KMS de chiffrement symétriques. 

**Note**  
L'exemple suivant illustre une politique de clé qui permet de partager une clé KMS avec un autre compte. Remplacez les valeurs `Sid`, `Principal` et `Action` de l'exemple par des valeurs valides pour l'utilisation prévue de votre clé KMS. 

```
{
    "Sid": "Allow an external account to use this KMS key",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::444455556666:root"
        ]
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

Au lieu d'accorder l'autorisation au compte externe, vous pouvez spécifier des utilisateurs et des rôles externes spécifiques dans la politique de clé. Toutefois, ces utilisateurs et rôles ne peuvent pas utiliser la clé KMS tant que les administrateurs IAM du compte externe n'ont pas attaché les politiques IAM appropriées à leurs identités. Les politiques IAM peuvent accorder une autorisation à tous les utilisateurs et rôles externes, ou à une partie d'entre eux seulement, qui sont spécifiés dans la politique de clé. Elles peuvent également autoriser tout ou partie des actions spécifiées dans la politique de clé. 

La spécification d'identités dans une politique de clé restreint les autorisations que les administrateurs IAM du compte externe peuvent fournir. Toutefois, cela rend la gestion des politiques avec deux comptes plus complexe. Par exemple, supposons que vous ayez besoin d'ajouter un utilisateur ou un rôle. Vous devez ajouter cette identité à la politique de clé dans le compte propriétaire de la clé KMS et créer des politiques IAM dans le compte de l'identité.

Pour spécifier des utilisateurs ou des rôles externes spécifiques dans une politique de clé, dans l'élément `Principal`, entrez l'Amazon Resource Name (ARN) d'un utilisateur ou d'un rôle dans le compte externe.

Ainsi, l'exemple d'instruction de politique de clé suivant autorise le rôle `ExampleRole` du compte `444455556666` à utiliser une clé KMS du compte `111122223333`. Cette instruction de politique de clé accorde au compte externe, `444455556666`, l'autorisation d'utiliser la clé KMS dans les opérations de chiffrement pour les clés KMS de chiffrement symétriques. 

**Note**  
L'exemple suivant illustre une politique de clé qui permet de partager une clé KMS avec un autre compte. Remplacez les valeurs `Sid`, `Principal` et `Action` de l'exemple par des valeurs valides pour l'utilisation prévue de votre clé KMS. 

```
{
    "Sid": "Allow an external account to use this KMS key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::444455556666:role/ExampleRole"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

**Note**  
Ne définissez pas le principal sur un astérisque (\$1) dans une instruction de politique de clé qui autorise des autorisations, sauf si vous utilisez des [conditions](policy-conditions.md) pour limiter la stratégie de clé. Un astérisque indique chaque identité associée à chaque Compte AWS autorisation d'utilisation de la clé KMS, sauf si une autre déclaration de politique le nie explicitement. Les utilisateurs des autres utilisateurs Comptes AWS peuvent utiliser votre clé KMS chaque fois qu'ils disposent des autorisations correspondantes sur leur propre compte.

Vous devez également décider quelles autorisations vous souhaitez accorder au compte externe. Par exemple, vous pouvez accorder aux utilisateurs l'autorisation de déchiffrer, mais pas de chiffrer, ou l'autorisation d'afficher la clé KMS sans l'utiliser. Pour obtenir la liste des autorisations sur les clés KMS, veuillez consulter [AWS KMS autorisations](kms-api-permissions-reference.md).

**Définition de la politique des clés lors de la création d'une clé KMS**  
Lorsque vous utilisez l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération pour créer une clé KMS, vous pouvez utiliser son `Policy` paramètre pour spécifier une politique de clé qui autorise un compte externe, ou des utilisateurs et des rôles externes, à utiliser la clé KMS.  
Lorsque vous créez une clé KMS dans le AWS Management Console, vous créez également sa politique de clé. Lorsque vous sélectionnez des identités dans les sections **Key Administrators (Administrateurs de clé)** et **Key Users (Utilisateurs de clé)**, AWS KMS ajoute des instructions de politique pour ces identités à la politique de clé de la clé KMS. La section **Key Users (Utilisateurs de clé)** vous permet également d'ajouter des comptes externes en tant qu'utilisateurs de clé.  
Lorsque vous entrez l'ID de compte d'un compte externe, AWS KMS deux déclarations sont ajoutées à la politique clé. Cette action affecte uniquement la politique de clé. Les utilisateurs et les rôles du compte externe ne peuvent pas utiliser la clé KMS tant que vous n'avez pas attaché de politiques IAM pour leur accorder tout ou une partie de ces autorisations.  
La première instruction de politique de clé accorde au compte externe l'autorisation d'utiliser la clé KMS dans les opérations de chiffrement. La deuxième déclaration de politique clé permet au compte externe de créer, de consulter et de révoquer des autorisations sur la clé KMS, mais uniquement lorsque la demande provient d'un [AWS service intégré à AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration). Ces autorisations permettent aux autres AWS services qui cryptent les données utilisateur d'utiliser la clé KMS. Ces autorisations sont conçues pour les clés KMS qui chiffrent les données utilisateur dans AWS les services.

## Étape 2 : ajouter des politiques IAM dans le compte externe
<a name="cross-account-iam-policy"></a>

La politique de clé du compte propriétaire de la clé KMS définit la plage valide pour les autorisations. Cependant, les utilisateurs et les rôles du compte externe ne peuvent pas utiliser la clé KMS tant que vous n'avez pas attaché des politiques IAM qui délèguent ces autorisations ou utilisé des octrois pour gérer l'accès à la clé KMS. Les politiques IAM sont définies dans le compte externe. 

Si la politique de clé accorde l'autorisation au compte externe, vous pouvez attacher des politiques IAM à n'importe quel utilisateur ou rôle du compte. Toutefois, si la politique de clé accorde l'autorisation à des utilisateurs ou des rôles spécifiés, la politique IAM peut uniquement accorder ces autorisations à tous les utilisateurs et rôles spécifiés ou à un sous-ensemble. Si une politique IAM accorde l'accès à la clé KMS à d'autres utilisateurs ou rôles externes, cela n'a aucun effet.

La politique de clé limite également les actions dans la politique IAM. La politique IAM peut déléguer tout ou une partie des actions spécifiées dans la politique de clé. Si la politique IAM répertorie les actions qui ne sont pas spécifiées dans la politique de clé, ces autorisations ne sont pas effectives.

L'exemple de politique IAM suivant autorise le principal à utiliser la clé KMS dans le compte `111122223333` pour les opérations de chiffrement. Pour accorder cette autorisation aux utilisateurs et rôles du compte `444455556666`, [attachez la politique](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) aux utilisateurs ou rôles du compte `444455556666`.

**Note**  
L'exemple suivant illustre une politique IAM qui permet de partager une clé KMS avec un autre compte. Remplacez les valeurs `Sid`, `Resource` et `Action` de l'exemple par des valeurs valides pour l'utilisation prévue de votre clé KMS.

```
{
    "Sid": "AllowUseOfKeyInAccount111122223333",
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt",
      "kms:ReEncrypt*",
      "kms:GenerateDataKey*",
      "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

Notez les informations suivantes sur cette politique :
+ Contrairement aux politiques de clé, les instructions de politique IAM ne contiennent pas l'élément `Principal`. Dans les politiques IAM, le principal est l'identité à laquelle la politique est attachée. 
+ L'élément `Resource` de la politique IAM identifie la clé KMS que le principal peut utiliser. Pour spécifier une clé KMS, ajoutez son [ARN de clé](concepts.md#key-id-alias-ARN) à l'élément `Resource`.
+ Vous pouvez spécifier plusieurs clés KMS dans l'élément `Resource`. Si vous ne spécifiez pas de clés KMS particulières dans l'élément `Resource`, vous pouvez accorder par inadvertance l'accès à plus de clés KMS que prévu.
+ Pour autoriser l'utilisateur externe à utiliser la clé KMS avec des [services AWS qui s'intègrent à AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration), vous pouvez avoir besoin d'ajouter des autorisations à la politique de clé ou à la politique IAM. Pour plus de détails, veuillez consulter [Autoriser l'utilisation de clés KMS externes avec Services AWS](#cross-account-service).

Pour plus d'informations sur l'utilisation des politiques IAM, veuillez consulter [politiques IAM](iam-policies.md).

## Autoriser l'utilisation de clés KMS externes avec Services AWS
<a name="cross-account-service"></a>

Vous pouvez autoriser un utilisateur d'un autre compte à utiliser votre clé KMS avec un service intégré à AWS KMS. Par exemple, un utilisateur d'un compte externe peut utiliser votre clé KMS pour chiffrer les objets d'un compartiment Amazon S3 ou pour chiffrer les secrets dans lesquels ils sont stockés. AWS Secrets Manager

La politique de clé doit accorder à l'utilisateur externe ou au compte de l'utilisateur externe l'autorisation d'utiliser la clé KMS. De plus, vous devez attribuer des politiques IAM à l'identité qui autorise l'utilisateur à utiliser Service AWS. Le service peut également exiger que les utilisateurs disposent d'autorisations supplémentaires dans la politique de clé ou la politique IAM. Pour obtenir la liste des autorisations Service AWS requises sur une clé gérée par le client, consultez la rubrique Protection des données dans le chapitre Sécurité du guide de l'utilisateur ou du guide du développeur du service. 

## Utilisation de clés KMS dans d'autres comptes
<a name="cross-account-use"></a>

Si vous êtes autorisé à utiliser une clé KMS dans un autre Compte AWS, vous pouvez utiliser la clé KMS dans le AWS Management Console AWS SDKs, AWS CLI, et Outils AWS pour PowerShell. 

Pour identifier une clé KMS dans un compte différent dans une commande shell ou une demande d'API, utilisez les [identificateurs de clé](concepts.md#key-id) suivants.
+ Pour les [opérations cryptographiques](kms-cryptography.md#cryptographic-operations), et [DescribeKey[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), utilisez l'[ARN de la clé](concepts.md#key-id-key-ARN) ou l'[alias ARN](concepts.md#key-id-alias-ARN) de la clé KMS.
+ Pour [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), [GetKeyRotationStatus[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/ListGrants.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html), et [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/RevokeGrant.html), utilisez l'ARN de la clé KMS.

Si vous entrez uniquement un identifiant de clé ou un nom d'alias, cela AWS suppose que la clé KMS se trouve dans votre compte.

La AWS KMS console n'affiche pas les clés KMS dans les autres comptes, même si vous êtes autorisé à les utiliser. En outre, les listes de clés KMS affichées dans les consoles d'autres services AWS n'incluent pas de clés KMS dans d'autres comptes. 

Pour spécifier une clé KMS dans un autre compte de la console d'un AWS service, vous devez saisir l'ARN de la clé ou l'alias ARN de la clé KMS. L'identificateur de clé requis varie en fonction du service et peut différer entre la console de service et ses opérations d'API. Pour plus de détails, consultez la documentation du service.

# Contrôler l'accès aux clés multirégionales
<a name="multi-region-keys-auth"></a>

Vous pouvez utiliser des clés multi-région dans des scénarios de conformité, de reprise après sinistre et de sauvegarde qui seraient plus complexes avec les clés à région unique. Toutefois, étant donné que les propriétés de sécurité des clés multi-région sont significativement différentes de celles des clés à région unique, nous vous recommandons de faire preuve de prudence lorsque vous autorisez la création, la gestion et l'utilisation de clés multi-région.

**Note**  
Les instructions de politique IAM existantes avec des caractères génériques dans le champ `Resource` s'appliquent désormais à la fois aux clés à région unique et multi-région. Pour les limiter aux clés KMS à région unique ou aux clés multirégionales, utilisez la clé de MultiRegion condition [kms :](conditions-kms.md#conditions-kms-multiregion).

Utilisez vos outils d'autorisation pour empêcher la création et l'utilisation de clés multi-région dans tous les scénarios où une clé à région unique suffira. Autorisez les principaux à répliquer une clé multirégionale uniquement dans ceux Régions AWS qui en ont besoin. Donnez l'autorisation pour les clés multi-région uniquement aux principaux qui en ont besoin et uniquement pour les tâches qui en ont besoin.

Vous pouvez utiliser des politiques clés, des politiques IAM et des subventions pour permettre aux principaux IAM de gérer et d'utiliser des clés multirégionales dans votre. Compte AWS Chaque clé multi-région est une ressource indépendante dotée d'un ARN de clé unique et d'une politique de clé. Vous devez établir et maintenir une stratégie de clé pour chaque clé et vous assurer que les stratégies IAM nouvelles et existantes mettent en œuvre votre stratégie d'autorisation. 

Pour prendre en charge les clés multirégionales, AWS KMS utilise un rôle lié au service IAM. Ce rôle donne à AWS KMS les autorisations dont il a besoin pour synchroniser les [propriétés partagées](multi-region-keys-overview.md#mrk-sync-properties). Pour de plus amples informations, veuillez consulter [Autorisation de synchronisation AWS KMS des clés multirégionales](multi-region-auth-slr.md).

**Topics**
+ [Notions de base sur les autorisations pour les clés multi-région](#multi-region-auth-about)
+ [Autorisation des administrateurs et des utilisateurs de clés multi-région](#multi-region-auth-users)

## Notions de base sur les autorisations pour les clés multi-région
<a name="multi-region-auth-about"></a>

Lors de la conception de politiques de clé et de politiques IAM pour les clés multi-région, tenez compte des principes suivants.
+ **Politique de clé** — Chaque clé multi-région est une ressource de clé KMS indépendante avec sa propre [politique de clé](key-policies.md). Vous pouvez appliquer la même politique de clé ou une politique de clé différente à chaque clé de l'ensemble des clés multi-région associées. Les politiques clés *ne sont pas* des [propriétés partagées](multi-region-keys-overview.md#mrk-sync-properties) des clés multirégionales. AWS KMS ne copie ni ne synchronise les politiques clés entre les clés multirégionales associées. 

  Lorsque vous créez une réplique de clé dans la AWS KMS console, celle-ci affiche la politique de clé actuelle de la clé primaire pour plus de commodité. Vous pouvez utiliser cette politique de clé, la modifier ou la supprimer et la remplacer. Mais même si vous acceptez la politique de clé primaire telle quelle, AWS KMS cela ne synchronise pas les politiques. Par exemple, si vous modifiez la politique de clé de la clé principale, la politique de clé de la clé de réplica reste la même.
+ **Politique clé par défaut** — Lorsque vous créez des clés multirégionales à l'aide `ReplicateKey` des opérations [CreateKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateKey.html)et, la [politique clé par défaut](key-policy-default.md) est appliquée sauf si vous spécifiez une stratégie clé dans la demande. Il s'agit de la même politique de clé par défaut qui est appliquée aux clés à région unique.
+ **Politiques IAM** — Comme pour toutes les clés KMS, vous pouvez utiliser des politiques IAM pour contrôler l'accès aux clés multi-région uniquement lorsque [la politique de clé le permet](key-policy-default.md#key-policy-default-allow-root-enable-iam). Les [politiques IAM](iam-policies.md) s'appliquent à tous Régions AWS par défaut. Cependant, vous pouvez utiliser des clés de condition, telles que [aws : RequestedRegion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion), pour limiter les autorisations à une région particulière. 

  Pour créer des clés principales et des clés de réplica, les principaux doivent avoir l'autorisation `kms:CreateKey` dans une politique IAM qui s'applique à la région où la clé est créée. 
+ **Subventions** : les AWS KMS [subventions](grants.md) sont régionales. Chaque octroi autorise l'ajout d'autorisations sur une clé KMS. Vous pouvez utiliser des octrois pour autoriser des autorisations sur une clé principale ou une clé de réplica multi-région. Mais vous ne pouvez pas utiliser un seul octroi pour autoriser des autorisations sur plusieurs clés KMS, même s'il s'agit de clés multi-région associées.
+ **ARN de clé** — Chaque clé multi-région a un [ARN de clé unique](mrk-how-it-works.md). La clé ARNs des clés multirégionales associées possède la même partition, le même compte et le même identifiant de clé, mais des régions différentes.

  Pour appliquer une instruction de politique IAM à une clé multi-région particulière, utilisez son ARN de clé ou un modèle d'ARN de clé qui inclut la région. Pour appliquer une instruction de politique IAM à toutes les clés multi-région associées, utilisez un caractère générique (\$1) dans l'élément Region de l'ARN, comme illustré dans l'exemple suivant.

  ```
  {
    "Effect": "Allow",  
    "Action": [
      "kms:Describe*",
      "kms:List*"
    ],
    "Resource": {
        "arn:aws:kms:*::111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab"
    }
  }
  ```

  Pour appliquer une déclaration de politique à toutes les clés multirégionales de votre clé Compte AWS, vous pouvez utiliser la condition de MultiRegion politique [kms :](conditions-kms.md#conditions-kms-multiregion) ou un modèle d'identification de clé incluant le `mrk-` préfixe distinctif.
+ **Rôle lié au service** [— Les principaux qui créent des clés primaires multirégionales doivent disposer de l'autorisation iam :. CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)

  Pour synchroniser les propriétés partagées des clés multirégionales associées, AWS KMS assume un rôle lié au [service](multi-region-auth-slr.md) IAM. AWS KMS crée le rôle lié au service Compte AWS chaque fois que vous créez une clé primaire multirégionale. (Si le rôle existe, AWS KMS le recrée, ce qui n'a aucun effet nocif.) Le rôle est valable dans toutes les régions. [Pour permettre AWS KMS de créer (ou de recréer) le rôle lié au service, les principaux qui créent des clés primaires multirégionales doivent disposer de l'autorisation iam :. CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)

## Autorisation des administrateurs et des utilisateurs de clés multi-région
<a name="multi-region-auth-users"></a>

Les principaux qui créent et gèrent des clés multi-région ont besoin des autorisations suivantes dans les régions principale et de réplica :
+ `kms:CreateKey`
+ `kms:ReplicateKey`
+ `kms:UpdatePrimaryRegion`
+ `iam:CreateServiceLinkedRole`

### Création d'une clé principale
<a name="mrk-auth-create-primary"></a>

Pour [créer une clé primaire multirégionale](create-primary-keys.md), le principal a besoin des CreateServiceLinkedRole autorisations [kms : CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) et [iam :](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) dans une politique IAM effective dans la région de la clé primaire. Les principaux qui disposent de ces autorisations peuvent créer des clés à région unique et multi-région à moins que vous ne restreigniez leurs autorisations. 

L'`iam:CreateServiceLinkedRole`autorisation permet AWS KMS de créer le [**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**rôle](multi-region-auth-slr.md) pour synchroniser les [propriétés partagées](multi-region-keys-overview.md#mrk-sync-properties) des clés multirégionales associées.

Par exemple, cette politique IAM permet à un directeur de créer des clés multirégionales, d'associer des politiques pour ces clés et de créer des rôles liés à un service pour les clés multirégionales.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action": [
        "kms:CreateKey",
        "iam:CreateServiceLinkedRole"
      ],
      "Effect":"Allow",
      "Resource":"*"
  }
}
```

------

Pour autoriser ou refuser l'autorisation de créer des clés primaires multirégionales, utilisez la clé de MultiRegion condition [kms :](conditions-kms.md#conditions-kms-multiregion). Les valeurs valides sont `true` (clé multi-région) ou `false` (clé à région unique). Par exemple, l'instruction de politique IAM utilise une action `Deny` avec la clé de condition `kms:MultiRegion` pour empêcher les principaux de créer des clés multi-région. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"kms:CreateKey",
      "Effect":"Deny",
      "Resource":"*",
      "Condition": {
          "Bool": {
            "kms:MultiRegion": true
          }
      }
  }
}
```

------

### Réplication de clés
<a name="mrk-auth-replicate"></a>

Pour [créer une clé de réplica multi-région](#mrk-auth-replicate), le principal a besoin des autorisations suivantes :
+  [kms : ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) autorisation dans la politique de clé de la clé primaire.
+ [kms : CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) autorisation dans une politique IAM en vigueur dans la région de la clé de réplique.

Soyez prudent lorsque vous autorisez ces autorisations. Elles permettent aux principaux de créer des clés KMS et les politiques de clé qui autorisent leur utilisation. L'autorisation `kms:ReplicateKey` permet également le transfert d'éléments de clé au-delà des limites de la région dans AWS KMS.

Pour limiter les limites Régions AWS dans lesquelles une clé multirégionale peut être répliquée, utilisez la clé de ReplicaRegion condition [kms :](conditions-kms.md#conditions-kms-replica-region). Elle ne limite que l'autorisation `kms:ReplicateKey`. Sinon, elle n'a aucun effet. Par exemple, la politique de clé suivante autorise le principal à répliquer cette clé principale, mais uniquement dans les régions spécifiées.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:ReplicateKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ReplicaRegion": [
         "us-east-1",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

### Mise à jour de la région principale
<a name="mrk-auth-update"></a>

Les principaux autorisés peuvent transformer une clé de réplica en clé principale, ce qui transforme l'ancienne clé principale en un réplica. Cette action s'appelle la [mise à jour de la région principale](multi-region-update.md). Pour mettre à jour la région principale, le principal a besoin d'une UpdatePrimaryRegion autorisation de [km :](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) dans les deux régions. Vous pouvez fournir ces autorisations dans une politique de clé ou une politique IAM.
+ `kms:UpdatePrimaryRegion` sur la clé principale. Cette autorisation doit être effective dans la région de clé principale.
+ `kms:UpdatePrimaryRegion` sur la clé de réplica. Cette autorisation doit être effective dans la région de clé de réplica.

Par exemple, la politique de clé suivante donne aux utilisateurs qui peuvent endosser le rôle Administrateur l'autorisation de mettre à jour la région principale de la clé KMS. Cette clé KMS peut être la clé principale ou une clé de réplica dans cette opération.

```
{
  "Effect": "Allow",
  "Resource": "*",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:UpdatePrimaryRegion"
}
```

Pour restreindre la Régions AWS capacité d'héberger une clé primaire, utilisez la clé de PrimaryRegion condition [kms :](conditions-kms.md#conditions-kms-primary-region). Par exemple, la déclaration de politique IAM suivante permet aux principaux de mettre à jour la région principale des clés multirégionales dans le Compte AWS, mais uniquement lorsque la nouvelle région principale est l'une des régions spécifiées.

```
{
  "Effect": "Allow",  
  "Action": "kms:UpdatePrimaryRegion",
  "Resource": {
      "arn:aws:kms:*:111122223333:key/*"
  },
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-west-2",
         "sa-east-1",
         "ap-southeast-1"
      ]
    }
  }
}
```

### Utilisation et gestion des clés multi-région
<a name="mrk-auth-using"></a>

Par défaut, les principaux qui ont l'autorisation d'utiliser et de gérer les clés KMS dans un Compte AWS et une région ont également l'autorisation d'utiliser et de gérer des clés multi-région. Cependant, vous pouvez utiliser la clé de MultiRegion condition [kms :](conditions-kms.md#conditions-kms-multiregion) pour autoriser uniquement les clés à région unique ou uniquement les clés multirégionales. Vous pouvez également utiliser la clé de MultiRegionKeyType condition [kms :](conditions-kms.md#conditions-kms-multiregion-key-type) pour autoriser uniquement les clés primaires multirégionales ou uniquement les clés de réplique. Les deux clés de condition contrôlent l'accès à l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération et à toute opération utilisant une clé KMS existante, telle que [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) ou [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html).

L'exemple suivant d'instruction de politique IAM utilise la clé de condition `kms:MultiRegion` pour empêcher les principaux d'utiliser ou de gérer une clé multi-région.

```
{
  "Effect": "Deny",  
  "Action": "kms:*",
  "Resource": "*",
  "Condition": {
    "Bool": "kms:MultiRegion": true
  }
}
```

Cet exemple d'instruction de politique IAM utilise la condition `kms:MultiRegionKeyType` pour permettre aux principaux de planifier et d'annuler la suppression de clé, mais uniquement sur les clés de réplica multi-région.

```
{
  "Effect": "Allow",  
  "Action": [
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": {
      "arn:aws:kms:us-west-2:111122223333:key/*"
  },
  "Condition": {
    "StringEquals": "kms:MultiRegionKeyType": "REPLICA"
  }
}
```

# Déterminer l'accès à AWS KMS keys
<a name="determining-access"></a>

Pour déterminer l'étendue complète de qui ou de quoi a actuellement accès à une AWS KMS key, vous devez examiner la politique clé de la clé KMS, toutes les [autorisations](grants.md) qui s'appliquent à la clé KMS et potentiellement toutes les politiques Gestion des identités et des accès AWS (IAM). Vous pouvez le faire pour déterminer la portée de l'utilisation potentielle d'une clé KMS ou pour mieux répondre aux exigences d'audit ou de conformité. Les rubriques suivantes peuvent vous aider à générer une liste complète des principaux AWS (identités) qui ont actuellement accès à une clé KMS.

**Topics**
+ [Examen de la politique de clé](determining-access-key-policy.md)
+ [Examen des politiques IAM](determining-access-iam-policies.md)
+ [Examen des octrois](determining-access-grants.md)

# Examen de la politique de clé
<a name="determining-access-key-policy"></a>

Les [politiques de clé](key-policies.md) constituent le principal moyen de contrôler l'accès aux clés KMS. Chaque clé KMS a exactement une politique de clé.

Lorsqu'une politique de clé inclut la [politique de clé par défaut](key-policy-default.md#key-policy-default-allow-root-enable-iam), elle permet aux administrateurs IAM du compte d'utiliser des politiques IAM pour contrôler l'accès à la clé KMS. En outre, si la politique de clé donne à [un autre Compte AWS](key-policy-modifying-external-accounts.md) l'autorisation d'utiliser la clé KMS, les administrateurs IAM du compte externe peuvent utiliser des politiques IAM pour déléguer ces autorisations. Pour déterminer la liste complète des principaux qui peuvent accéder à la clé KMS, [examinez les politiques IAM](determining-access-iam-policies.md). 

Pour consulter la politique clé d'une [clé gérée par le AWS KMS client](concepts.md#customer-mgn-key) ou [Clé gérée par AWS](concepts.md#aws-managed-key)de votre compte, utilisez l'[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)opération AWS Management Console ou dans l' AWS KMS API. Pour afficher la politique de clé, vous devez disposer des autorisations `kms:GetKeyPolicy` pour la clé KMS. Pour obtenir des instructions sur l'affichage de la politique de clé d'une clé KMS, veuillez consulter [Afficher une politique clé](key-policy-viewing.md).

Examinez le document de politique de clé et notez tous les principaux spécifiés dans l'élément `Principal` de chaque instruction de politique. Dans une déclaration de politique ayant un `Allow` effet, les utilisateurs IAM, les rôles IAM et Comptes AWS l'`Principal`élément ont accès à cette clé KMS.

**Note**  
Ne définissez pas le principal sur un astérisque (\$1) dans une instruction de politique de clé qui autorise des autorisations, sauf si vous utilisez des [conditions](policy-conditions.md) pour limiter la politique de clé. Un astérisque indique chaque identité associée à chaque Compte AWS autorisation d'utilisation de la clé KMS, sauf si une autre déclaration de politique le nie explicitement. Les utilisateurs des autres utilisateurs Comptes AWS peuvent utiliser votre clé KMS chaque fois qu'ils disposent des autorisations correspondantes sur leur propre compte.

Les exemples suivants utilisent les instructions de politique trouvées dans la [politique de clé par défaut](key-policy-default.md) pour montrer comment procéder.

**Example Instruction de politique 1**  

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
  "Action": "kms:*",
  "Resource": "*"
}
```
Dans l'énoncé de politique 1, `arn:aws:iam::111122223333:root` un [principal de AWS compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) fait référence au Compte AWS 111122223333. (Il ne s'agit pas de l'utilisateur root du compte). Par défaut, une déclaration de politique comme celle-ci est incluse dans le document de politique clé lorsque vous créez une nouvelle clé KMS avec le AWS Management Console, ou lorsque vous créez une nouvelle clé KMS par programmation sans fournir de politique clé.  
Document de politique clé contenant une déclaration autorisant l'accès aux [politiques d' Compte AWS activation IAM du compte afin d'autoriser l'accès à la clé KMS](key-policy-default.md#key-policy-default-allow-root-enable-iam). Cela signifie que les utilisateurs et rôles figurant dans le compte peuvent avoir accès à la clé KMS, même s'ils ne sont pas répertoriés explicitement en tant que principaux dans le document de politique de clé. Prenez soin d'[examiner toutes les politiques IAM](determining-access-iam-policies.md) Comptes AWS répertoriées comme principales afin de déterminer si elles autorisent l'accès à cette clé KMS.

**Example Instruction de politique 2**  

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"},
  "Action": [
    "kms:Describe*",
    "kms:Put*",
    "kms:Create*",
    "kms:Update*",
    "kms:Enable*",
    "kms:Revoke*",
    "kms:List*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```
Dans la déclaration de politique 2, `arn:aws:iam::111122223333:role/KMSKeyAdmins` fait référence au rôle IAM nommé KMSKey Admins dans Compte AWS le document 111122223333. Les utilisateurs autorisés à assumer ce rôle sont habilités à effectuer les opérations répertoriées dans l'instruction de politique, à savoir les opérations administratives permettant de gérer une clé KMS.

**Example Instruction de politique 3**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```
Dans la déclaration de politique 3, `arn:aws:iam::111122223333:role/EncryptionApp` fait référence au rôle IAM nommé EncryptionApp dans Compte AWS 111122223333. Les principaux autorisés à assumer ce rôle sont habilités à effectuer les opérations répertoriées dans l'instruction de politique, y compris les [opérations de chiffrement](kms-cryptography.md#cryptographic-operations) relatives à une clé KMS de chiffrement symétrique.

**Example Instruction de politique 4**  

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:ListGrants",
    "kms:CreateGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```
Dans la déclaration de politique 4, `arn:aws:iam::111122223333:role/EncryptionApp` fait référence au rôle IAM nommé EncryptionApp dans Compte AWS 111122223333. Les principaux autorisés à assumer ce rôle sont habilités à effectuer les opérations répertoriées dans l'instruction de politique. Ces actions, lorsqu'elles sont combinées aux actions autorisées dans l'**exemple d'instruction de politique 3**, sont celles requises pour déléguer l'utilisation de la clé KMS à la plupart des [services AWS qui s'intègrent à AWS KMS](service-integration.md), notamment aux services qui utilisent des [octrois](grants.md). La GrantIsFor AWSResource valeur [kms :](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) dans l'`Condition`élément garantit que la délégation n'est autorisée que lorsque le délégué est un AWS service qui intègre AWS KMS et utilise des autorisations d'autorisation.

Pour découvrir toutes les différentes façons de spécifier un principal dans un document de politique de clé, veuillez consulter la page [Spécification d'un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal_specifying) dans le *Guide de l'utilisateur IAM*.

Pour en savoir plus sur les AWS KMS principales politiques, voir[Politiques clés en AWS KMS](key-policies.md).

# Examen des politiques IAM
<a name="determining-access-iam-policies"></a>

Outre la politique de clé et les octrois, vous pouvez utiliser des [politiques IAM](iam-policies.md) pour autoriser l'accès à une clé KMS. Pour plus d'informations sur la manière dont les politiques de clé et les politiques IAM fonctionnent ensemble, veuillez consulter [AWS KMS Permissions de résolution des](policy-evaluation.md).

Pour déterminer quels principaux ont actuellement accès à une clé KMS via les politiques IAM, vous pouvez utiliser l'outil [simulateur de politiques IAM](https://policysim.aws.amazon.com/) basé sur le navigateur ou vous pouvez adresser des demandes à l'API IAM.

**Contents**
+ [Examen des politiques IAM avec le simulateur de politiques IAM](#determining-access-iam-policy-simulator)
+ [Examen des politiques IAM avec l'API IAM](#determining-access-iam-api)

## Examen des politiques IAM avec le simulateur de politiques IAM
<a name="determining-access-iam-policy-simulator"></a>

Le simulateur de politiques IAM peut vous aider à découvrir quels principaux ont accès à une clé KMS via une politique IAM.

**Pour utiliser le simulateur de politiques IAM pour déterminer l'accès à une clé KMS**

1. Connectez-vous au simulateur de politique IAM, AWS Management Console puis ouvrez-le à [https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/) l'adresse.

1. Dans le volet **Users, Groups, and Roles**, choisissez l'utilisateur, le groupe ou le rôle dont vous souhaitez simuler les politiques.

1. (Facultatif) Décochez les cases en regard de toutes les politiques que vous souhaitez ignorer pour la simulation. Pour simuler toutes les politiques, laissez toutes les politiques sélectionnées.

1. Dans le volet **Policy Simulator**, procédez comme suit :

   1. Pour **Select service**, choisissez **Key Management Service**.

   1. Pour simuler des AWS KMS actions spécifiques, pour **Sélectionner des actions**, choisissez les actions à simuler. Pour simuler toutes les AWS KMS actions, choisissez **Tout sélectionner**.

1. (Facultatif) Le simulateur de politiques simule l'accès à toutes les clés KMS par défaut. Pour simuler l'accès à une clé KMS spécifique, sélectionnez **Simulation Settings (Paramètres de simulation)**, puis saisissez l'Amazon Resource Name (ARN) de la clé KMS à simuler.

1. Choisissez **Exécuter la simulation**.

Vous pouvez afficher les résultats de la simulation dans la section **Résultats**. Répétez les étapes 2 à 6 pour chaque utilisateur, groupe et rôle figurant dans le Compte AWS.

## Examen des politiques IAM avec l'API IAM
<a name="determining-access-iam-api"></a>

Vous pouvez utiliser l'API IAM pour examiner par programmation les politiques IAM. Les étapes suivantes offrent une présentation générale de la façon de procéder :

1. Pour chaque utilisateur Compte AWS répertorié en tant que principal dans la politique clé (c'est-à-dire chaque [principal de AWS compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) spécifié dans ce format :`"Principal": {"AWS": "arn:aws:iam::111122223333:root"}`), utilisez les [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)opérations [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)et de l'API IAM pour obtenir tous les utilisateurs et rôles du compte.

1. Pour chaque utilisateur et chaque rôle de la liste, utilisez l'[SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)opération de l'API IAM en transmettant les paramètres suivants :
   + Pour `PolicySourceArn`, spécifiez le nom ARN (Amazon Resource Name) d'un utilisateur ou d'un rôle figurant dans votre liste. Vous ne pouvez spécifier qu'un seul nom `PolicySourceArn` pour chaque demande `SimulatePrincipalPolicy`. Vous devez donc appeler cette opération plusieurs fois, une fois pour chaque utilisateur et rôle de votre liste.
   + Pour la `ActionNames` liste, spécifiez chaque action d' AWS KMS API à simuler. Pour simuler toutes les actions de AWS KMS l'API, utilisez`kms:*`. Pour tester des actions AWS KMS d'API individuelles, faites précéder chaque action d'API de `kms:` « », par exemple « `kms:ListKeys` ». Pour obtenir la liste complète des actions de l'API AWS KMS , consultez [Actions](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) dans la *référence d'API AWS Key Management Service *.
   + (Facultatif) Pour déterminer si les utilisateurs ou les rôles ont accès à des clés KMS spécifiques, utilisez le `ResourceArns` paramètre pour spécifier une liste des Amazon Resource Names (ARNs) des clés KMS. Pour déterminer si les utilisateurs ou les rôles ont accès à une clé KMS quelconque, omettez le paramètre `ResourceArns`.

IAM répond à chaque demande `SimulatePrincipalPolicy` avec une décision d'évaluation : `allowed`, `explicitDeny` ou `implicitDeny`. Pour chaque réponse contenant une décision d'évaluation de`allowed`, la réponse inclut le nom de l'opération d' AWS KMS API spécifique autorisée. Elle inclut également l'ARN de la clé KMS qui a été utilisée dans l'évaluation, le cas échéant.

# Examen des octrois
<a name="determining-access-grants"></a>

Les subventions sont des mécanismes avancés permettant de spécifier les autorisations que vous ou un AWS service intégré AWS KMS pouvez utiliser pour spécifier comment et quand une clé KMS peut être utilisée. Les octrois sont attachés à une clé KMS et chaque octroi contient le principal qui reçoit l'autorisation d'utiliser la clé KMS et la liste des opérations autorisées. Les octrois représentent une alternative à la politique de clé et sont utiles pour des cas d'utilisation spécifiques. Pour de plus amples informations, veuillez consulter [Subventions en AWS KMS](grants.md).

Pour obtenir une liste des autorisations pour une clé KMS, utilisez l' AWS KMS [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)opération. Vous pouvez examiner les octrois définis pour une clé KMS afin de déterminer qui a actuellement accès à la clé KMS pour l'utiliser via ces octrois. Par exemple, ce qui suit est une représentation JSON d'un octroi qui a été obtenu à partir de la commande [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) dans l' AWS CLI.

```
{"Grants": [{
  "Operations": ["Decrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132",
  "RetiringPrincipal": "arn:aws:iam::123456789012:root",
  "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab",
  "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151834E9,
  "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}
}]}
```

Pour identifier qui a accès à la clé KMS pour l'utiliser, recherchez l'élément `"GranteePrincipal"`. Dans l'exemple précédent, le principal bénéficiaire est un utilisateur du rôle assumé associé à l'instance EC2 i-5d476fab. L'infrastructure EC2 utilise ce rôle pour attacher le volume EBS chiffré vol-5cccfb4e à l'instance. Dans ce cas, le rôle d'infrastructure EC2 a l'autorisation d'utiliser la clé KMS, parce que vous avez créé précédemment un volume EBS chiffré protégé par cette clé KMS. Puis, vous avez attaché le volume à une instance EC2.

Ce qui suit est un autre exemple de représentation JSON d'un octroi qui a été obtenu à partir de la commande [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) dans l' AWS CLI. Dans l'exemple suivant, le directeur du bénéficiaire est un autre Compte AWS.

```
{"Grants": [{
  "Operations": ["Encrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "",
  "GranteePrincipal": "arn:aws:iam::444455556666:root",
  "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151269E9
}]}
```

# Contexte de chiffrement
<a name="encrypt_context"></a>

**Note**  
Vous ne pouvez pas spécifier de contexte de chiffrement dans une opération de chiffrement avec une [clé KMS asymétrique](symmetric-asymmetric.md) ou une [clé KMS HMAC](hmac.md). Les algorithmes asymétriques et les algorithmes MAC ne prennent pas en charge un contexte de chiffrement.

Toutes les [opérations AWS KMS cryptographiques utilisant des](kms-cryptography.md#cryptographic-operations) [clés KMS de chiffrement symétriques](symm-asymm-choose-key-spec.md#symmetric-cmks) acceptent un *contexte de chiffrement*, un ensemble facultatif de paires clé-valeur non secrètes pouvant contenir des informations contextuelles supplémentaires sur les données. Vous pouvez insérer un contexte de chiffrement dans les `Encrypt` opérations afin AWS KMS d'améliorer l'autorisation et l'auditabilité de vos appels de déchiffrement d' AWS KMS API. AWS KMS utilise le contexte de chiffrement en tant que données authentifiées supplémentaires (AAD) pour prendre en charge le chiffrement authentifié. Le contexte de chiffrement est lié cryptographiquement au texte chiffré, de sorte que le même contexte de chiffrement est requis pour déchiffrer les données.

Le contexte de chiffrement n'est pas secret ou chiffré. Il apparaît en texte brut dans les [journaux AWS CloudTrail](logging-using-cloudtrail.md) pour vous permettre d'identifier et de classer vos opérations de chiffrement. Votre contexte de chiffrement ne doit pas inclure d'informations sensibles. Nous recommandons que votre chiffrement le contexte décrive les données en cours de chiffrement ou de déchiffrement. Par exemple, lorsque vous chiffrez un fichier, vous pouvez utiliser une partie du chemin de fichier comme contexte de chiffrement.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Par exemple, lors du chiffrement de volumes et d'instantanés créés avec l'opération [Amazon Elastic Block Store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) (Amazon EBS) [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshot.html), Amazon EBS utilise l'ID du volume comme valeur de contexte de chiffrement.

```
"encryptionContext": {
  "aws:ebs:id": "vol-abcde12345abc1234"
}
```

Vous pouvez également utiliser le contexte de chiffrement pour affiner ou limiter l'accès AWS KMS keys à votre compte. Vous pouvez utiliser le contexte de chiffrement [en tant que contrainte dans les octrois](grants.md) et en tant que *[condition dans les instructions de politique](policy-conditions.md)*. Les clés de contexte de chiffrement et leurs valeurs peuvent être des chaînes arbitraires avec`aws`. Ces valeurs contrastent avec les [balises AWS générées](https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html#tag-conventions) telles que [aws:cloudformation:stack-name](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html). Pour de plus amples informations, consultez [kms EncryptionContext : touche *contextuelle*](conditions-kms.md#conditions-kms-encryption-context). 

Pour savoir comment utiliser le contexte de chiffrement pour protéger l'intégrité des données chiffrées, consultez le billet [Comment protéger l'intégrité de vos données chiffrées en utilisant AWS Key Management Service et EncryptionContext](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) sur le blog sur la AWS sécurité.

## Règles liées au contexte de chiffrement
<a name="encryption-context-rules"></a>

AWS KMS applique les règles suivantes pour les clés et les valeurs de contexte de chiffrement.
+ La clé et la valeur d'une paire de contexte de chiffrement doivent être des chaînes littérales simples. Si vous utilisez un type différent, tel qu'un nombre entier ou à virgule flottante, AWS KMS l'interprète comme une chaîne.
+ Les clés et les valeurs dans un contexte de chiffrement peuvent inclure des caractères Unicode. Si un contexte de chiffrement inclut des caractères non autorisés dans les politiques de clé ou les politiques IAM, vous ne pourrez pas spécifier le contexte de chiffrement dans les clés de condition de politique, telles que [`kms:EncryptionContext:context-key`](conditions-kms.md#conditions-kms-encryption-context) et [`kms:EncryptionContextKeys`](conditions-kms.md#conditions-kms-encryption-context-keys). Pour plus d'informations sur les règles de document de politique de clé, voir [Format de politique de clé](key-policy-overview.md#key-policy-format). Pour plus d'informations sur les règles du document de politique IAM, veuillez consulter [Exigences relatives aux noms IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) dans le *Guide de l'utilisateur IAM*.

## Contexte de chiffrement dans les politiques
<a name="encryption-context-authorization"></a>

Le contexte de chiffrement est utilisé principalement pour vérifier l'intégrité et l'authenticité. Mais vous pouvez également utiliser le contexte de chiffrement pour contrôler l'accès au chiffrement symétrique AWS KMS keys dans les politiques IAM et les politiques clés. 

Les clés de EncryptionContextKeys condition [kms EncryptionContext :](conditions-kms.md#conditions-kms-encryption-context) : et [kms :](conditions-kms.md#conditions-kms-encryption-context) autorisent (ou refusent) une autorisation uniquement lorsque la demande inclut des clés de contexte de chiffrement ou des paires clé-valeur particulières. 

Par exemple, l'instruction de politique de clé suivante autorise le rôle `RoleForExampleApp` à utiliser la clé KMS dans les opérations `Decrypt`. Elle utilise la clé de condition `kms:EncryptionContext:context-key` pour accorder cette autorisation uniquement lorsque le contexte de chiffrement de la demande inclut une paire de contexte de chiffrement `AppName:ExampleApp`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Pour plus d'informations sur ces clés de condition de contexte de chiffrement, consultez [Clés de condition pour AWS KMS](policy-conditions.md).

## Contexte de chiffrement dans des octrois
<a name="encryption-context-grants"></a>

Lorsque vous [créez une subvention](grants.md), vous pouvez inclure des [contraintes de subvention](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) qui établissent les conditions des autorisations d'octroi. AWS KMS prend en charge deux contraintes d'autorisation`EncryptionContextSubset`, qui impliquent toutes deux le [contexte de chiffrement](#encrypt_context) dans une demande d'opération cryptographique. `EncryptionContextEquals` Lorsque vous utilisez ces contraintes d'octroi, les autorisations de l'octroi sont effectives uniquement lorsque le contexte de chiffrement de la demande pour l'opération de chiffrement satisfait aux exigences des contraintes d'octroi. 

Par exemple, vous pouvez ajouter une contrainte d'`EncryptionContextEquals`autorisation à une autorisation autorisant l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération. Avec cette contrainte, l'octroi autorise l'opération uniquement lorsque le contexte de chiffrement de la demande est une correspondance sensible à la casse pour le contexte de chiffrement de la contrainte d'octroi.

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/exampleUser \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --operations GenerateDataKey \
    --constraints EncryptionContextEquals={Purpose=Test}
```

Une demande telle que la suivante émanant du principal bénéficiaire satisferait à la contrainte `EncryptionContextEquals`.

```
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-spec AES_256 \
    --encryption-context Purpose=Test
```

Pour plus d'informations sur les contraintes d'octroi, veuillez consulter [Utilisation des contraintes d'octroi](create-grant-overview.md#grant-constraints). Pour de plus amples informations sur les octrois, veuillez consulter [Subventions en AWS KMS](grants.md).

## Consignation du contexte de chiffrement
<a name="encryption-context-auditing"></a>

AWS KMS utilise AWS CloudTrail pour enregistrer le contexte de chiffrement afin que vous puissiez déterminer quelles clés et données KMS ont été consultées. L'entrée de journal montre exactement quelles clés KMS ont été utilisées pour chiffrer ou déchiffrer les données spécifiques référencées par le contexte de chiffrement dans l'entrée de journal.

**Important**  
Etant donné que le contexte de chiffrement est consigné, il ne doit contenir d'informations sensibles.

## Stockage du contexte de chiffrement
<a name="encryption-context-storing"></a>

Pour simplifier l'utilisation de n'importe quel contexte de chiffrement lorsque vous appelez les opérations [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) ou [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html), vous pouvez stocker le contexte de chiffrement en même temps que les données chiffrées. Nous vous conseillons de stocker juste assez du contexte de chiffrement pour créer aisément le contexte de chiffrement complet, lorsque cela est nécessaire pour le chiffrement ou le déchiffrement. 

Par exemple, si le contexte de chiffrement est le chemin d'accès complet à un fichier, stockez uniquement une partie de ce chemin d'accès avec le contenu du fichier chiffré. Ensuite, lorsque vous aurez besoin du contexte de chiffrement complet, reconstruisez-le à partir du fragment stocké. En cas de tentative d'accès non autorisé au fichier, par exemple pour le renommer ou le déplacer, la valeur du contexte de chiffrement change et la requête de déchiffrement échoue.

# Test des autorisations
<a name="testing-permissions"></a>

Pour l'utiliser AWS KMS, vous devez disposer d'informations d'identification AWS permettant d'authentifier vos demandes d'API. Les informations d'identification doivent inclure des autorisations pour accéder aux clés KMS et aux alias. Les autorisations sont déterminées par les stratégies de clé, les politiques IAM, les octrois et les contrôles d'accès intercomptes. Outre le contrôle de l'accès aux clés KMS, vous pouvez contrôler l'accès à votre CloudHSM et à vos magasins de clés personnalisés.

Vous pouvez spécifier le paramètre d’API `DryRun` pour vérifier que vous disposez des autorisations nécessaires pour utiliser les clés  AWS KMS . Vous pouvez également l'utiliser `DryRun` pour vérifier que les paramètres de demande dans un appel d' AWS KMS API sont correctement spécifiés. 

**Topics**
+ [Quel est le DryRun paramètre ?](#what-is-dryrun)
+ [Spécification DryRun à l'aide de l'API](#dryrun-api)

## Quel est le DryRun paramètre ?
<a name="what-is-dryrun"></a>

 `DryRun` est un paramètre d'API facultatif que vous spécifiez pour vérifier que les appels d’API AWS KMS aboutiront. Utilisez `DryRun` pour tester votre appel d'API, avant de passer réellement l'appel à AWS KMS. Vous pouvez modifier les valeurs suivantes : 
+ Que vous disposez des autorisations nécessaires pour utiliser les clés AWS KMS .
+ Que vous avez correctement spécifié les paramètres lors de l'appel.

AWS KMS prend en charge l'utilisation du `DryRun` paramètre dans certaines actions d'API : 
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
+ [Decrypt (Déchiffrer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
+ [Encrypt (Chiffrer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
+ [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
+ [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
+ [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
+ [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
+ [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
+ [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
+ [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
+ [Sign (Signer)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
+ [Verify (Vérifier)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
+ [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)

L'utilisation du paramètre `DryRun` entraînera des frais et sera facturée comme une demande d'API standard. Pour plus d'informations sur la AWS KMS tarification, consultez la section [AWS Key Management Service Tarification](https://aws.amazon.com/kms/pricing/).

 Toutes les demandes d'API utilisant le paramètre `DryRun` s'appliquent au quota de demandes de l'API et peuvent entraîner une exception de limitation si vous dépassez un quota de demandes d'API. Par exemple, le fait d'appeler [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) avec `DryRun` ou sans `DryRun` compte pour le même quota d'opérations cryptographiques. Pour en savoir plus, consultez [Limitation des demandes AWS KMS](throttling.md).

Chaque appel à une opération d' AWS KMS API est capturé en tant qu'événement et enregistré dans un AWS CloudTrail journal. Le résultat de toutes les opérations qui spécifient le `DryRun` paramètre apparaît dans votre CloudTrail journal. Pour de plus amples informations, veuillez consulter [Journalisation des appels d' AWS KMS API avec AWS CloudTrail](logging-using-cloudtrail.md).

## Spécification DryRun à l'aide de l'API
<a name="dryrun-api"></a>

Pour l'utiliser`DryRun`, spécifiez le `—dry-run` paramètre dans AWS CLI les commandes et les appels d' AWS KMS API qui le prennent en charge. Lorsque vous le ferez, AWS KMS nous vérifierons si votre appel aboutira. AWS KMS les appels utilisés `DryRun` échoueront toujours et renverront un message contenant des informations sur la raison de l'échec de l'appel. Le message peut inclure les exceptions suivantes :
+ `DryRunOperationException` ‐ La demande aboutirait si `DryRun` n'était pas spécifié. 
+ `ValidationException` ‐ La demande n'a pas réussi à spécifier un paramètre d'API incorrect.
+ `AccessDeniedException` ‐ Vous ne disposez pas des autorisations pour exécuter l'action d'API spécifiée sur la ressource KMS.

Par exemple, la commande suivante utilise l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)opération et crée une autorisation qui permet aux utilisateurs autorisés à assumer le `keyUserRole` rôle d'appeler l'opération de [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) sur une clé [KMS symétrique](symm-asymm-choose-key-spec.md#symmetric-cmks) spécifiée. Le paramètre `DryRun` est spécifié.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --dry-run
```

# AWS KMS Permissions de résolution des
<a name="policy-evaluation"></a><a name="security_iam_troubleshoot"></a>

Lorsque vous autorisez l'accès à une clé KMS, AWS KMS évalue les points suivants :
+ La [politique de clé](determining-access-key-policy.md) attachée à la clé KMS. La politique clé est toujours définie dans la région Compte AWS et qui possède la clé KMS. 
+ Toutes les [politiques IAM](determining-access-iam-policies.md) attribuées à l'utilisateur ou au rôle à l'origine de la demande. Les politiques IAM qui régissent l'utilisation d'une clé KMS par un principal sont toujours définies dans le Compte AWS du principal.
+ Tous les [octrois](determining-access-grants.md) qui s'appliquent à la clé KMS.
+ D'autres types de politiques qui peuvent s'appliquer à la demande d'utilisation de la clé KMS, tels que les [politiques de contrôle des services AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_type-auth.html#orgs_manage_policies_scp) et les [politiques de point de terminaison d'un VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy). Ces politiques sont facultatives et autorisent toutes les actions par défaut, mais vous pouvez les utiliser pour restreindre les autorisations accordées par ailleurs aux principaux.

AWS KMS évalue ensemble ces mécanismes de politique afin de déterminer si l'accès à la clé KMS est autorisé ou refusé. Pour ce faire, AWS KMS utilise un processus similaire à celui décrit dans l'organigramme suivant. Le diagramme suivant fournit une représentation visuelle du processus d'évaluation de la politique.

![\[Diagramme de flux décrivant le processus d'évaluation des politiques\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/updated-kms-authz-diagram.png)


Ce diagramme est divisé en deux parties. Les parties semblent être séquentielles, mais elles sont généralement évaluées en même temps.
+ *Use authorization* détermine si vous êtes autorisé à utiliser une clé KMS en fonction de sa politique de clé, des politiques IAM, des octrois et des autres politiques applicables.
+ *Key trust* détermine si vous devez approuver une clé KMS que vous êtes autorisé à utiliser. En général, vous faites confiance aux ressources de votre Compte AWS. Mais vous pouvez également être sûr d'utiliser les clés KMS d'une autre manière Compte AWS si une licence ou une politique IAM de votre compte vous autorise à utiliser la clé KMS.

Vous pouvez utiliser ce diagramme de flux pour découvrir pourquoi un appelant est autorisé ou non à utiliser une clé KMS. Vous pouvez également l'utiliser pour évaluer vos politiques et octrois. Par exemple, le diagramme montre qu'un appelant peut se voir refuser l'accès par une instruction `DENY` explicite, ou en l'absence d'une instruction `ALLOW` explicite, dans la politique de clé, la politique IAM, ou l'octroi.

Le diagramme peut expliquer certains scénarios d'autorisation courants.

**Topics**
+ [Exemple 1 : L'utilisateur se voit refuser l'accès à une clé KMS dans son Compte AWS](#example-no-iam)
+ [Exemple 2 : L'utilisateur assume un rôle autorisé à utiliser une clé KMS dans un autre Compte AWS](#example-cross-acct)

## Exemple 1 : L'utilisateur se voit refuser l'accès à une clé KMS dans son Compte AWS
<a name="example-no-iam"></a>

Alice est une utilisatrice IAM du Compte AWS 111122223333. L'accès à une clé KMS lui a été refusé sur ce même Compte AWS. Pourquoi Alice ne peut-elle pas utiliser la clé KMS ?

Dans ce cas, Alice se voit refuser l'accès à la clé KMS, car aucune politique de clé, aucune politique IAM ou aucun octroi ne lui accorde les autorisations requises. La politique clé de la clé KMS permet d' Compte AWS utiliser des politiques IAM pour contrôler l'accès à la clé KMS, mais aucune politique IAM n'autorise Alice à utiliser la clé KMS.

![\[Diagramme de flux décrivant le processus d'évaluation des politiques\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/kms-auth-flow-Alice.png)


Considérez les politiques appropriées dans cet exemple.
+ La clé KMS qu'Alice souhaite utiliser dispose de la [politique de clé par défaut](key-policy-default.md). Cette politique [autorise le Compte AWS](key-policy-default.md#key-policy-default-allow-root-enable-iam) qui possède la clé KMS à utiliser des politiques IAM pour contrôler l'accès à la clé KMS. Cette politique de clé remplit la condition *La politique de clé AUTORISE-t-elle le compte du principal à utiliser les politiques IAM pour contrôler l'accès à la clé ?* du diagramme de flux.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-test-1",
    "Statement" : [ {
      "Sid" : "DelegateToIAMPolicies",
      "Effect" : "Allow",
      "Principal" : {
        "AWS" : "arn:aws:iam::111122223333:root"
      },
      "Action" : "kms:*",
      "Resource" : "*"
    } ]
  }
  ```

------
+ Cependant, aucune politique de clé, aucune politique IAM ou aucun octroi ne donne à Alice l'autorisation d'utiliser la clé KMS. Par conséquent, Alice se voit refuser l'autorisation d'utiliser la clé KMS.

## Exemple 2 : L'utilisateur assume un rôle autorisé à utiliser une clé KMS dans un autre Compte AWS
<a name="example-cross-acct"></a>

Bob est un utilisateur du compte 1 (111122223333). Il est autorisé à utiliser une clé KMS du compte 2 (444455556666) pour les [opérations cryptographiques](kms-cryptography.md#cryptographic-operations). Comment est-ce possible ?

**Astuce**  
Lors de l'évaluation des autorisations inter-comptes, n'oubliez pas que la politique de clé est spécifiée dans le compte de la clé KMS. La politique IAM est spécifiée dans le compte de l'appelant, même lorsque l'appelant se trouve dans un autre compte. Pour plus de détails sur la fourniture d'un accès inter-comptes aux clés KMS, veuillez consulter [Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS](key-policy-modifying-external-accounts.md).
+ La politique de clé de la clé KMS du compte 2 autorise ce dernier à utiliser les politiques IAM pour contrôler l'accès à la clé KMS. 
+ La politique de clé de la clé KMS du compte 2 autorise le compte 1 à utiliser la clé KMS pour les opérations de chiffrement. Toutefois, le compte 1 doit utiliser les politiques IAM pour accorder à ses principaux l'accès à la clé KMS.
+ Une politique IAM du compte 1 autorise le rôle `Engineering` à utiliser la clé KMS dans le compte 2 pour les opérations de chiffrement.
+ Bob, un utilisateur du compte 1, a l'autorisation d'endosser le rôle `Engineering`.
+ Enfin, Bob peut faire confiance à cette clé KMS. En effet, même si cette dernière n'appartient pas à son compte, une politique IAM de son compte lui donne l'autorisation explicite d'utiliser cette clé KMS.

![\[Diagramme de flux décrivant le processus d'évaluation des politiques\]](http://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/images/kms-auth-flow-Bob.png)


Examinons les politiques qui permettent à Bob, un utilisateur du compte 1, d'utiliser la clé KMS du compte 2.
+ La politique de clé de la clé KMS autorise le compte 2 (444455556666, le compte qui possède la clé KMS) à utiliser les politiques IAM pour contrôler l'accès à la clé KMS. Cette politique de clé permet également au compte 1 (111122223333) d'utiliser la clé KMS pour les opérations de chiffrement (spécifiées dans l'élément `Action` de l'instruction de politique). Toutefois, aucun utilisateur du compte 1 ne peut utiliser la clé KMS du compte 2 tant que le compte 1 n'a pas défini les politiques IAM qui accordent aux principaux l'accès à la clé KMS.

  Dans le diagramme de flux, cette politique de clé du compte 2 remplit la condition *La politique de clé AUTORISE-t-elle le compte de l'appelant à utiliser les politiques IAM pour contrôler l'accès à la clé ?*. 

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

****  

  ```
  {
      "Id": "key-policy-acct-2",
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "PermissionUseIAMpolicies",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::444455556666:root"
              },
              "Action": "kms:*",
              "Resource": "*"
          },
          {
              "Sid": "AllowAccount1UseThisKMSKeys",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo",
                  "kms:GenerateDataKey",
                  "kms:GenerateDataKeyWithoutPlaintext",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Une politique IAM de l'appelant Compte AWS (compte 1, 111122223333) autorise le principal à effectuer des opérations cryptographiques à l'aide de la clé KMS du compte 2 (444455556666). L'élément `Action` accorde au principal les mêmes autorisations que la politique de clé du compte 2 a accordées au compte 1. Pour accorder ces autorisations au rôle `Engineering` du compte 1, [cette politique en ligne est intégrée](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html) au rôle `Engineering`.

  De telles politiques IAM inter-comptes sont efficaces uniquement lorsque la politique de clé de la clé KMS du compte 2 accorde au compte 1 l'autorisation d'utiliser la clé KMS. De plus, le compte 1 peut uniquement accorder aux principaux l'autorisation d'effectuer les actions accordées au compte par la politique de clé.

  Dans le diagramme de flux, cela remplit la condition *Une politique IAM autorise-t-elle l'appelant à effectuer cette action ?*.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo",
                  "kms:GenerateDataKey",
                  "kms:GenerateDataKeyWithoutPlaintext",
                  "kms:DescribeKey"
              ],
              "Resource": [
              "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
              ]
          }
      ]
  }
  ```

------
+ Le dernier élément requis est la définition du rôle `Engineering` dans le compte 1. Le document `AssumeRolePolicyDocument` dans le rôle permet à Bob d'endosser le rôle `Engineering`.

  ```
  {
      "Role": {
          "Arn": "arn:aws:iam::111122223333:role/Engineering",
          "CreateDate": "2019-05-16T00:09:25Z",
          "AssumeRolePolicyDocument": {
              "Version": "2012-10-17",		 	 	 
              "Statement": {
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/bob"
                  },
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole"
              }
          },
          "Path": "/",
          "RoleName": "Engineering",
          "RoleId": "AROA4KJY2TU23Y7NK62MV"
      }
  }
  ```

# AWS KMS glossaire du contrôle d'accès
<a name="access-glossary"></a>

La rubrique suivante décrit les termes et concepts importants relatifs au contrôle AWS KMS d'accès.

## Authentification
<a name="permission-concept-authentication"></a>

L'*authentification* est le processus de vérification de votre identité. Pour envoyer une demande à AWS KMS, vous devez vous connecter à AWS l'aide de vos AWS informations d'identification.

## Autorisation
<a name="permission-concept-authorization"></a>

L'*autorisation* donne l'autorisation d'envoyer des demandes pour créer, gérer ou utiliser AWS KMS des ressources. Par exemple, vous devez être autorisé à utiliser une clé KMS dans le cadre d'une opération de chiffrement.

Pour contrôler l'accès à vos AWS KMS ressources, utilisez des [politiques clés](key-policies.md), des [politiques IAM](iam-policies.md) et [des subventions](grants.md). Chaque clé KMS doit avoir une politique de clé. Si la politique de clé le permet, vous pouvez également utiliser des octrois et des politiques IAM pour accorder aux principaux l'accès à la clé KMS. Pour affiner votre autorisation, vous pouvez utiliser des [clés de condition](policy-conditions.md) qui autorisent ou refusent l'accès uniquement lorsqu'une demande ou une ressource remplit les conditions que vous définissez. Vous pouvez également autoriser l'accès aux principaux auxquels vous faites confiance sur d'[autres Comptes AWS](key-policy-modifying-external-accounts.md).

## Authentification par des identités
<a name="security_iam_authentication"></a>

L'authentification est la façon dont vous vous connectez à AWS l'aide de vos informations d'identification. Vous devez être authentifié en tant qu'utilisateur IAM ou en assumant un rôle IAM. Utilisateur racine d'un compte AWS

Vous pouvez vous connecter en tant qu'identité fédérée à l'aide d'informations d'identification provenant d'une source d'identité telle que AWS IAM Identity Center (IAM Identity Center), d'une authentification unique ou d'informations d'identification. Google/Facebook Pour plus d’informations sur la connexion, consultez [Connexion à votre Compte AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dans le *Guide de l’utilisateur Connexion à AWS *.

Pour l'accès par programmation, AWS fournit un SDK et une CLI pour signer les demandes de manière cryptographique. Pour plus d’informations, consultez [Signature AWS Version 4 pour les demandes d’API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dans le *Guide de l’utilisateur IAM*.

### Compte AWS utilisateur root
<a name="security_iam_authentication-rootuser"></a>

 Lorsque vous créez un Compte AWS, vous commencez par une seule identité de connexion appelée *utilisateur Compte AWS root* qui dispose d'un accès complet à toutes Services AWS les ressources. Il est vivement déconseillé d’utiliser l’utilisateur racine pour vos tâches quotidiennes. Pour les tâches qui requièrent des informations d’identification de l’utilisateur racine, consultez [Tâches qui requièrent les informations d’identification de l’utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dans le *Guide de l’utilisateur IAM*. 

### Identité fédérée
<a name="security_iam_authentication-federated"></a>

Il est recommandé d'obliger les utilisateurs humains à utiliser la fédération avec un fournisseur d'identité pour accéder à Services AWS l'aide d'informations d'identification temporaires.

Une *identité fédérée* est un utilisateur provenant de l'annuaire de votre entreprise, de votre fournisseur d'identité Web ou Directory Service qui y accède à Services AWS l'aide d'informations d'identification provenant d'une source d'identité. Les identités fédérées assument des rôles qui fournissent des informations d’identification temporaires.

Pour une gestion des accès centralisée, nous vous recommandons d’utiliser AWS IAM Identity Center. Pour plus d’informations, consultez [Qu’est-ce que IAM Identity Center ?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

### Utilisateurs et groupes IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* est une identité qui dispose d’autorisations spécifiques pour une seule personne ou application. Nous vous recommandons d’utiliser ces informations d’identification temporaires au lieu des utilisateurs IAM avec des informations d’identification à long terme. Pour plus d'informations, voir [Exiger des utilisateurs humains qu'ils utilisent la fédération avec un fournisseur d'identité pour accéder à AWS l'aide d'informations d'identification temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dans le *guide de l'utilisateur IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spécifient une collection d’utilisateurs IAM et permettent de gérer plus facilement les autorisations pour de grands ensembles d’utilisateurs. Pour plus d’informations, consultez [Cas d’utilisation pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dans le *Guide de l’utilisateur IAM*.

### Rôles IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Gestion de l’accès à l’aide de politiques
<a name="security_iam_access-manage"></a>

Vous contrôlez l'accès en AWS créant des politiques et en les associant à AWS des identités ou à des ressources. Une politique définit les autorisations lorsqu'elles sont associées à une identité ou à une ressource. AWS évalue ces politiques lorsqu'un directeur fait une demande. La plupart des politiques sont stockées AWS sous forme de documents JSON. Pour plus d’informations les documents de politique JSON, consultez [Vue d’ensemble des politiques JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dans le *Guide de l’utilisateur IAM*.

À l’aide de politiques, les administrateurs précisent qui a accès à quoi en définissant quel **principal** peut effectuer des **actions** sur quelles **ressources** et dans quelles **conditions**.

Par défaut, les utilisateurs et les rôles ne disposent d’aucune autorisation. Un administrateur IAM crée des politiques IAM et les ajoute aux rôles, que les utilisateurs peuvent ensuite assumer. Les politiques IAM définissent les autorisations quelle que soit la méthode que vous utilisez pour exécuter l’opération.

### Politiques basées sur l’identité
<a name="security_iam_access-manage-id-based-policies"></a>

Les stratégies basées sur l’identité sont des documents de stratégie d’autorisations JSON que vous attachez à une identité (utilisateur, groupe ou rôle). Ces politiques contrôlent les actions que peuvent exécuter ces identités, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Les politiques basées sur l’identité peuvent être des *politiques intégrées* (intégrées directement dans une seule identité) ou des *politiques gérées (politiques* autonomes associées à plusieurs identités). Pour découvrir comment choisir entre des politiques gérées et en ligne, consultez [Choix entre les politiques gérées et les politiques en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dans le *Guide de l’utilisateur IAM*.

### Politiques basées sur les ressources
<a name="security_iam_access-manage-resource-based-policies"></a>

Une [politique AWS KMS clé est une politique](key-policies.md) basée sur les ressources qui contrôle l'accès à une clé KMS. Chaque clé KMS doit avoir une politique de clé. Vous pouvez utiliser un autre mécanisme d'autorisation pour autoriser l'accès à la clé KMS, mais uniquement si la politique de clé le permet. (Vous pouvez utiliser une politique IAM pour *refuser* l'accès à une clé KMS, même si la politique de clé ne l'autorise pas explicitement.)

Les politiques basées sur les ressources sont des documents de politique JSON que vous joignez à une ressource, telle qu'une clé KMS, pour contrôler l'accès à cette ressource. La politique basée sur les ressources définit les actions qu'un principal donné peut effectuer sur cette ressource et dans quelles conditions. Vous ne spécifiez pas la ressource dans une stratégie basée sur les ressources, mais vous devez spécifier un principal, tel que des comptes, des utilisateurs, des rôles, des utilisateurs fédérés ou. Services AWS Les politiques basées sur les ressources sont des politiques en ligne qui sont situées dans le service qui gère la ressource. Vous ne pouvez pas utiliser les politiques AWS gérées d'IAM, telles que la [stratégie `AWSKeyManagementServicePowerUser` gérée, dans une stratégie](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSKeyManagementServicePowerUser) basée sur les ressources.

### Autres types de politique
<a name="security_iam_access-manage-other-policies"></a>

AWS prend en charge des types de politiques supplémentaires qui peuvent définir les autorisations maximales accordées par les types de politiques les plus courants :
+ **Limites d’autorisations** : une limite des autorisations définit le nombre maximum d’autorisations qu’une politique basée sur l’identité peut accorder à une entité IAM. Pour plus d’informations, consultez [Limites d’autorisations pour des entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dans le *Guide de l’utilisateur IAM*.
+ **Politiques de contrôle des services (SCPs)** — Spécifiez les autorisations maximales pour une organisation ou une unité organisationnelle dans AWS Organizations. Pour plus d’informations, consultez [Politiques de contrôle de service](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.
+ **Politiques de contrôle des ressources (RCPs)** : définissez le maximum d'autorisations disponibles pour les ressources de vos comptes. Pour plus d'informations, voir [Politiques de contrôle des ressources (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ **Politiques de session** : politiques avancées que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Pour plus d’informations, consultez [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *Guide de l’utilisateur IAM*.

### Plusieurs types de politique
<a name="security_iam_access-manage-multiple-policies"></a>

Lorsque plusieurs types de politiques s’appliquent à la requête, les autorisations en résultant sont plus compliquées à comprendre. Pour savoir comment AWS déterminer s'il faut autoriser une demande lorsque plusieurs types de politiques sont impliqués, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*.

## AWS KMS ressources
<a name="kms-resources-operations"></a>

Dans AWS KMS, la ressource principale est un AWS KMS key. AWS KMS prend également en charge un [alias](kms-alias.md), une ressource indépendante qui fournit un nom convivial pour une clé KMS. Certaines AWS KMS opérations vous permettent d'utiliser un alias pour identifier une clé KMS.

Chaque instance de clé KMS ou d'alias possède un [Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax) (ARN) unique avec un format standard. Dans AWS KMS les ressources, le nom du AWS service est`kms`. 
+ **AWS KMS key**

  Format de nom ARN :

  `arn:AWS partition name:AWS service name:Région AWS:Compte AWS ID:key/key ID`

  Exemple de nom ARN :

  `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
+ **Alias**

  Format de nom ARN :

  `arn:AWS partition name:AWS service name:Région AWS:Compte AWS ID:alias/alias name`

  Exemple de nom ARN :

  `arn:aws:kms:us-west-2:111122223333:alias/example-alias`

AWS KMS fournit un ensemble d'opérations d'API permettant de travailler avec vos AWS KMS ressources. Pour plus d'informations sur l'identification des clés KMS dans les opérations AWS Management Console et AWS KMS API, consultez[Identifiants clés () KeyId](concepts.md#key-id). Pour obtenir la liste des AWS KMS opérations, consultez la [référence de AWS Key Management Service l'API](https://docs.aws.amazon.com/kms/latest/APIReference/).