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'opérations d' AWS KMS API CreateKey, telles que ReplicateKey, et PutKeyPolicy.

Lorsque vous créez une clé KMS 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 ReplicateKey APIs, 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 créez l'API PutKeyPolicy, vous devez spécifier une stratégie de 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'élément Sid d'un document de politique IAM.)

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

  • Caractères ASCII imprimables

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

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 clé KMS, l'accès est implicitement refusé. Vous pouvez explicitement refuser l'accès à une clé KMS. 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 Comptes AWS des utilisateurs IAM, des rôles IAM et certains AWS services comme principaux dans une politique clé. Les groupes d'utilisateurs IAM ne constituent un principal 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 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.

Note

Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez Security best practices in IAM (Bonnes pratiques de sécurité dans IAM) dans le Guide de l'utilisateur IAM.

Lorsque le principal dans une instruction de politique de clé est un Compte AWS principal exprimé comme arn:aws:iam::111122223333:root", la déclaration de stratégie n'accorde aucune autorisation à un principal IAM. Il donne plutôt l' Compte AWS autorisation d'utiliser les politiques IAM 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 clé KMS et la politique de clé. 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 autoriser un autre compte Compte AWS ou ses principaux utilisateurs à utiliser une clé KMS, vous devez fournir une autorisation dans une politique clé et dans une politique IAM de l'autre compte. Pour plus de détails, consultez Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS.

Action

(Requis) Spécifiez les opérations d'API à autoriser ou à rejeter. 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 clé KMS.

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

Ressource

(Requis) Dans une politique de clé, la valeur de l'élément Ressource est "*", ce qui signifie « cette clé KMS ». L'astérisque ("*") identifie la clé KMS à laquelle la politique de 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 instruction de politique de clé sans élément Resource ne s'applique à aucune clé KMS.

Lorsqu'il manque un Resource élément à une déclaration de politique clé, la AWS KMS console signale correctement une erreur, mais le CreateKeyet PutKeyPolicy APIs ré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 demande d'API 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 clé KMS en fonction de balises et d'alias. Pour plus de détails, consultez ABAC pour 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 référence des politiques AWS IAM dans le guide de l'utilisateur IAM.

Exemple de politique de clé

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

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

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

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