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.
AWS KMS Permissions de résolution des
Lorsque vous autorisez l'accès à une clé KMS, AWS KMS évalue les points suivants :
-
La politique de clé 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 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 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.

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.
Exemples d'autorisation
Exemple 1 : L'utilisateur se voit refuser l'accès à une clé KMS dans son Compte AWS
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.

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 assume un rôle autorisé à 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 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ô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" } }