politique de clé par défaut - AWS Key Management Service

politique de clé par défaut

Lorsque vous créez une clé KMS, vous pouvez spécifier la politique de clé pour la nouvelle clé KMS. Si vous n'en fournissez pas, AWS KMS en crée une pour vous. La politique de clé par défaut que AWS KMS utilise diffère selon que vous créez la clé dans la console AWS KMS ou que vous utilisez l'API AWS KMS.

politique de clé par défaut lorsque vous créez une clé KMS par programmation

Lorsque vous créez une clé KMS par programmation avec l'API AWS KMS (y compris à l'aide des kits SDK AWS, l'AWS Command Line Interface ou AWS Tools for PowerShell) et que vous ne spécifiez pas de politique de clé, AWS KMS applique une politique de clé par défaut très simple. Cette politique de clé par défaut comporte une instruction de politique qui accorde au Compte AWS propriétaire de la clé KMS l'autorisation d'utiliser les politiques IAM pour autoriser l'accès à toutes les opérations AWS KMS sur la clé KMS. Pour plus d'informations sur cette instruction de politique, consultez la rubrique Autorise l'accès au Compte AWS et active les politiques IAM..

politique de clé par défaut lorsque vous créez une clé KMS à l'aide de laAWS Management Console

Lorsque vous créez une clé KMS avec la AWS Management Console, la politique de clé commence par l'instruction de politique qui autorise l'accès au Compte AWS et active les politiques IAM. La console ajoute ensuite une instruction d'administrateur de clé, une instruction d'utilisateur de clé et (pour la plupart des types de clé) une instruction qui permet aux principals d'utiliser la clé KMS avec d'autres services AWS. Vous pouvez utiliser les fonctions de la console AWS KMS pour spécifier les utilisateurs et rôles IAM, et pour désigner les Comptes AWS qui sont des administrateurs clés et ceux qui sont des utilisateurs clés (ou les deux).

Autorisations

Autorise l'accès au Compte AWS et active les politiques IAM.

L'instruction de politique de clé par défaut suivante est extrêmement importante.

  • Elle offre au Compte AWS propriétaire de la clé KMS l'accès complet à celle-ci.

    Contrairement aux autres politiques de ressources AWS, une politique de clé AWS KMS n'accorde pas automatiquement l'autorisation au compte ou à l'une de ses identités. Pour accorder l'autorisation aux administrateurs de compte, la politique de clé doit inclure une instruction explicite qui fournit cette autorisation, comme celle-ci.

  • Celle permet au compte d'utiliser des politiques IAM pour autoriser l'accès à la clé KMS, en plus de la politique de clé.

    Sans cette autorisation, les politiques IAM qui autorisent l'accès à la clé sont inefficaces, bien que celles qui refusent l'accès à la clé soient toujours efficaces.

  • Cela réduit le risque que la clé devienne ingérable en accordant une autorisation de contrôle d'accès aux administrateurs du compte, y compris l'utilisateur racine du compte, qui ne peut pas être supprimé.

L'instruction de politique de clé suivante est la politique de clé par défaut complète pour les clés KMS créées par programmation. Il s'agit de la première instruction de politique dans la politique de clé par défaut pour les clés KMS créées dans la console AWS KMS.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }
Autorise les politiques IAM à autoriser l'accès à la clé KMS.

L'instruction de politique de clé présentée ci-dessus accorde au Compte AWS propriétaire de la clé l'autorisation d'utiliser les politiques IAM, ainsi que les politiques de clé, pour autoriser toutes les actions (kms:*) sur la clé KMS.

Le principal dans cette instruction de politique de clé est le principal du compte, qui est représenté par un ARN au format suivant : arn:aws:iam::account-id:root. Le principal du compte représente le compte AWS et ses administrateurs.

Lorsque le principal d'une instruction de politique de clé correspond au principal du compte, cette instruction n'autorise aucun principal IAM à utiliser la clé KMS. Au lieu de cela, elle permet au compte d'utiliser des politiques IAM pour déléguer les autorisations spécifiées dans l'instruction de politique. Cette instruction de politique de clé par défaut permet au compte d'utiliser des politiques IAM pour déléguer l'autorisation pour toutes les actions (kms:*) sur la clé KMS.

réduit le risque que la clé KMS devienne ingérable.

Contrairement aux autres politiques de ressources AWS, une politique de clé AWS KMS n'accorde pas automatiquement l'autorisation au compte ou à l'un de ses principaux. Pour accorder l'autorisation à un principal, y compris le principal du compte, vous devez utiliser une instruction de politique de clé qui fournit explicitement l'autorisation. Vous n'êtes pas l'obligation de donner accès à la clé KMS au principal du compte ou à tout autre principal. Cependant, donner accès au principal du compte vous permet d'éviter que la clé ne devienne ingérable.

Par exemple, supposons que vous créez une politique de clé qui donne à un seul utilisateur l'accès à la clé KMS. Si vous supprimez ensuite cet utilisateur, la clé devient ingérable et vous devez contacter le support AWS pour retrouver l'accès à la clé KMS.

L'instruction de politique de clé présentée ci-dessus donne l'autorisation de contrôler la clé au principal du compte, qui représente le Compte AWS et ses administrateurs, y compris l'utilisateur racine du compte. L'utilisateur racine du compte est le seul principal qui ne peut pas être supprimé, sauf si vous supprimez le Compte AWS. Conformément aux bonnes pratiques IAM, il est déconseillé d'agir au nom de l'utilisateur racine du compte, sauf en cas d'urgence. Toutefois, vous devrez peut-être agir en tant qu'utilisateur racine du compte si vous supprimez tous les autres utilisateurs et rôles ayant accès à la clé KMS.

Autorise les administrateurs de clés à administrer la clé KMS

La politique de clé par défaut créée par la console vous permet de choisir des utilisateurs et des rôles IAM dans le compte et d'en faire des administrateurs de clé. Cette instruction est appelée l'instruction des administrateurs de clé. Les administrateurs de clés ont les autorisations nécessaires pour gérer la clé KMS, mais n'ont pas d'autorisations pour utiliser la clé KMS dans des opérations de chiffrement. Vous pouvez ajouter des utilisateurs et des rôles IAM à la liste des administrateurs de clés lorsque vous créez la clé KMS dans la vue par défaut ou la vue de la politique.

Avertissement

Étant donné que les administrateurs de clés ont l'autorisation de modifier la politique de clé et de créer des octrois, ils peuvent se donner à eux-mêmes et à d'autres des autorisations AWS KMS non spécifiées dans cette politique.

Les principaux qui ont l'autorisation de gérer les balises et les alias peuvent également contrôler l'accès à une clé KMS. Pour plus de détails, veuillez consulter ABAC pour AWS KMS.

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.

L'exemple suivant montre l'instruction des administrateurs de clé dans la vue par défaut de la console AWS KMS.


          Administrateurs de clé dans la politique de clé par défaut de la console, vue par défaut

Voici un exemple d'instruction des administrateurs de clés dans la vue de politique de la console AWS KMS. Cette instruction des administrateurs de clés concerne une clé KMS de chiffrement symétrique à région unique.

{ "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": "*" }

L'instruction par défaut des administrateurs de clés pour la clé KMS la plus courante, une clé KMS de chiffrement symétrique à région unique, octroie les autorisations suivantes. Pour plus d'informations sur ces autorisations, veuillez consulter la Autorisations AWS KMS.

Lorsque vous utilisez la console AWS KMS pour créer une clé KMS, la console ajoute les utilisateurs et les rôles que vous spécifiez à l'élément Principal dans l'instruction des administrateurs de clé.

Un grand nombre de ces autorisations contiennent le caractère générique (*), qui octroie toutes les autorisations commençant par le verbe spécifié. Par conséquent, lorsque AWS KMS ajoute de nouvelles opérations d'API, les administrateurs de clés sont automatiquement autorisés à les utiliser. Il n'est pas nécessaire de mettre à jour vos politiques de clé pour inclure les nouvelles opérations. Si vous préférez limiter vos administrateurs de clés à un ensemble fixe d'opérations d'API, vous pouvez modifier votre politique de clé.

kms:Create*

Autorise kms:CreateAlias et kms:CreateGrant. (L'autorisation kms:CreateKey n'est valide que dans une politique IAM.)

kms:Describe*

Autorise kms:DescribeKey L'autorisation kms:DescribeKey est nécessaire pour afficher la page des détails d'une clé KMS dans la AWS Management Console.

kms:Enable*

Autorise kms:EnableKey Pour les clés KMS de chiffrement symétriques, elle autorise également kms:EnableKeyRotation.

kms:List*

Autorise kms:ListGrants, kms:ListKeyPolicies et kms:ListResourceTags. (Les autorisations kms:ListAliases et kms:ListKeys, requises pour afficher les clés KMS dans la AWS Management Console, sont valides uniquement dans les politiques IAM.)

kms:Put*

Autorise kms:PutKeyPolicy Cette autorisation autorise les administrateurs de clés à modifier la politique de cette clé KMS.

kms:Update*

Autorise kms:UpdateAlias et kms:UpdateKeyDescription. Pour les clés multi-région, elle autorise kms:UpdatePrimaryRegion sur cette clé KMS.

kms:Revoke*

Autorise kms:RevokeGrant qui permet aux administrateurs de clés de supprimer un octroi, même s'ils ne sont pas un principal de retrait dans l'octroi.

kms:Disable*

Autorise kms:DisableKey Pour les clés KMS de chiffrement symétriques, elle autorise également kms:DisableKeyRotation.

kms:Get*

Autorise kms:GetKeyPolicy et kms:GetKeyRotationStatus. Pour les clés KMS avec des éléments de clé importés, elle autorise kms:GetParametersForImport. Pour les clés KMS asymétriques, elle autorise kms:GetPublicKey. L'autorisation kms:GetKeyPolicy est nécessaire pour afficher la politique de clé KMS dans la AWS Management Console.

kms:Delete*

Autorise kms:DeleteAlias Pour les clés avec des éléments de clé importés, elle autorise kms:DeleteImportedKeyMaterial. Notez que l'autorisation kms:Delete* ne permet pas aux administrateurs de clés de supprimer la clé KMS (ScheduleKeyDeletion).

kms:TagResource

Autorise kms:TagResource, qui permet aux administrateurs de clés d'ajouter des identifications à la clé KMS. Étant donné que les balises peuvent être également utilisées pour contrôler l'accès à la clé KMS, cette autorisation peut permettre aux administrateurs d'autoriser ou de refuser l'accès à la clé KMS. Pour plus de détails, veuillez consulter ABAC pour AWS KMS.

kms:UntagResource

Autorise kms:UntagResource, qui permet aux administrateurs de clés de supprimer les balises de la clé KMS. Étant donné que les balises peuvent être utilisées pour contrôler l'accès à la clé, cette autorisation peut permettre aux administrateurs d'autoriser ou de refuser l'accès à la clé KMS. Pour plus de détails, veuillez consulter ABAC pour AWS KMS.

kms:ScheduleKeyDeletion

Autorise kms:ScheduleKeyDeletion, qui permet aux administrateurs de clés de supprimer cette clé KMS. Pour supprimer cette autorisation, désélectionnez l'option Autoriser les administrateurs de clé à supprimer cette clé.

kms:CancelKeyDeletion

Autorise kms:CancelKeyDeletion, qui permet aux administrateurs de clés d'annuler la suppression de cette clé KMS. Pour supprimer cette autorisation, désélectionnez l'option Autoriser les administrateurs de clé à supprimer cette clé.

 

AWS KMS ajoute les autorisations suivantes à l'instruction par défaut des administrateurs de clés lorsque vous créez clés spéciales.

kms:ImportKeyMaterial

L'autorisation kms:ImportKeyMaterial permet aux administrateurs de clés d'importer des éléments de clé dans la clé KMS. Cette autorisation est incluse dans la politique de clé uniquement lorsque vous créez une clé KMS sans élément de clé.

kms:ReplicateKey

L'autorisation kms:ReplicateKey permet aux administrateurs de clés de créer un réplica d'une clé primaire multi-région dans une autre région AWS. Cette autorisation est incluse dans la politique de clé uniquement lorsque vous créez une clé primaire ou un réplica multi-région.

kms:UpdatePrimaryRegion

L'autorisation kms:UpdatePrimaryRegion permet aux administrateurs de clés de remplacer une clé de réplica multi-région par une clé primaire multi-région. Cette autorisation est incluse dans la politique de clé uniquement lorsque vous créez une clé primaire ou un réplica multi-région.

Autorise les utilisateurs de clés à utiliser la clé KMS.

La politique de clé par défaut créée par la console pour les clés KMS vous permet de choisir des utilisateurs et rôles IAM du compte ainsi que des Comptes AWS externes, et d'en faire des utilisateurs de clé.

La console ajoute deux instructions de politique à la politique de clé pour les utilisateurs de clés.

Vous pouvez ajouter des utilisateurs IAM, des rôles IAM et d'autres Comptes AWS à la liste des utilisateurs de clé lorsque vous créez la clé KMS. Vous pouvez aussi modifier la liste avec la vue par défaut de la console pour les politiques de clé, comme illustré dans l'image suivante. La vue par défaut pour les politiques de clé est sur la page des détails de la clé. Pour plus d'informations sur l'autorisation accordée à des utilisateurs d'autres Comptes AWS d'utiliser la clé KMS, veuillez consulter Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS.

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.


          Utilisateurs de clé dans la politique de clé par défaut de la console, vue par défaut

Les instructions par défaut des utilisateurs de clé d'une clé symétrique à région unique octroient les autorisations suivantes. Pour plus d'informations sur ces autorisations, veuillez consulter la Autorisations AWS KMS.

Lorsque vous utilisez la console AWS KMS pour créer une clé KMS, la console ajoute les utilisateurs et les rôles que vous spécifiez à l'élément Principal dans chaque instruction des utilisateurs de clé.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "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/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Permet aux utilisateurs de clés d'utiliser une clé KMS pour les opérations de chiffrement

Les utilisateurs de clés ont l'autorisation d'utiliser la clé KMS directement dans toutes les opérations de chiffrement prises en charge par la clé KMS. Ils peuvent également utiliser l'opération DescribeKey pour obtenir des informations détaillées sur la clé KMS dans la console AWS KMS ou en utilisant les opérations d'API AWS KMS.

Par défaut, la console AWS KMS ajoute des instructions des utilisateur de clés comme celles des exemples suivants à la politique de clé par défaut. Étant donné qu'ils prennent en charge différentes opérations d'API, les actions des instructions de politique pour les clés KMS de chiffrement symétriques, les clés KMS HMAC, les clés KMS asymétriques pour le chiffrement de clé publique et les clés KMS asymétriques pour la signature et la vérification sont légèrement différentes.

Clés KMS de chiffrement symétriques

La console ajoute l'instruction suivante à la politique de clé pour les clés KMS de chiffrement symétriques.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }
Clés KMS HMAC

La console ajoute l'instruction suivante à la politique de clé pour les clés KMS HMAC.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*" }
Clés CMK asymétriques pour le chiffrement de clé publique

La console ajoute l'instruction suivante à la politique de clé pour les clés KMS asymétriques avec Encrypt and decrypt (Chiffrer et déchiffrer) comme utilisation des clés.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey", "kms:GetPublicKey" ], "Resource": "*" }
Clés CMK asymétriques pour la signature et la vérification

La console ajoute l'instruction suivante à la politique de clé pour les clés KMS asymétriques avec Sign and verify (Signer et vérifier) comme utilisation des clés.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:Sign", "kms:Verify" ], "Resource": "*" }

Les actions de ces instructions donnent aux utilisateurs de clé les autorisations suivantes.

kms:Encrypt

Permet aux utilisateurs de clé de chiffrer des données avec cette clé KMS.

kms:Decrypt

Permet aux utilisateurs de clé de déchiffrer des données avec cette clé KMS.

kms:DescribeKey

Permet aux utilisateurs de clé d'obtenir des informations sur cette clé KMS, y compris ses identificateurs, sa date de création, son état, etc. Les utilisateurs de clé peuvent également afficher des détails sur la clé KMS dans la console AWS KMS.

kms:GenerateDataKey*

Permet aux utilisateurs de clé de demander une paires de clés de données symétriques ou asymétriques pour les opérations de chiffrement côté client. La console utilise le caractère générique * pour représenter l'autorisation pour les opérations API suivantes : GenerateDataKey, GenerateDataKeyWithoutPlaintext, GenerateDataKeyPair et GenerateDataKeyPairWithoutPlaintext. Ces autorisations sont valides uniquement sur les clés KMS symétriques qui chiffrent les clés de données.

kms:GenerateMac

Permet aux utilisateurs de clés d'utiliser une clé KMS HMAC pour générer une balise HMAC.

kms:GetPublicKey

Permet aux utilisateurs de clé de télécharger la clé publique de la clé KMS asymétrique. Les parties avec lesquelles vous partagez cette clé publique peuvent chiffrer les données en dehors de AWS KMS. Cependant, ces textes chiffrés ne peuvent être déchiffrés qu'en appelant l'opération Decrypt dans AWS KMS.

kms:ReEncrypt*

Permet aux utilisateurs de clé de rechiffrer les données initialement chiffrées avec cette clé KMS, ou d'utiliser cette clé KMS pour rechiffrer des données précédemment chiffrées. L'opération ReEncrypt nécessite l'accès aux clés KMS source et de destination. Pour ce faire, vous pouvez accorder l'autorisation kms:ReEncryptFrom sur la clé KMS source et l'autorisation kms:ReEncryptTo sur la clé KMS de destination. Cependant, par souci de simplicité, la console autorise kms:ReEncrypt* (avec le caractère * générique) sur les deux clés KMS.

kms:Sign

Permet aux utilisateurs de clé de signer des messages avec cette clé KMS.

kms:Verify

Permet aux utilisateurs de clé de vérifier les signatures avec cette clé KMS.

kms:VerifyMac

Permet aux utilisateurs de clés d'utiliser une clé KMS HMAC pour vérifier une balise HMAC.

Permet aux utilisateurs de clé d'utiliser la clé KMS avec les services AWS.

La politique de clé par défaut dans la console donne également aux utilisateurs clés les autorisations d'octroi dont ils ont besoin pour protéger leurs données dans les services AWS qui utilisent des octrois. Les services AWS utilisent souvent des octrois pour obtenir une autorisation spécifique et limitée d'utiliser une clé KMS.

Cette instruction de politique de clé autorise l'utilisateur de la clé à créer, afficher et révoquer des octrois sur la clé KMS, mais uniquement lorsque la demande provient d'un service AWS intégré à AWS KMS. La condition de politique kms:GrantIsForAWSResource ne permet pas à l'utilisateur d'appeler ces opérations d'octroi directement. Lorsque l'utilisateur de la clé l'autorise, un service AWS peut créer une autorisation au nom de l'utilisateur qui permet au service d'utiliser la clé KMS pour protéger les données de l'utilisateur.

Les utilisateurs de clé ont besoin de ces autorisations pour utiliser leur clé KMS avec des services intégrés, mais ces autorisations ne sont pas suffisantes. Les utilisateurs de clés ont également besoin d'une autorisation pour utiliser les services intégrés. Pour plus d'informations sur l'attribution aux utilisateurs de l'accès à un service AWS qui s'intègre à AWS KMS, consultez la documentation relative au service intégré.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Par exemple, les utilisateurs de clés peuvent utiliser ces autorisations sur la clé KMS de la manière suivante.

  • Utilisez cette clé KMS avec Amazon Elastic Block Store (Amazon EBS) et Amazon Elastic Compute Cloud (Amazon EC2) pour attacher un volume EBS chiffré à une instance EC2. L'utilisateur de clé accorde implicitement à Amazon EC2 l'autorisation d'utiliser la clé KMS pour attacher le volume chiffré à l'instance. Pour de plus amples informations, veuillez consulter Comment Amazon Elastic Block Store (Amazon EBS) utilise AWS KMS.

  • Utilisez cette clé KMS avec Amazon Redshift pour lancer un cluster chiffré. L'utilisateur de clé accorde implicitement à Amazon Redshift l'autorisation d'utiliser la clé KMS pour lancer le cluster chiffré et créer des instantanés chiffrés. Pour de plus amples informations, veuillez consulter Comment d'Amazon Redshift utilise AWS KMS.

  • Utiliser cette clé KMS avec d'autres services AWS intégrés à AWS KMS qui utilisent des octrois, pour créer, gérer ou utiliser des ressources chiffrées avec ces services.

La politique de clé par défaut permet aux utilisateurs clés de déléguer leur autorisation d'octroi à tous les services intégrés qui utilisent des octrois. Cependant, vous pouvez créer une politique de clé personnalisée qui limite l'autorisation aux services AWS spécifiés. Pour plus d'informations, reportez-vous à la clé de condition kms:ViaService.