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, à l'aide d'opérations d'AWS KMSAPI, telles que CreateKeyReplicateKey, et PutKeyPolicy, ou à l'aide d'un AWS CloudFormationmodèle.

Lorsque vous créez une clé KMS dans la console AWS KMS, la console vous guide tout au long des étapes de création d'une politique de clé basée sur la politique de clé par défaut de la console. Lorsque vous utilisez es API CreateKey ou ReplicateKey, si vous ne spécifiez pas de politique de clé, ces API appliquent la politique de 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 les Comptes AWS, les utilisateurs IAM, les rôles IAM et certains services AWS en tant que principaux dans une politique de 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 autorise chaque identité dans chaque Compte AWS à utiliser la clé KMS, sauf si une autre instruction de politique la refuse explicitement. Les utilisateurs dans d'autres Comptes AWS peuvent utiliser votre clé KMS dès qu’ils ont les autorisations correspondantes dans 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. Au lieu de cela, il donne l'autorisation au Compte AWS d'utiliser des politiques IAM pour déléguer les autorisations spécifiées dans la politique de 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 AWS ou ses principaux à utiliser une clé KMS, vous devez fournir une autorisation dans une politique de 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'action kms:Encrypt correspond à l'opération AWS KMS Encrypt (Chiffrer). Vous pouvez répertorier plusieurs actions dans une instruction de politique. Pour plus d’informations, consultez Référence des autorisations .

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 les PutKeyPolicyAPI CreateKeyand réussissent, 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. Les conditions permettent à AWS d'évaluer le contexte d'une demande d'API afin de déterminer si l'instruction de politique s'applique ou non.

Pour spécifier des conditions, vous utilisez des clés de condition prédéfinies. AWS KMS prend en charge les clés de condition globales AWS et les clés de condition AWS KMS. 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 des balises et des 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 politiques AWS, veuillez consulter AWS Référence de politique 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" ], "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" } } } ] }