AWS KMS concepts - 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.

AWS KMS concepts

Découvrez les termes et concepts de base utilisés dans AWS Key Management Service (AWS KMS) et découvrez comment ils fonctionnent ensemble pour protéger vos données.

AWS KMS keys

AWS KMS keys (clés KMS) constituent la ressource principale de AWS KMS. Vous pouvez utiliser une clé KMS pour chiffrer, déchiffrer et chiffrer à nouveau des données. Il peut également générer des clés de données que vous pouvez utiliser en dehors de AWS KMS. En règle générale, vous utiliserez des clés KMS de chiffrement symétriques, mais vous pouvez créer et utiliser des clés KMS asymétriques pour le chiffrement ou la signature et créer et utiliser des clés KMS HMAC pour générer et vérifier des balises HMAC.

Note

AWS KMS remplace le terme clé principale du client (CMK) par AWS KMS keyclé KMS. Le concept n'a pas changé. Pour éviter des modifications AWS KMS intempestives, certaines variantes de ce terme sont conservées.

Une AWS KMS key est une représentation logique d'une clé cryptographique. Une clé KMS contient des métadonnées, telles que l'ID de clé, Spécifications de la clé, Utilisation de la clé, date de création, description et l'État de clé. Plus important encore, il contient une référence aux éléments de clé qui sont utilisés lorsque vous exécutez des opérations cryptographiques avec la clé KMS.

Vous pouvez créer une clé KMS à partir du matériel de clé cryptographique généré dans les modules de sécurité matériels validés par la norme AWS KMS FIPS. Les éléments de clé des clés symétriques KMS et les clés privées des clés asymétriques KMS ne laissent jamais AWS KMS non chiffré. Pour utiliser ou gérer vos clés KMS, vous devez utiliser AWS KMS. Pour de plus amples informations sur la création et la gestion des clés KMS, veuillez consulter Gestion de clés . Pour de plus amples informations sur l'utilisation des clés KMS, veuillez consulter la Référence d'API AWS Key Management Service.

Par défaut, AWS KMS crée le matériau clé d'une clé KMS. Vous ne pouvez pas extraire, exporter, afficher ou gérer ces éléments de clé. La seule exception est la clé publique d'une paire de clés asymétriques, que vous pouvez exporter pour l'utiliser en dehors de AWS. De plus, vous ne pouvez pas supprimer ces éléments de clé ; vous devez supprimer la clé KMS. Toutefois, vous pouvez importer votre propre contenu clé dans une clé KMS, ou utiliser un magasin de clés personnalisé pour créer des clés KMS utilisant le contenu clé de votre AWS CloudHSM cluster, ou le contenu clé d'un gestionnaire de clés externe que vous possédez et gérez en dehors de celui-ci AWS.

AWS KMS prend également en charge les clés multirégionales, qui vous permettent de chiffrer les données dans une seule Région AWS et de les déchiffrer dans une autre. Région AWS

Pour de plus amples informations sur la création et la gestion des clés KMS, veuillez consulter Gestion de clés . Pour de plus amples informations sur l'utilisation des clés KMS, veuillez consulter la Référence d'API AWS Key Management Service.

Clés et AWS clés du client

Les clés KMS que vous créez sont des clés gérées par le client. Les Services AWS qui utilisent des clés KMS pour chiffrer vos ressources de service créent généralement des clés automatiquement. Les clés KMS Services AWS créées dans votre AWS compte sont Clés gérées par AWS. Les clés KMS Services AWS créées dans un compte de service sont Clés détenues par AWS.

Type de clé KMS Peut afficher les métadonnées de clés KMS Peut gérer une clé KMS Utilisé uniquement pour mon Compte AWS Rotation automatique Tarification
Clé gérée par le client Oui Oui Oui Facultatif. Chaque année (environ 365 jours)

Frais mensuels (au prorata horaire)

Frais par utilisation

Clé gérée par AWS Oui Non Oui Obligatoire. Chaque année (environ 365 jours)

Aucun frais mensuel

Frais par utilisation (certains Services AWS payent ces frais pour vous)

Clé détenue par AWS Non Non Non Varie Pas de frais

AWS les services qui s'intègrent AWS KMS diffèrent dans leur prise en charge des clés KMS. Certains AWS services cryptent vos données par défaut à l'aide d'un Clé détenue par AWS ou d'un Clé gérée par AWS. Certains AWS services prennent en charge les clés gérées par le client. D'autres AWS services prennent en charge tous les types de clés KMS pour vous permettre de disposer facilement d'une Clé détenue par AWS clé gérée par le client Clé gérée par AWS, de la visibilité ou du contrôle d'une clé gérée par le client. Pour obtenir des informations détaillées sur les options de chiffrement proposées par un AWS service, consultez la rubrique Chiffrement au repos du guide de l'utilisateur ou du guide du développeur du service.

Clés gérées par le client

Les clés KMS que vous créez sont des clés gérées par le client. Les clés gérées par le client sont des clés KMS Compte AWS que vous créez, détenez et gérez. Vous disposez d'un contrôle total sur ces clés KMS, y compris établir et maintenir leurs politiques de clé, les politiques IAM et les octrois, leur activation et leur désactivation, la rotation de leurs éléments de chiffrement, l'ajout de balises, la création d'alias qui font référence aux clés KMS, et la planification des clés KMS en vue de leur suppression.

Les clés gérées par le client apparaissent sur la page Clés gérées par le client de la AWS Management Console pour AWS KMS. Pour identifier définitivement une clé gérée par le client, utilisez l'DescribeKeyopération. Pour les clés gérées par le client, la valeur du champ KeyManager de la réponse DescribeKey est CUSTOMER.

Vous pouvez utiliser vos clés gérées par le client dans les opérations de chiffrement et auditer leur utilisation dans les journaux AWS CloudTrail . En outre, de nombreux services AWS qui s'intègrent à AWS KMS vous permettent de spécifier une clé gérée par le client pour protéger les données qu'ils stockent et gèrent pour vous.

Les clés gérées par le client entraînent des frais mensuels et des frais pour une utilisation au-delà de l'offre gratuite. Ils sont comptabilisés dans les AWS KMS quotas de votre compte. Pour plus d'informations, consultez Tarification AWS Key Management Service et Quotas.

Clés gérées par AWS

Clés gérées par AWSsont des clés KMS de votre compte créées, gérées et utilisées en votre nom par un AWS service intégré à AWS KMS.

Certains AWS services vous permettent de choisir une clé Clé gérée par AWS ou une clé gérée par le client pour protéger vos ressources dans le cadre de ce service. En général, à moins que vous ne soyez obligé de contrôler la clé de chiffrement qui protège vos ressources, une Clé gérée par AWS est un bon choix. Vous n'êtes pas obligé de créer ou de gérer la clé ou sa stratégie de clé, et il n'y a jamais de frais mensuel pour une Clé gérée par AWS.

Vous êtes autorisé à les consulter Clés gérées par AWS dans votre compte, à consulter leurs politiques clés et à vérifier leur utilisation dans AWS CloudTrail les journaux. Cependant, vous ne pouvez pas modifier leurs propriétés Clés gérées par AWS, les faire pivoter, modifier leurs politiques clés ou planifier leur suppression. De plus, vous ne pouvez pas Clés gérées par AWS les utiliser directement dans des opérations cryptographiques ; le service qui les crée les utilise en votre nom.

Clés gérées par AWS apparaissent sur la Clés gérées par AWSpage du AWS Management Console formulaire AWS KMS. Vous pouvez également les identifier Clés gérées par AWS par leurs alias, dont le format aws/service-name est tel queaws/redshift. Pour identifier définitivement un Clés gérées par AWS, utilisez l'DescribeKeyopération. Pour les Clés gérées par AWS, la valeur du champ KeyManager de la réponse DescribeKey est AWS.

Tous Clés gérées par AWS font l'objet d'une rotation automatique chaque année. Vous ne pouvez pas modifier cette programmation de rotation.

Note

En mai 2022, le calendrier de rotation AWS KMS a été modifié, Clés gérées par AWS passant de tous les trois ans (environ 1 095 jours) à chaque année (environ 365 jours).

Clés gérées par AWS Les nouvelles versions font l'objet d'une rotation automatique un an après leur création, et environ chaque année par la suite.

Clés gérées par AWS Les versions existantes font automatiquement l'objet d'une rotation un an après leur dernière rotation, puis chaque année.

Il n'y a pas de frais mensuels pour Clés gérées par AWS. Ils peuvent être soumis à des frais d'utilisation au-delà du niveau gratuit, mais certains AWS services couvrent ces coûts pour vous. Pour plus de détails, reportez-vous à la rubrique Chiffrement au repos dans le Guide de l'utilisateur ou le guide du développeur du service. Pour plus d’informations, consultez Tarification AWS Key Management Service.

Clés gérées par AWS ne comptez pas dans les quotas de ressources le nombre de clés KMS dans chaque région de votre compte. Mais lorsqu'elles sont utilisées pour le compte d'un principal dans votre compte, ces clés KMS sont prises en compte dans les quotas de demandes. Pour plus de détails, consultez Quotas.

Clés détenues par AWS

Clés détenues par AWSsont un ensemble de clés KMS qu'un AWS service possède et gère pour une utilisation multiple Comptes AWS. Bien qu' Clés détenues par AWS ils ne soient pas dans votre compte Compte AWS, tout AWS service peut utiliser un Clé détenue par AWS pour protéger les ressources de votre compte.

Certains AWS services vous permettent de choisir une clé Clé détenue par AWS ou une clé gérée par le client. En général, à moins que vous ne soyez obligé d'auditer ou de contrôler la clé de chiffrement qui protège vos ressources, une Clé détenue par AWS est un bon choix. Clés détenues par AWS sont totalement gratuits (pas de frais mensuels ni de frais d'utilisation), ils ne sont pas pris en compte dans les AWS KMS quotas de votre compte et ils sont faciles à utiliser. Vous n'avez pas besoin de créer ou de maintenir la clé ou sa politique de clé.

La rotation des services Clés détenues par AWS varie selon les services. Pour plus d'informations sur la rotation d'un service en particulier Clé détenue par AWS, consultez la rubrique Chiffrement au repos du guide de l'utilisateur ou du guide du développeur du service.

Clés KMS de chiffrement symétrique

Lorsque vous créez un AWS KMS key, par défaut, vous obtenez une clé KMS pour le chiffrement symétrique. Il s'agit du type de clé KMS de base et le plus couramment utilisé.

Dans AWS KMS, une clé KMS de chiffrement symétrique représente une clé de chiffrement AES-GCM 256 bits, sauf dans les régions chinoises, où elle représente une clé de chiffrement SM4 128 bits. Le contenu de la clé symétrique ne sort jamais AWS KMS non chiffré. Pour utiliser une clé KMS de chiffrement symétrique, vous devez appeler AWS KMS. Les clés de chiffrement symétriques sont utilisées dans le chiffrement symétrique, où la même clé est utilisée pour chiffrer et déchiffrer. À moins que votre tâche ne nécessite explicitement un chiffrement asymétrique, les clés KMS de chiffrement symétriques, qui ne quittent jamais AWS KMS non chiffrées, sont un bon choix.

AWS les services intégrés AWS KMS utilisent uniquement des clés KMS de chiffrement symétriques pour chiffrer vos données. Ces services ne prennent pas en charge le chiffrement avec des clés KMS asymétriques. Pour obtenir de l'aide sur la détermination de la symétrie ou de l'asymétrie d'une clé KMS, veuillez consulter Identification des clés KMS asymétriques.

Techniquement, la spécification d'une clé symétrique est SYMMETRIC_DEFAULT, l'utilisation de la clé est ENCRYPT_DECRYPT et l'algorithme de chiffrement est SYMMETRIC_DEFAULT. Pour plus de détails, consultez Spécification de clé SYMMETRIC_DEFAULT.

Vous pouvez utiliser une clé KMS de chiffrement symétrique AWS KMS pour chiffrer, déchiffrer et rechiffrer les données, et générer des clés de données et des paires de clés de données. Vous pouvez créer des clés KMS de chiffrement symétriques multi-région, importer vos propres éléments de clé vers une clé KMS de chiffrement symétrique et créer des clés KMS de chiffrement symétriques dans des magasins de clés personnalisés. Pour obtenir un tableau de comparaison des opérations que vous pouvez exécuter sur des clés KMS de différents types, veuillez consulter.Référence des types de clés.

Clés KMS asymétriques

Vous pouvez créer une clé KMS asymétrique dans AWS KMS. Une clé KMS asymétrique représente une paire de clés publiques et de clés privées mathématiquement liées entre elles. La clé privée ne sort jamais AWS KMS non chiffrée. Pour utiliser la clé privée, vous devez appeler AWS KMS. Vous pouvez utiliser la clé publique interne AWS KMS en appelant les opérations de l' AWS KMS API, ou vous pouvez télécharger la clé publique et l'utiliser en dehors de AWS KMS. Vous pouvez également créer des clés KMS multi-région asymétriques.

Vous pouvez créer des clés KMS asymétriques qui représentent des paires de clés RSA, des paires de clés à courbe elliptique ou des paires de clés SM2 (régions chinoises uniquement). Les clés KMS associées à des paires de clés RSA peuvent être utilisées pour chiffrer ou déchiffrer des données ou pour signer et vérifier des messages (mais pas les deux). Les clés KMS dotées de paires de clés à courbe elliptique recommandées par le NIST peuvent être utilisées pour signer et vérifier des messages ou pour obtenir des secrets partagés (mais pas les deux). Les clés KMS avec paires de ECC_SECG_P256K1 clés ne peuvent être utilisées que pour signer et vérifier des messages. Les clés KMS dotées de paires de clés SM2 (régions chinoises uniquement) peuvent être utilisées pour chiffrer et déchiffrer des données, signer et vérifier des messages ou obtenir des secrets partagés (vous devez choisir un type d'utilisation de clé).

Pour en savoir plus sur la création et l'utilisation des clés KMS asymétriques, veuillez consulter Clés asymétriques dans AWS KMS.

Clés KMS HMAC

Une clé KMS HMAC représente une clé symétrique de longueur variable utilisée pour générer et vérifier les codes d'authentification de message utilisant hash (HMAC). Le contenu clé d'une clé HMAC ne sort jamais AWS KMS non chiffré. Pour utiliser une clé HMAC, appelez les opérations d'API GenerateMac ou VerifyMac.

Vous pouvez également créer des clés KMS HMAC multi-région.

Pour en savoir plus sur la création et l'utilisation des clés KMS, veuillez consulter Clés HMAC dans AWS KMS.

Clés de données

Les clés de données sont des clés symétriques que vous pouvez utiliser pour chiffrer des données, y compris de grandes quantités de données et d'autres clés de chiffrement des données. Contrairement aux clés KMS symétriques, qui ne peuvent pas être téléchargées, les clés de données vous sont renvoyées pour une utilisation en dehors de AWS KMS.

Lorsqu'il AWS KMS génère des clés de données, il renvoie une clé de données en texte brut pour une utilisation immédiate (facultatif) et une copie cryptée de la clé de données que vous pouvez stocker en toute sécurité avec les données. Lorsque vous êtes prêt à déchiffrer les données, vous demandez AWS KMS d'abord de déchiffrer la clé de données cryptée.

AWS KMS génère, chiffre et déchiffre les clés de données. Toutefois, il AWS KMS ne stocke, ne gère ni ne suit vos clés de données, et n'effectue pas d'opérations cryptographiques avec des clés de données. Vous devez utiliser et gérer les clés de données en dehors de AWS KMS. Pour obtenir de l'aide sur l'utilisation des clés de données en toute sécurité, consultez AWS Encryption SDK.

Création d'une clé de données

Pour créer une clé de données, appelez l'GenerateDataKeyopération. AWS KMS génère la clé de données. Il chiffre ensuite une copie de la clé de données sous une clé KMS de chiffrement symétrique que vous spécifiez. Cette opération renvoie une copie en texte clair de la clé de données et la copie de la clé de données chiffrée sous la clé KMS. L'image suivante illustre cette opération.

Générer une clé de données

AWS KMS prend également en charge l'GenerateDataKeyWithoutPlaintextopération, qui renvoie uniquement une clé de données cryptée. Lorsque vous devez utiliser la clé de données, demandez AWS KMS à la déchiffrer.

Chiffrement de données avec une clé de données

AWS KMS Impossible d'utiliser une clé de données pour chiffrer des données. Cependant, vous pouvez utiliser la clé de données en dehors de AWS KMS, par exemple en utilisant OpenSSL ou une bibliothèque cryptographique comme AWS Encryption SDK.

Après avoir utilisé la clé de données en texte brut pour chiffrer les données, supprimez-la de la mémoire dès que possible. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées pour qu'elle soit disponible pour déchiffrer les données.

Chiffrez les données utilisateur en dehors de AWS KMS

Déchiffrement des données avec une clé de données

Pour déchiffrer vos données, transmettez la clé de données cryptée à l'opération de déchiffrement. AWS KMS utilise votre clé KMS pour déchiffrer la clé de données, puis renvoie la clé de données en texte brut. Utilisez la clé de données en texte brut pour déchiffrer vos données, puis supprimez la clé de données en texte brut de la mémoire dès que possible.

Le schéma suivant montre comment utiliser l'opération Decrypt pour déchiffrer une clé de données chiffrée.

Déchiffrement d'une clé de données

Comment les clés KMS inutilisables affectent les clés de données

Lorsqu'une clé KMS devient inutilisable, l'effet est presque immédiat (sous réserve d'une éventuelle cohérence). L'état de clé de la clé KMS change pour refléter son nouvel état, et toutes les requêtes d'utilisation de la clé KMS dans des opérations cryptographiques échouent.

Cependant, l'effet sur les clés de données chiffrées par la clé KMS, et sur les données chiffrées par la clé de données, est retardé jusqu'à ce que la clé KMS soit utilisée à nouveau, par exemple pour déchiffrer la clé de données.

Les clés KMS peuvent devenir inutilisables pour diverses raisons, notamment les actions suivantes que vous pourriez effectuer.

Cet effet est particulièrement important pour les nombreuses personnes Services AWS qui utilisent des clés de données pour protéger les ressources gérées par le service. L'exemple suivant utilise Amazon Elastic Block Store (Amazon EBS) et Amazon Elastic Compute Cloud (Amazon EC2). Les utilisateurs Services AWS utilisent les clés de données de différentes manières. Pour plus de détails, veuillez consulter la section Protection des données du chapitre Sécurité pour l' Service AWS.

Par exemple, envisagez le scénario suivant :

  1. Vous créez un volume EBS chiffré et spécifiez une clé KMS pour le protéger. Amazon EBS vous demande AWS KMS d'utiliser votre clé KMS pour générer une clé de données chiffrée pour le volume. Amazon EBS stocke la clé de données chiffrée avec les métadonnées du volume.

  2. Lorsque vous attachez le volume EBS à une instance EC2, Amazon EC2 utilise votre clé KMS pour déchiffrer la clé de données chiffrée du volume EBS. Amazon EC2 utilise la clé de données du matériel Nitro, qui est chargé de chiffrer toutes les E/S du disque sur le volume EBS. La clé de données est conservée dans le matériel Nitro tant que le volume EBS est attaché à l'instance EC2.

  3. Vous effectuez une action qui rend la clé KMS inutilisable. Cela n'a aucun effet immédiat sur l'instance EC2 ou le volume EBS. Amazon EC2 utilise la clé de données, non pas la clé KMS, pour chiffrer toutes les E/S de disque alors que le volume est attaché à l'instance.

  4. Toutefois, lorsque le volume EBS chiffré est détaché de l'instance EC2, Amazon EBS supprime la clé de données en texte brut du matériel Nitro. La prochaine fois que le volume EBS chiffré est attaché à une instance EC2, l'attachement échoue, car Amazon EBS ne peut pas utiliser la clé KMS pour déchiffrer la clé de données chiffrée du volume. Pour utiliser le volume EBS à nouveau, vous devez rendre la clé KMS à nouveau utilisable.

Paires de clés de données

Les paires de clés de données sont des clés de données asymétriques composées d'une clé publique et d'une clé privée mathématiquement liées entre elles. Ils sont conçus pour être utilisés pour le chiffrement et le déchiffrement côté client ou pour la signature et la vérification en dehors de. AWS KMS

Contrairement aux paires de clés de données générées par des outils tels qu'OpenSSL AWS KMS , la clé privée de chaque paire de clés de données est protégée par une clé AWS KMS KMS de chiffrement symétrique que vous spécifiez. Toutefois, il AWS KMS ne stocke, ne gère ni ne suit vos paires de clés de données, et n'effectue pas d'opérations cryptographiques avec des paires de clés de données. Vous devez utiliser et gérer les paires de clés de données en dehors d' AWS KMS.

AWS KMS prend en charge les types de paires de clés de données suivants :

  • Paires de clés RSA : RSA_2048, RSA_3072 et RSA_4096

  • Paires de clés de courbe elliptique : ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521 et ECC_SECG_P256K1

  • Paires de clés SM (régions de Chine uniquement) : SM2

Le type de paire de clés de données que vous sélectionnez dépend généralement de votre cas d'utilisation ou des exigences réglementaires. La plupart des certificats nécessitent des clés RSA. Les touches à courbe elliptique sont souvent utilisées pour les signatures numériques ou pour obtenir des secrets partagés. Les clés ECC_SECG_P256K1 sont couramment utilisées pour les cryptomonnaies. AWS KMS recommande d'utiliser des paires de clés ECC pour la signature et des paires de clés RSA pour le chiffrement ou la signature, mais pas les deux. Cependant, aucune restriction AWS KMS ne peut être imposée à l'utilisation de paires de clés de données en dehors de AWS KMS.

Création d'une paire de clés de données

Pour créer une paire de clés de données, appelez les GenerateDataKeyPairWithoutPlaintextopérations GenerateDataKeyPairor. Spécifiez la clé KMS de chiffrement symétrique que vous souhaitez utiliser pour chiffrer la clé privée.

GenerateDataKeyPair renvoie une clé publique en texte brut, une clé privée en texte brut et une clé privée chiffrée. Utilisez cette opération lorsque vous avez besoin immédiatement d'une clé privée en texte brut, par exemple pour générer une signature numérique.

GenerateDataKeyPairWithoutPlaintext renvoie une clé publique en texte brut et une clé privée chiffrée, mais pas une clé privée en texte brut. Utilisez cette opération lorsque vous n'avez pas besoin immédiatement d'une clé privée en texte brut, par exemple lorsque vous chiffrez avec une clé publique. Plus tard, lorsque vous avez besoin d'une clé privée en texte brut pour déchiffrer les données, vous pouvez appeler l'opération Decrypt (Déchiffrer).

L'image suivante illustre l'opération GenerateDataKeyPair. L'opération GenerateDataKeyPairWithoutPlaintext omet la clé privée en texte brut.

Générer une paire de clés de données

Chiffrer des données avec une paire de clés de données

Lorsque vous chiffrez avec une paire de clés de données, vous utilisez la clé publique de la paire pour chiffrer les données et la clé privée de la même paire pour déchiffrer les données. Généralement, les paires de clés de données sont utilisées lorsque de nombreuses parties ont besoin de chiffrer des données que seule la partie qui détient la clé privée peut déchiffrer.

Les parties disposant de la clé publique utilisent cette clé pour chiffrer les données, comme indiqué dans le diagramme suivant.

Chiffrez les données utilisateur à l'aide de la clé publique d'une paire de clés de données en dehors de AWS KMS

Déchiffrer des données avec une paire de clés de données

Pour déchiffrer vos données, utilisez la clé privée de la paire de clés de données. Pour que l'opération réussisse, les clés publiques et privées doivent être issues de la même paire de clés de données et vous devez utiliser le même algorithme de chiffrement.

Pour déchiffrer la clé privée chiffrée, transmettez-la à l'opération Decrypt (Déchiffrer). Utilisez la clé privée en texte brut pour déchiffrer les données. Ensuite, retirez la clé privée en texte brut de la mémoire dès que possible.

Le diagramme suivant montre comment utiliser la clé privée dans une paire de clés de données pour déchiffrer le texte chiffré.

Déchiffrer les données avec la clé privée dans une paire de clés de données en dehors de AWS KMS.

Signer des messages avec une paire de clés de données

Pour générer une signature de chiffrement pour un message, utilisez la clé privée dans la paire de clés de données. Toute personne disposant de la clé publique peut l'utiliser pour vérifier que le message a été signé avec votre clé privée et qu'il n'a pas changé depuis qu'il a été signé.

Si vous chiffrez votre clé privée, transmettez-la à l'opération de déchiffrement. AWS KMS utilise votre clé KMS pour déchiffrer la clé de données, puis renvoie la clé privée en texte brut. Utilisez la clé privée en texte brut pour générer la signature. Ensuite, retirez la clé privée en texte brut de la mémoire dès que possible.

Pour signer un message, créez un résumé de message à l'aide d'une fonction de hachage de chiffrement, telle que la commande dgst dans OpenSSL. Ensuite, passez votre clé privée en texte brut à l'algorithme de signature. Le résultat est une signature qui représente le contenu du message. (Vous pourriez être en mesure de signer des messages plus courts sans créer d'abord un résumé. La taille maximale du message varie en fonction de l'outil de signature que vous utilisez.)

Le diagramme suivant montre comment utiliser la clé privée dans une paire de clés de données pour signer un message.

Générez une signature cryptographique avec la clé privée dans une paire de clés de données située en dehors de AWS KMS.

Vérifier une signature avec une paire de clés de données

Toute personne disposant de la clé publique dans votre paire de clés de données peut l'utiliser pour vérifier la signature que vous avez générée avec votre clé privée. La vérification confirme qu'un utilisateur autorisé a signé le message avec la clé privée et l'algorithme de signature spécifiés, et que le message n'a pas changé depuis sa signature.

Pour réussir, la partie qui vérifie la signature doit générer le même type de résumé, utiliser le même algorithme et utiliser la clé publique qui correspond à la clé privée utilisée pour signer le message.

Le diagramme suivant montre comment utiliser la clé publique dans une paire de clés de données pour vérifier une signature de message.

Vérifier une signature de chiffrement avec la clé publique dans une paire de clés de données en dehors de AWS KMS.

Déterminez un secret partagé à l'aide de paires de clés de données

L'accord clé permet à deux pairs, chacun possédant une paire de clés publique-privée à courbe elliptique, d'établir un secret partagé sur un canal non sécurisé. Pour obtenir un secret partagé, les deux pairs doivent échanger leurs clés publiques via un canal de communication non sécurisé (comme Internet). Ensuite, chaque partie utilise sa clé privée et la clé publique de son homologue pour calculer le même secret partagé à l'aide d'un algorithme d'accord de clé. Vous pouvez utiliser la valeur secrète partagée pour obtenir une clé symétrique capable de chiffrer et de déchiffrer les données envoyées entre les deux homologues, ou de générer et de vérifier des HMAC.

Note

AWS KMS recommande vivement de vérifier que la clé publique que vous recevez provient de la partie attendue avant de l'utiliser pour dériver un secret partagé.

Alias

Utilisez un alias comme un nom convivial pour une clé KMS. Par exemple, vous pouvez vous référer à une clé KMS en tant que clé de test au lieu de 1234abcd-12ab-34cd-56ef-1234567890ab.

Les alias facilitent l'identification d'une clé KMS dans la AWS Management Console. Vous pouvez utiliser un alias pour identifier une clé KMS dans certaines AWS KMS opérations, notamment les opérations cryptographiques. Dans les applications, vous pouvez utiliser un seul alias pour faire référence aux différentes clés KMS de chaque application Région AWS.

Vous pouvez également autoriser et refuser l'accès aux clés KMS en fonction de leurs alias sans modifier les politiques ni gérer les octrois. Cette fonctionnalité fait partie de la AWS KMS prise en charge du contrôle d'accès basé sur les attributs (ABAC). Pour plus de détails, consultez ABAC pour AWS KMS.

Dans AWS KMS, les alias sont des ressources indépendantes et non des propriétés d'une clé KMS. Ainsi, vous pouvez ajouter, modifier et supprimer un alias sans affecter la clé KMS associée.

Important

N'incluez pas d'informations confidentielles ou sensibles dans un nom d’alias. Les alias peuvent apparaître en texte clair dans les CloudTrail journaux et autres sorties.

En savoir plus :

Magasins de clés personnalisés

Un magasin de clés personnalisé est une AWS KMS ressource soutenue par un gestionnaire de clés en dehors de AWS KMS celle que vous possédez et gérez. Lorsque vous utilisez une clé KMS dans un magasin de clés personnalisé pour une opération cryptographique, l'opération cryptographique est en fait effectuée dans votre gestionnaire de clés en utilisant ses clés cryptographiques.

AWS KMS prend en charge les magasins de AWS CloudHSM clés soutenus par un AWS CloudHSM cluster et les magasins de clés externes soutenus par un gestionnaire de clés externe externe à AWS.

Pour plus d’informations, consultez Magasins de clés personnalisés.

Opérations cryptographiques

Dans AWS KMS, les opérations cryptographiques sont des opérations d'API qui utilisent des clés KMS pour protéger les données. Comme les clés KMS restent à l'intérieur AWS KMS, vous devez appeler AWS KMS pour utiliser une clé KMS dans le cadre d'une opération cryptographique.

Pour effectuer des opérations cryptographiques avec des clés KMS, utilisez AWS les SDK, AWS Command Line Interface (AWS CLI) ou le. AWS Tools for PowerShell Vous ne pouvez pas effectuer d'opérations cryptographiques dans la console AWS KMS . Pour obtenir des exemples d'appel des opérations cryptographiques dans plusieurs langages de programmation, veuillez consulter Programmation de l'API AWS KMS.

Le tableau suivant répertorie les opérations AWS KMS cryptographiques. Il indique également le type de clé et les exigences d'utilisation des clés KMS utilisées dans l'opération.

Opération Type de clé Utilisation de la clé
Decrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
DeriveSharedSecret Asymétrique KEY_AGREEMENT
Encrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
GenerateDataKey Symétrique ENCRYPT_DECRYPT
GenerateDataKeyPair Symétrique [1]

Non pris en charge sur les clés KMS dans les magasins de clés personnalisés.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Symétrique [1]

Non pris en charge sur les clés KMS dans les magasins de clés personnalisés.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Symétrique ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/A. Cette opération n'utilise pas de clé KMS. N/A
ReEncrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
Sign (Signer) Asymétrique SIGN_VERIFY
Vérification Asymétrique SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Génère une paire de clés de données asymétriques qui est protégée par une clé KMS de chiffrement symétrique.

Pour plus d'informations sur les autorisations pour les opérations cryptographiques, veuillez consulter AWS KMS autorisations.

Pour que tous les utilisateurs soient AWS KMS réactifs et hautement fonctionnels, AWS KMS établissez des quotas sur le nombre d'opérations cryptographiques appelées par seconde. Pour plus de détails, consultez Quotas partagés pour les opérations de chiffrement.

Identifiants clés () KeyId

Les identificateurs de clé servent de noms pour vos clés KMS. Ils vous aident à reconnaître vos clés KMS dans la console. Vous les utilisez pour indiquer les clés KMS que vous souhaitez utiliser dans les opérations d'API AWS KMS , les politiques de clés, les politiques IAM et les octrois. Les valeurs de l'identifiant de clé ne sont absolument pas liées au matériel clé associé à la clé KMS.

AWS KMS définit plusieurs identificateurs clés. Lorsque vous créez une clé KMS, elle AWS KMS génère un ARN de clé et un ID de clé, qui sont des propriétés de la clé KMS. Lorsque vous créez un alias, il AWS KMS génère un ARN d'alias basé sur le nom d'alias que vous définissez. Vous pouvez consulter les identifiants de clé et d'alias dans AWS Management Console et dans l' AWS KMS API.

Dans la AWS KMS console, vous pouvez afficher et filtrer les clés KMS en fonction de leur ARN clé, de leur ID de clé ou de leur nom d'alias, et les trier par ID de clé et nom d'alias. Pour obtenir de l'aide sur la recherche des identificateurs clés dans la console, veuillez consulter Recherche de l'ID et de l'ARN d'une clé.

Dans l' AWS KMS API, les paramètres que vous utilisez pour identifier une clé KMS sont nommés KeyId ou une variante, telle que TargetKeyId ouDestinationKeyId. Toutefois, les valeurs de ces paramètres ne sont pas limitées aux ID de clé. Certains peuvent prendre n'importe quel identifiant de clé valide. Pour plus d'informations sur les valeurs de chaque paramètre, consultez la description du paramètre dans la référence de l' AWS Key Management Service API.

Note

Lorsque vous utilisez l' AWS KMS API, faites attention à l'identifiant de clé que vous utilisez. Différentes API nécessitent des identificateurs de clés différents. En général, utilisez l'identificateur de clé le plus complet et le plus pratique pour votre tâche.

AWS KMS prend en charge les identificateurs de clé suivants.

ARN de clé

L'ARN de clé est l'Amazon Resource Name (ARN) d'une clé KMS. Il s'agit d'un identifiant unique et entièrement qualifié pour la clé KMS. Un ARN de clé inclut Compte AWS la région et l'ID de clé. Pour obtenir de l'aide sur la recherche de l'ARN de clé d'une clé KMS, veuillez consulter Recherche de l'ID et de l'ARN d'une clé.

Le format d'un ARN de clé est le suivant :

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

Voici un exemple d'ARN de clé pour une clé KMS de région unique.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

L'élément key-id des ARN de clé des clés multi-région commencent par le préfixe mrk-. Voici un exemple d'ARN de clé pour une clé KMS multi-région.

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
ID de clé

L'ID de clé identifie de manière unique une clé KMS au sein d'un compte et d'une région. Pour obtenir de l'aide sur la recherche de l'ID de clé d'une clé KMS, veuillez consulter Recherche de l'ID et de l'ARN d'une clé.

Voici un exemple d'ID de clé pour une clé KMS de région unique.

1234abcd-12ab-34cd-56ef-1234567890ab

Les ID de clé de clés multi-région commencent par le préfixe mrk-. Voici un exemple d'ID de clé pour une clé KMS multi-région.

mrk-1234abcd12ab34cd56ef1234567890ab
ARN d'alias

L'alias ARN est le nom Amazon Resource (ARN) d'un AWS KMS alias. Il s'agit d'un identifiant unique et complet pour l'alias et pour la clé KMS qu'il représente. Un ARN d'alias inclut Compte AWS la région et le nom de l'alias.

À tout moment, un ARN d'alias identifie une clé KMS particulière. Toutefois, comme vous pouvez modifier la clé KMS associée à l'alias, l'ARN d'alias peut identifier différentes clés KMS à des moments différents. Pour obtenir de l'aide sur la recherche de l'ARN d'alias d'une clé KMS, veuillez consulter Recherche du nom d'alias et de l'ARN d'alias.

Le format d'un ARN d'alias est le suivant :

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

Ce qui suit est l'ARN d'alias pour un ExampleAlias fictif.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
Nom d'alias

Le nom d'alias est une chaîne comportant jusqu'à 256 caractères. Il identifie de manière unique une clé KMS associée au sein d'un compte et d'une région. Dans l' AWS KMS API, les noms d'alias commencent toujours paralias/. Pour obtenir de l'aide sur la recherche du nom d'alias d'une clé KMS, veuillez consulter Recherche du nom d'alias et de l'ARN d'alias.

Le format d'un nom d'alias est le suivant :

alias/<alias-name>

Par exemple :

alias/ExampleAlias

Le préfixe aws/ d'un nom d'alias est réservé aux Clés gérées par AWS. Vous ne pouvez pas créer d'alias avec ce préfixe. Par exemple, le nom d'alias du Clé gérée par AWS pour Amazon Simple Storage Service (Amazon S3) est le suivant.

alias/aws/s3

Éléments de clé

Les éléments de clé sont la chaîne de bits utilisée dans un algorithme de chiffrement. Les éléments de clé secrète doivent être tenus secrets pour protéger les opérations de chiffrement qui les utilisent. Les éléments de clé publique sont conçus pour être partagés.

Chaque clé KMS inclut une référence à ses éléments de clé dans ses métadonnées. L'origine des éléments de clé des clés KMS de chiffrement symétrique peut varier. Vous pouvez utiliser le matériel clé qui AWS KMS génère, le matériel clé généré dans le AWS CloudHSM cluster d'un magasin de clés personnalisé, ou importer votre propre matériel clé. Si vous utilisez du matériel AWS KMS clé pour votre clé KMS de chiffrement symétrique, vous pouvez activer la rotation automatique du matériel clé.

Par défaut, chaque clé KMS possède des éléments de clé uniques. Toutefois, vous pouvez créer un ensemble de clés multi-région avec les mêmes éléments de clé.

Origine des éléments de clé

L'origine des éléments de clé est une propriété de clé KMS qui identifie la source des éléments de clé dans la clé KMS. Vous choisissez l'origine des éléments de clé lorsque vous créez la clé KMS, et vous ne pouvez pas la modifier. La source des éléments de clé affecte les caractéristiques de sécurité, de durabilité, de disponibilité, de latence et de débit de la clé KMS.

Pour trouver l'origine matérielle d'une clé KMS, utilisez l'DescribeKeyopération ou consultez la valeur d'origine dans l'onglet Configuration cryptographique de la page détaillée d'une clé KMS dans la AWS KMS console. Pour obtenir de l'aide, veuillez consulter Affichage des clés.

Les clés KMS peuvent avoir l'une des valeurs d'origine des éléments de clé suivantes.

AWS_KMS

AWS KMS crée et gère le matériel clé de la clé KMS dans son propre magasin de clés. Il s'agit de la valeur par défaut et de la valeur recommandée pour la plupart des clés KMS.

Pour obtenir de l'aide sur la création de clés à partir de matériaux clés provenant de AWS KMS, voirCréation de clés.

EXTERNAL (Import key material)

La clé KMS comporte des éléments de clé importés. Lorsque vous créez une clé KMS avec une origine d'éléments de clé External, la clé KMS n'a pas d'élément de clé. Par la suite, vous pouvez importer des éléments de clé dans la clé KMS. Lorsque vous utilisez du matériel clé importé, vous devez sécuriser et gérer ce matériel clé à l'extérieur AWS KMS, y compris le remplacer s'il expire. Pour plus de détails, consultez À propos des clés importées.

Pour obtenir de l'aide sur la création d'une clé KMS pour les éléments de clé importés, veuillez consulter Étape 1 : création d'une clé KMS sans élément de clé.

AWS_CLOUDHSM

AWS KMS crée le matériel clé dans le AWS CloudHSM cluster pour votre magasin de AWS CloudHSM clés.

Pour obtenir de l'aide sur la création d'une clé KMS dans un magasin de AWS CloudHSM clés, consultezCréer des clés KMS dans un magasin de clés AWS CloudHSM.

EXTERNAL_KEY_STORE

Le matériau clé est une clé cryptographique dans un gestionnaire de clés externe externe à. AWS Cette origine n'est prise en charge que pour les clés KMS dans un magasin de clés externe.

Pour obtenir de l'aide avec la création d'une clé KMS dans un magasin de clés externe, veuillez consulter la rubrique Créer des clés KMS dans un magasin de clés externe.

Spécifications de la clé

La spécification de la clé est une propriété qui représente la configuration de chiffrement d'une clé. La signification de la spécification de la clé diffère selon le type de clé.

  • AWS KMS clés — La spécification de la clé détermine si la clé KMS est symétrique ou asymétrique. Elles déterminent également le type d'éléments de clé et les algorithmes pris en charge. Vous choisissez la spécification de clé lorsque vous créez la clé KMS et vous ne pouvez pas la modifier. La spécification de clé par défaut, SYMMETRIC_DEFAULT, représente une clé de chiffrement symétrique de 256 bits.

    Note

    Les KeySpec pour une clé KMS étaient appelées CustomerMasterKeySpec. Le CustomerMasterKeySpec paramètre de l'CreateKeyopération est obsolète. Utilisez plutôt le paramètre KeySpec, qui fonctionne de la même manière. Pour éviter d'interrompre les modifications, la réponse des DescribeKeyopérations CreateKey et inclut désormais les deux KeySpec et les CustomerMasterKeySpec membres ayant les mêmes valeurs.

    Pour obtenir la liste des spécifications de clés et de l'aide sur le choix d'une spécification de clé, veuillez consulter Sélection des spécifications de la clé. Pour trouver la spécification clé d'une clé KMS, utilisez l'DescribeKeyopération ou consultez l'onglet Configuration cryptographique sur la page détaillée d'une clé KMS dans la AWS KMS console. Pour obtenir de l'aide, veuillez consulter Affichage des clés.

    Pour limiter les spécifications clés que les principaux peuvent utiliser lors de la création de clés KMS, utilisez la clé de KeySpec condition kms :. Vous pouvez également utiliser la clé de kms:KeySpec condition pour autoriser les principaux à appeler des AWS KMS opérations uniquement sur des clés KMS avec une spécification de clé particulière. Par exemple, vous pouvez rejeter l'autorisation de planifier la suppression d'une clé KMS avec une spécification de clé RSA_4096.

  • Clés de données (GenerateDataKey) — La spécification de la clé détermine la longueur d'une clé de données AES.

  • Paires de clés de données (GenerateDataKeyPair) — La spécification de la paire de clés détermine le type de contenu clé de la paire de clés de données.

Utilisation de la clé

L'utilisation de la clé est une propriété qui détermine les opérations cryptographiques prises en charge par la clé. Les clés KMS peuvent être utilisées comme clé ENCRYPT_DECRYPTSIGN_VERIFY,GENERATE_VERIFY_MAC, ouKEY_AGREEMENT. Chaque clé KMS ne peut avoir qu'un seul type d'utilisation de clé. L'utilisation d'une clé KMS pour plusieurs types d'opérations rend le produit des deux opérations plus vulnérable aux attaques.

Pour obtenir de l'aide sur le choix de l'utilisation de la clé KMS, veuillez consulter Sélection de l'utilisation des clés. Pour connaître l'utilisation d'une clé KMS, utilisez l'DescribeKeyopération ou choisissez l'onglet Configuration cryptographique sur la page détaillée d'une clé KMS dans la AWS KMS console. Pour obtenir de l'aide, veuillez consulter Affichage des clés.

Chiffrement d'enveloppe

Lorsque vous chiffrez vos données, celles-ci sont protégées, mais vous devez protéger votre clé de chiffrement. Une stratégie consiste à la chiffrer. Le chiffrement d'enveloppe est la pratique consistant à chiffrer des données en texte brut à l'aide d'une clé de données, puis à chiffrer la clé de données sous une autre clé.

Vous pouvez même chiffrer la clé de chiffrement de données sous une autre clé de chiffrement et chiffrer cette clé de chiffrement sous une autre clé de chiffrement. Toutefois, au final, une clé doit rester en texte brut pour vous permettre de déchiffrer les clés et vos données. Cette clé de chiffrement de clé en texte brut de niveau supérieur porte le nom de clé racine.

Chiffrement d'enveloppe

AWS KMS vous aide à protéger vos clés de chiffrement en les stockant et en les gérant en toute sécurité. Les clés racines stockées dans AWS KMS, connues sous le nom de AWS KMS keys, ne laissent jamais les modules de sécurité matériels validés par la norme AWS KMS FIPS non chiffrés. Pour utiliser une clé KMS, vous devez appeler AWS KMS.

Chiffrement d'enveloppe avec plusieurs clés de chiffrement de clé

Le chiffrement d'enveloppe offre plusieurs avantages :

  • Protection des clés de données

    Lorsque vous chiffrez une clé de données, vous n'avez pas à vous préoccuper du stockage de la clé de données chiffrée, car cette clé de données est intrinsèquement protégée par chiffrement. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées.

  • Chiffrement des mêmes données sous plusieurs clés

    Les opérations de chiffrement peuvent exiger beaucoup de temps, notamment lorsque les données en cours de chiffrement sont des objets de grande taille. Au lieu de rechiffrer des données brutes plusieurs fois avec des clés différentes, vous pouvez rechiffrer uniquement les clés de données qui protègent les données brutes.

  • Combinaison des points forts de plusieurs algorithmes

    En général, les algorithmes de clé symétrique sont plus rapides et produisent des textes chiffrés plus petits que les algorithmes de clé publique. Cependant, les algorithmes de clé publique fournissent une séparation inhérente des rôles et facilitent la gestion des clés. Le chiffrement d'enveloppe vous permet d'associer les forces de chaque stratégie.

Contexte de chiffrement

Toutes les opérations AWS KMS cryptographiques utilisant des clés KMS de chiffrement symétriques acceptent un contexte de chiffrement, un ensemble facultatif de paires clé-valeur non secrètes pouvant contenir des informations contextuelles supplémentaires sur les données. AWS KMS utilise le contexte de chiffrement en tant que données authentifiées supplémentaires (AAD) pour prendre en charge le chiffrement authentifié.

Lorsqu'un contexte de chiffrement est inclus dans une requête de chiffrement, il est lié de façon cryptographique au texte chiffré de sorte que le même contexte de chiffrement est requis pour le déchiffrement (ou le déchiffrement et le rechiffrement) des données. Si le contexte de chiffrement fourni dans la requête de déchiffrement ne correspond pas exactement, y compris au niveau des minuscules/majuscules, la requête de déchiffrement échoue. Seul l'ordre des paires clé-valeur dans le contexte de chiffrement peut varier.

Note

Vous ne pouvez pas spécifier de contexte de chiffrement dans une opération de chiffrement avec une clé KMS asymétrique ou une clé KMS HMAC. Les algorithmes asymétriques et les algorithmes MAC ne prennent pas en charge un contexte de chiffrement.

Le contexte de chiffrement n'est pas secret ou chiffré. Il apparaît en texte brut dans les journaux AWS CloudTrail pour vous permettre d'identifier et de classer vos opérations de chiffrement. Votre contexte de chiffrement ne doit pas inclure d'informations sensibles. Nous recommandons que votre chiffrement le contexte décrive les données en cours de chiffrement ou de déchiffrement. Par exemple, lorsque vous chiffrez un fichier, vous pouvez utiliser une partie du chemin de fichier comme contexte de chiffrement.

"encryptionContext": { "department": "10103.0" }

Par exemple, lors du chiffrement de volumes et d'instantanés créés avec l'opération Amazon Elastic Block Store (Amazon EBS) CreateSnapshot, Amazon EBS utilise l'ID du volume comme valeur de contexte de chiffrement.

"encryptionContext": { "aws:ebs:id": "vol-abcde12345abc1234" }

Vous pouvez également utiliser le contexte de chiffrement pour affiner ou limiter l'accès AWS KMS keys à votre compte. Vous pouvez utiliser le contexte de chiffrement en tant que contrainte dans les octrois et en tant que condition dans les instructions de politique.

Pour savoir comment utiliser le contexte de chiffrement pour protéger l'intégrité des données chiffrées, consultez le billet Comment protéger l'intégrité de vos données chiffrées en utilisant AWS Key Management Service et EncryptionContext sur le blog sur la AWS sécurité.

En savoir plus sur le contexte de chiffrement.

AWS KMS applique les règles suivantes pour les clés et les valeurs de contexte de chiffrement.

  • La clé et la valeur d'une paire de contexte de chiffrement doivent être des chaînes littérales simples. Si vous utilisez un autre type, tel qu'un entier ou un flottant, il est AWS KMS interprété comme une chaîne.

  • Les clés et les valeurs dans un contexte de chiffrement peuvent inclure des caractères Unicode. Si un contexte de chiffrement inclut des caractères non autorisés dans les politiques de clé ou les politiques IAM, vous ne pourrez pas spécifier le contexte de chiffrement dans les clés de condition de politique, telles que kms:EncryptionContext:context-key et kms:EncryptionContextKeys. Pour plus d'informations sur les règles de document de politique de clé, voir Format de politique de clé. Pour plus d'informations sur les règles du document de politique IAM, veuillez consulter Exigences relatives aux noms IAM dans le Guide de l'utilisateur IAM.

Le contexte de chiffrement est utilisé principalement pour vérifier l'intégrité et l'authenticité. Mais vous pouvez également utiliser le contexte de chiffrement pour contrôler l'accès au chiffrement symétrique AWS KMS keys dans les politiques IAM et les politiques clés.

Les clés de EncryptionContextKeys condition kms EncryptionContext : : et kms : autorisent (ou refusent) une autorisation uniquement lorsque la demande inclut des clés de contexte de chiffrement ou des paires clé-valeur particulières.

Par exemple, l'instruction de politique de clé suivante autorise le rôle RoleForExampleApp à utiliser la clé KMS dans les opérations Decrypt. Elle utilise la clé de condition kms:EncryptionContext:context-key pour accorder cette autorisation uniquement lorsque le contexte de chiffrement de la demande inclut une paire de contexte de chiffrement AppName:ExampleApp.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Pour plus d'informations sur ces clés de condition de contexte de chiffrement, consultez Clés de condition pour AWS KMS.

Lorsque vous créez une subvention, vous pouvez inclure des contraintes de subvention qui établissent les conditions des autorisations d'octroi. AWS KMS prend en charge deux contraintes d'autorisationEncryptionContextSubset, qui impliquent toutes deux le contexte de chiffrement dans une demande d'opération cryptographique. EncryptionContextEquals Lorsque vous utilisez ces contraintes d'octroi, les autorisations de l'octroi sont effectives uniquement lorsque le contexte de chiffrement de la demande pour l'opération de chiffrement satisfait aux exigences des contraintes d'octroi.

Par exemple, vous pouvez ajouter une contrainte d'EncryptionContextEqualsautorisation à une autorisation autorisant l'GenerateDataKeyopération. Avec cette contrainte, l'octroi autorise l'opération uniquement lorsque le contexte de chiffrement de la demande est une correspondance sensible à la casse pour le contexte de chiffrement de la contrainte d'octroi.

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}

Une demande telle que la suivante émanant du principal bénéficiaire satisferait à la contrainte EncryptionContextEquals.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test

Pour plus d'informations sur les contraintes d'octroi, veuillez consulter Utilisation des contraintes d'octroi. Pour de plus amples informations sur les octrois, veuillez consulter Subventions en AWS KMS.

AWS KMS utilise AWS CloudTrail pour enregistrer le contexte de chiffrement afin que vous puissiez déterminer quelles clés et données KMS ont été consultées. L'entrée de journal montre exactement quelles clés KMS ont été utilisées pour chiffrer ou déchiffrer les données spécifiques référencées par le contexte de chiffrement dans l'entrée de journal.

Important

Etant donné que le contexte de chiffrement est consigné, il ne doit contenir d'informations sensibles.

Pour simplifier l'utilisation de n'importe quel contexte de chiffrement lorsque vous appelez les opérations Decrypt ou ReEncrypt, vous pouvez stocker le contexte de chiffrement en même temps que les données chiffrées. Nous vous conseillons de stocker juste assez du contexte de chiffrement pour créer aisément le contexte de chiffrement complet, lorsque cela est nécessaire pour le chiffrement ou le déchiffrement.

Par exemple, si le contexte de chiffrement est le chemin d'accès complet à un fichier, stockez uniquement une partie de ce chemin d'accès avec le contenu du fichier chiffré. Ensuite, lorsque vous aurez besoin du contexte de chiffrement complet, reconstruisez-le à partir du fragment stocké. En cas de tentative d'accès non autorisé au fichier, par exemple pour le renommer ou le déplacer, la valeur du contexte de chiffrement change et la requête de déchiffrement échoue.

Politique de clé

Lorsque vous créez une clé KMS, vous déterminez qui peut utiliser et gérer cette clé KMS. Ces autorisations sont contenues dans un document appelé politique de clé. Vous pouvez utiliser la politique de clé pour ajouter, supprimer ou modifier des autorisations à tout moment pour une clé gérée par le client. Mais vous ne pouvez pas modifier la politique clé d'un Clés gérées par AWS. Pour plus d’informations, consultez Politiques clés en AWS KMS.

Octroi

Une subvention est un instrument de politique qui permet aux AWS donneurs d'ordre de l'utiliser AWS KMS keys dans le cadre d'opérations cryptographiques. Cela peut également leur permettre de consulter une clé KMS (DescribeKey) et de créer et de gérer des subventions. Lorsque vous autorisez l'accès à une clé KMS, les octrois sont pris en compte avec des politiques de clé et des politiques IAM. Les octrois sont souvent utilisés pour des autorisations temporaires, car vous pouvez en créer un, utiliser ses autorisations et les supprimer sans modifier vos politiques de clé ou IAM. Étant donné que les octrois peuvent être très spécifiques et faciles à créer et à révoquer, ils sont souvent utilisés pour fournir des autorisations temporaires ou des autorisations plus fines.

Pour obtenir des informations détaillées sur les octrois, y compris leur terminologie, veuillez consulter Subventions en AWS KMS.

Vérification de l'utilisation de clé KMS

Vous pouvez l'utiliser AWS CloudTrail pour auditer l'utilisation des clés. CloudTrail crée des fichiers journaux contenant l'historique des appels d' AWS API et des événements associés à votre compte. Ces fichiers journaux incluent toutes les demandes AWS KMS d'API effectuées avec la console AWS de gestion, AWS les SDK et les outils de ligne de commande. Les fichiers journaux incluent également les demandes adressées AWS KMS AWS aux services en votre nom. Vous pouvez utiliser ces fichiers journaux pour trouver des informations importantes, notamment le moment où les clés KMS ont été utilisées, l'opération qui a été demandée, l'identité du demandeur et l'adresse IP source. Pour plus d'informations, veuillez consulter Se connecter avec AWS CloudTrail et le Guide de l'utilisateur AWS CloudTrail.

Infrastructure de gestion des clés

Une pratique courante dans le domaine du chiffrement consiste à chiffrer et déchiffrer à l'aide d'un algorithme disponible publiquement et évalué par des pairs, tel qu'AES (Advanced Encryption Standard), et d'une clé secrète. L'un des principaux problèmes liés au chiffrement est qu'il est très difficile de maintenir une clé secrète. C'est généralement le travail d'une infrastructure de gestion des clés (KMI). AWS KMS gère l'infrastructure clé pour vous. AWS KMS crée et stocke en toute sécurité vos clés root, appelées AWS KMS keys. Pour plus d'informations sur le AWS KMS fonctionnement, voir Détails AWS Key Management Service cryptographiques.