Résolution des problèmes de clé d'accès - AWS Key Management Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes de clé d'accès

Lorsque vous autorisez l'accès à une clé KMS, AWS KMS évalue les éléments suivants :

  • La politique de clé attachée à la clé KMS. La politique de clé est toujours définie dans le Compte AWS et la région qui possèdent la clé KMS.

  • Toutes les politiques IAM 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 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 et les politiques de point de terminaison d'un VPC. 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 ces mécanismes de politiques afin de déterminer si l'accès à la clé KMS sera autorisé ou rejeté. Pour ce faire, AWS KMS utilise un processus similaire à celui qui est illustré dans le diagramme 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

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 approuvez les ressources de votre Compte AWS. Cependant, vous pouvez également être sûr de l'utilisation de clés KMS dans un autre Compte AWS si un octroi ou une politique IAM de votre compte vous permet d'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.

Exemple 1 : l'utilisateur se voit refuser l'accès à une clé KMS sur son Compte AWS

Alice est une utilisatrice IAM sur le 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 de clé de la clé KMS permet au Compte AWS d'utiliser les 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

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. Cette politique autorise le Compte AWS 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.

    { "Version" : "2012-10-17", "Id" : "key-test-1", "Statement" : [ { "Sid" : "Delegate to IAM policies", "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 endosse un rôle avec l'autorisation d'utiliser une clé KMS dans un autre Compte AWS

Bob est un utilisateur du compte 1 (111122223333). Il est autorisé à utiliser une clé KMS du compte 2 (444455556666) pour les opérations cryptographiques. 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.

  • 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

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é ?.

    { "Id": "key-policy-acct-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to use IAM policies", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow account 1 to use this KMS key", "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 du compte Compte AWS du principal (compte 1, 111122223333) accorde au principal l'autorisation d'exécuter des opérations de chiffrement à l'aide de la clé KMS dans le 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 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 ?.

    { "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" } }