

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.

# 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
}]}
```