Création d'une politique de clé - 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.

Création d'une politique de clé

Vous pouvez créer et gérer des politiques clés dans la AWS KMS console ou à l'aide d' AWS KMS APIopérations telles que CreateKeyReplicateKey, et PutKeyPolicy.

Lorsque vous créez une KMS clé 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. Lorsque vous utilisez le CreateKey ou ReplicateKeyAPIs, 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. Lorsque vous utilisez le PutKeyPolicyAPI, vous devez spécifier une politique 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.

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

Format de politique de clé

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'Sidélément d'un document de IAM politique.)

Un document de politique de clé ne peut contenir que les caractères suivants :

  • Personnages imprimables ASCII

  • 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é

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 Sid élément IAM de politique.)

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 KMS clé, l'accès est implicitement refusé. Vous pouvez également refuser explicitement l'accès à une KMS clé. 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 est l'identité qui obtient les autorisations figurant dans l'instruction de politique. Vous pouvez spécifier des IAM utilisateurs Comptes AWS, IAM des rôles et certains AWS services en tant que principaux dans une politique clé. IAMles groupes d'utilisateurs ne constituent un principe valide dans aucun type de politique.

Une valeur astérisque, par exemple "AWS": "*", représente toutes les identités AWS de tous les comptes.

Important

Ne définissez pas le principal sur un astérisque (*) dans une instruction de politique de clé qui autorise des autorisations, sauf si vous utilisez des conditions pour limiter la stratégie de clé. Un astérisque indique l'identité de chaque Compte AWS autorisation d'utilisation de la KMS clé, à moins qu'une autre déclaration de politique ne le nie explicitement. Les utilisateurs des autres utilisateurs Comptes AWS peuvent utiliser votre KMS clé chaque fois qu'ils disposent des autorisations correspondantes dans leur propre compte.

Note

IAMles meilleures pratiques découragent l'utilisation d'IAMutilisateurs possédant des informations d'identification à long terme. Dans la mesure du possible, utilisez IAM des rôles qui fournissent des informations d'identification temporaires. Pour plus de détails, consultez la section Bonnes pratiques en matière de sécurité IAM dans le guide de IAM l'utilisateur.

Lorsque le principal d'une déclaration de politique clé est un Compte AWS principal exprimé pararn:aws:iam::111122223333:root", la déclaration de politique ne donne son autorisation à aucun IAM principal. Au lieu de cela, il donne l' Compte AWS autorisation d'utiliser des IAM politiques 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, 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 KMS clé et la politique en matière de clés. 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 dans la Références générales AWS.

Pour permettre à un autre compte Compte AWS ou à ses principaux d'utiliser une KMS clé, vous devez fournir une autorisation dans une politique clé et dans une IAM politique de l'autre compte. Pour plus de détails, consultez Autoriser les utilisateurs d'autres comptes à utiliser une KMS clé.

Action

(Obligatoire) Spécifiez les API opérations à autoriser ou à refuser. Par exemple, l'kms:Encryptaction correspond à l'opération AWS KMS Chiffrer. Vous pouvez répertorier plusieurs actions dans une instruction de politique. Pour de plus amples informations, veuillez consulter Référence des autorisations .

Note

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 KMS clé.

Lorsqu'il manque un Action élément à une déclaration de politique clé, la AWS KMS console signale correctement une erreur, mais le CreateKeyet PutKeyPolicyAPIsréussit, même si la déclaration de politique est inefficace.

Ressource

(Obligatoire) Dans une politique clé, la valeur de l'élément Ressource est"*", ce qui signifie « cette KMS clé ». L'astérisque ("*") identifie la KMS clé à laquelle la politique clé est attachée.

Note

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 déclaration de politique clé sans Resource élément ne s'applique à aucune KMS clé.

Lorsqu'il manque un Resource élément à une déclaration de politique clé, la AWS KMS console signale correctement une erreur, mais le CreateKeyet PutKeyPolicyAPIsré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 API demande 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 et les clés de AWS KMS condition. 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 KMS clé en fonction de balises et d'alias. Pour plus de détails, consultez ABACpour AWS KMS.

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, consultez la section Référence des AWS IAM politiques dans le Guide de IAM l'utilisateur.

Exemple de politique de clé

L'exemple suivant montre une politique de clé complète pour une KMS clé 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 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 Il permet au compte et à ses administrateurs, y compris l'utilisateur root du compte (en cas d'urgence), d'utiliser IAM les politiques du compte pour autoriser l'accès à la KMS clé.

  • Permet au ExampleAdminRole IAM rôle d'administrer la KMS clé.

  • Permet au ExampleUserRole IAM rôle d'utiliser la KMS clé.

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM user Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "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": "*" }, { "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": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }