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.
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.
Exemples d'autorisation
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.
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.
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ôleEngineering
du compte 1, cette politique en ligne est intégrée au rôleEngineering
.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 documentAssumeRolePolicyDocument
dans le rôle permet à Bob d'endosser le rôleEngineering
.{ "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" } }