Clés à usage spécial - 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.

Clés à usage spécial

AWS Key Management Service (AWS KMS) prend en charge plusieurs types de clés pour différents usages.

Lorsque vous créez une AWS KMS key clé KMS de chiffrement symétrique par défaut. Dans AWS KMS, une clé KMS de chiffrement symétrique représente une clé AES-GCM 256 bits utilisée pour le chiffrement et le déchiffrement, sauf dans les régions chinoises, où elle représente une clé symétrique de 128 bits utilisant le chiffrement SM4. Le contenu d'une clé symétrique ne sort jamais AWS KMS non chiffré. À moins que votre tâche ne nécessite explicitement un chiffrement asymétrique ou des clés HMAC, les clés KMS de chiffrement symétriques, qui ne restent jamais AWS KMS non chiffrées, constituent un bon choix. De même, les services AWS qui sont intégrés à AWS KMS utilisent 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.

Vous pouvez utiliser une clé KMS de chiffrement symétrique AWS KMS pour chiffrer, déchiffrer et rechiffrer des données, générer des clés de données et des paires de clés de données, et générer des chaînes d'octets aléatoires. Vous pouvez importer vos propres éléments de clé dans 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 une table comparant les opérations que vous pouvez effectuer sur des clés KMS symétriques et asymétriques, veuillez consulter Référence des types de clés.

AWS KMS prend également en charge les types de clés KMS spécifiques suivants :

Choix d'un type de clé KMS

AWS KMS prend en charge plusieurs types de clés KMS : clés de chiffrement symétriques, clés HMAC symétriques, clés de chiffrement asymétriques et clés de signature asymétriques.

Les clés KMS diffèrent, car elles contiennent des clés de chiffrement différentes.

  • Clé KMS de chiffrement symétrique : représente une clé de chiffrement AES-GCM 256 bits, sauf dans les régions de Chine, où elle représente une clé de chiffrement SM4 128 bits. Le contenu d'une clé symétrique ne sort jamais AWS KMS non chiffré. Pour utiliser votre clé KMS de chiffrement symétrique, vous devez appeler AWS KMS.

    Les clés de chiffrement symétriques, qui sont les clés KMS par défaut, sont idéales pour la plupart des utilisations. Si vous avez besoin d'une clé KMS pour protéger vos données dans un Service AWS, utilisez une clé de chiffrement symétrique, sauf si vous êtes invité à utiliser un autre type de clé.

  • Clé KMS asymétrique : représente une paire de clés publiques et de clés privées associées mathématiquement que vous pouvez utiliser pour le chiffrement et le déchiffrement, la signature et la vérification, ou pour obtenir des secrets partagés (vous devez choisir un type d'utilisation de clé). La clé privée ne sort jamais AWS KMS non chiffrée. Vous pouvez utiliser la clé publique interne AWS KMS en appelant les opérations de l' AWS KMS API, ou télécharger la clé publique et l'utiliser en dehors de AWS KMS.

  • Clé HMAC (symétrique) : 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. Les éléments de clé dans une clé KMS HMAC ne quittent jamais AWS KMS non chiffrés. Pour utiliser votre clé HMAC KMS, vous devez appeler AWS KMS.

Le type de clé KMS que vous créez dépend en grande partie de la façon dont vous prévoyez d'utiliser la clé KMS, de vos exigences de sécurité et de vos exigences d'autorisation. Lors de la création de votre clé KMS, notez que la configuration de chiffrement de la clé KMS, y compris sa spécification et son utilisation, est établie lorsque vous la créez et qu'elle ne peut pas être modifiée.

Utilisez les conseils suivants pour déterminer le type de clé KMS dont vous avez besoin en fonction de votre cas d'utilisation.

Chiffrer et déchiffrer des données

Utilisez une clé KMS symétrique pour la plupart des cas d'utilisation nécessitant le chiffrement et le déchiffrement de données. L'algorithme de chiffrement symétrique qu'utilise AWS KMS est rapide, efficace et assure la confidentialité et l'authenticité des données. Il prend en charge le chiffrement authentifié avec des données authentifiées supplémentaires (AAD), définies comme un contexte de chiffrement. Ce type de clé KMS nécessite que l'expéditeur et le destinataire des données chiffrées disposent d' AWS informations d'identification valides pour appeler AWS KMS.

Si votre cas d'utilisation nécessite un chiffrement externe AWS par des utilisateurs qui ne peuvent pas appeler AWS KMS, les clés KMS asymétriques sont un bon choix. Vous pouvez distribuer la clé publique de la clé KMS asymétrique pour permettre à ces utilisateurs de chiffrer des données. Aussi, vos applications qui ont besoin de déchiffrer ces données peuvent utiliser la clé privée de la clé KMS asymétrique dans AWS KMS.

Signer des messages et vérifier des signatures

Pour signer des messages et vérifier des signatures, vous devez utiliser une clé KMS asymétrique. Vous pouvez utiliser une clé KMS avec une spécification de clé qui représente une paire de clés RSA, une paire de clés à courbe elliptique (ECC), ou une paire de clés SM2 (régions de Chine seulement). La spécification de clé que vous choisissez est déterminée par l'algorithme de signature que vous souhaitez utiliser. Plutôt que les algorithmes de signature RSA, nous vous recommandons d'utiliser les algorithmes de signature ECDSA pris en charge par les paires de clés ECC. Cependant, vous devrez peut-être utiliser une spécification de clé et un algorithme de signature particuliers pour aider les utilisateurs qui vérifient les signatures en dehors de AWS.

Chiffrer avec des paires de clés asymétriques

Pour chiffrer des données avec une paire de clés asymétriques, vous devez utiliser une clé KMS asymétrique avec une spécification de clé RSA ou une spécification de clé SM2 (régions chinoises uniquement). Pour chiffrer des données à l' AWS KMS aide de la clé publique d'une paire de clés KMS, utilisez l'opération Encrypt. Vous pouvez également télécharger la clé publique et la partager avec les parties qui ont besoin de chiffrer les données à l'extérieur de AWS KMS.

Lorsque vous téléchargez la clé publique d'une clé KMS asymétrique, vous pouvez l'utiliser à l'extérieur de AWS KMS. Mais il n'est plus soumis aux contrôles de sécurité qui protègent la clé KMS AWS KMS. Par exemple, vous ne pouvez pas utiliser de politiques ou de subventions AWS KMS clés pour contrôler l'utilisation de la clé publique. Vous ne pouvez pas non plus contrôler si la clé est utilisée uniquement pour le chiffrement et le déchiffrement à l'aide des algorithmes de chiffrement pris AWS KMS en charge. Pour plus d'informations, veuillez consulter Considérations spéciales pour le téléchargement de clés publiques.

Pour déchiffrer des données chiffrées avec la clé publique extérieure à AWS KMS, appelez l'opération Decrypt. L'opération Decrypt échoue si les données ont été chiffrées sous une clé publique à partir d'une clé KMS avec une utilisation de clé de SIGN_VERIFY. Il échouera également s'il a été chiffré à l'aide d'un algorithme qui AWS KMS ne prend pas en charge la spécification de clé que vous avez sélectionnée. Pour plus d'informations sur les spécifications clés et les algorithmes pris en charge, consultezSpécifications de clés asymétriques.

Pour éviter ces erreurs, toute personne utilisant une clé publique en dehors de AWS KMS doit enregistrer la configuration de la clé. La AWS KMS console et la GetPublicKeyréponse fournissent les informations que vous devez inclure lorsque vous partagez la clé publique.

Déterminez des secrets partagés

Pour obtenir des secrets partagés, utilisez une clé KMS avec une courbe elliptique recommandée par le NIST ou une clé SM2 (régions chinoises uniquement). AWS KMS utilise le cofacteur de cryptographie à courbe elliptique Diffie-Hellman Primitive (ECDH) pour établir un accord clé entre deux pairs en dérivant un secret partagé à partir de leurs paires de clés publiques-privées sur courbe elliptique. Vous pouvez utiliser le secret partagé brut renvoyé par l' DeriveSharedSecretopération pour obtenir une clé symétrique capable de chiffrer et de déchiffrer les données envoyées entre deux parties, ou de générer et de vérifier des HMAC. AWS KMS recommande de suivre les recommandations du NIST pour la dérivation de clés lorsque vous utilisez le secret partagé brut pour dériver une clé symétrique.

Générer et vérifier les codes HMAC

Pour générer et vérifier les codes d'authentification de message utilisant hash, utilisez une clé KMS HMAC. Lorsque vous créez une clé HMAC AWS KMS, elle AWS KMS crée et protège le contenu de votre clé et garantit que vous utilisez les algorithmes MAC appropriés pour votre clé. Les codes HMAC peuvent également être utilisés comme nombres pseudo-aléatoires et dans certains scénarios pour la signature symétrique et la création de jeton.

Les clés KMS HMAC sont des clés symétriques. Lors de la création d'une clé KMS HMAC dans la console AWS KMS , choisissez le type de clé Symmetric.

Utilisation avec les AWS services

Pour créer une clé KMS à utiliser avec un AWS service intégré AWS KMS, consultez la documentation du service. AWS les services qui chiffrent vos données nécessitent une clé KMS de chiffrement symétrique.

Outre ces considérations, les opérations de chiffrement sur des clés KMS dont les spécifications sont différentes sont soumises à des tarifs et à des quotas de demande différents. Pour plus d'informations sur la AWS KMS tarification, consultez la section AWS Key Management Service Tarification. Pour de plus amples informations sur les quotas de demande, veuillez consulter Quotas de demande.

Sélection de l'utilisation des clés

L'utilisation d'une clé KMS détermine si la clé KMS est utilisée pour chiffrer et déchiffrer, ou signer et vérifier les signatures, ou générer et vérifier des balises HMAC. Chaque clé KMS n'a qu'une seule utilisation de la clé. L'utilisation d'une clé KMS pour plusieurs types d'opérations rend le produit de toutes les opérations plus vulnérable aux attaques.

Chaque clé KMS ne peut avoir qu'un seul type d'utilisation de clé. Comme indiqué dans la table suivante, les clés KMS de chiffrement symétriques ne peuvent être utilisées que pour chiffrer et déchiffrer. Les clés HMAC KMS ne peuvent être utilisées que pour générer et vérifier des codes HMAC. Vous devez prendre une décision concernant l'utilisation des clés KMS asymétriques. Les clés KMS asymétriques avec 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 asymétriques 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 asymétriques 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 asymétriques avec 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é).

Utilisation d'une clé valide pour les types des clés KMS
Type de clé KMS Chiffrer et déchiffrer

ENCRYPT_DECRYPT

Signer et vérifier

SIGN_VERIFY

Générer et vérifier MAC

GENERATE_VERIFY_MAC

Déterminez des secrets partagés

ACCORD_CLÉ

Clés KMS de chiffrement symétrique
Clés KMS HMAC (symétriques)
Clés CMK asymétriques avec des paires de clés RSA
Clés CMK asymétriques avec des paires de clés ECC

Vous devez utiliser une clé KMS asymétrique avec le matériau de clé à courbe elliptique recommandé par le NIST pour obtenir des secrets partagés.

Clés KMS asymétriques avec paires de clés SM2 (régions de Chine uniquement)

Dans la AWS KMS console, vous choisissez d'abord le type de clé (symétrique ou asymétrique), puis son utilisation. Le type de clé que vous choisissez détermine les options d'utilisation de clés affichées. L'utilisation des clés que vous choisissez détermine les spécifications de clés affichées, le cas échéant.

Pour choisir une utilisation des clés dans la AWS KMS console, procédez comme suit :

  • Pour les clés KMS de chiffrement symétriques (par défaut), choisissez Encrypt and decrypt (Chiffrer et déchiffrer).

  • Pour les clés KMS HMAC, choisissez Generate and verify MAC (Générer et vérifier le MAC).

  • Pour les clés KMS asymétriques avec un matériau clé à courbe elliptique (ECC) recommandé par le NIST, choisissez Signer et vérifier ou Accord clé.

  • Pour les clés KMS asymétriques comportant des ECC_SECG_P256K1 éléments clés, choisissez Signer et vérifier.

  • Pour les clés KMS asymétriques avec un élément de clé RSA, choisissez Encrypt and decrypt (Chiffrer et déchiffrer) ou Sign and verify (Signer et vérifier).

  • Pour les clés KMS asymétriques avec un contenu clé SM2, choisissez Chiffrer et déchiffrer, Signer et vérifier ou Contrat de clé. La spécification de clé SM2 est disponible uniquement dans les régions de Chine.

Pour autoriser les principaux à créer des clés KMS uniquement pour une utilisation spécifique, utilisez la clé de KeyUsage condition kms :. Vous pouvez également utiliser la clé de condition kms:KeyUsage pour permettre aux principaux d'appeler des opérations d'API pour une clé KMS en fonction de son utilisation de clé. Par exemple, vous pouvez autoriser la désactivation d'une clé KMS uniquement si son utilisation de clé est SIGN_VERIFY.

Sélection des spécifications de la clé

Lorsque vous créez une clé KMS asymétrique ou une clé KMS HMAC, vous sélectionnez sa spécification de clé. La spécification de clé, qui est une propriété de Every AWS KMS key, représente la configuration cryptographique de votre clé KMS. Vous choisissez la spécification de clé lorsque vous créez la clé KMS et vous ne pouvez pas la modifier. Si vous avez sélectionné la mauvaise spécification de clé, supprimez la clé KMS et créez-en une autre.

Note

La spécification de clé d'une clé KMS était appelée « spécification de la clé principale du client ». Le CustomerMasterKeySpec paramètre de l'CreateKeyopération est obsolète. Utilisez plutôt le paramètre KeySpec. La réponse des DescribeKeyopérations CreateKey et inclut un CustomerMasterKeySpec membre KeySpec et ayant la même valeur.

La spécification de clé détermine si la clé KMS est symétrique ou asymétrique, le type de contenu clé de la clé KMS et les algorithmes de chiffrement, de signature ou de code d'authentification des messages (MAC) compatibles AWS KMS avec la clé KMS. La spécification de clé que vous choisissez est généralement déterminée par votre cas d'utilisation et vos exigences réglementaires. Cela dit, les opérations de chiffrement sur des clés KMS dont les spécifications sont différentes sont soumises à des tarifs et à des quotas différents. Pour plus d'informations sur la tarification, consultez la page AWS Key Management Service Pricing (Tarification). Pour de plus amples informations sur les quotas de demande, veuillez consulter Quotas de demande.

Pour déterminer les principales spécifications que les principaux de votre compte sont autorisés à utiliser pour les clés KMS, utilisez la clé de KeySpec condition kms :.

AWS KMS prend en charge les spécifications clés suivantes pour les clés KMS :

Spécifications de clé de chiffrement symétrique (par défaut)
  • SYMMETRIC_DEFAULT

Spécifications de clé HMAC
  • HMAC_224

  • HMAC_256

  • HMAC_384

  • HMAC_512

Spécifications de clés RSA (chiffrement et déchiffrement, ou signature et vérification)
  • RSA_2048

  • RSA_3072

  • RSA_4096

Spécifications de la clé de courbe elliptique
  • Paires de clés asymétriques à courbe elliptique recommandées par le NIST (signature et vérification, ou obtention de secrets partagés)

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Autres paires de clés asymétriques de courbe elliptique (signature et vérification)

    • ECC_SECG_P256K1 (secp256k1), couramment utilisé pour la crypto-monnaie.

Spécification de la clé SM2 (chiffrement et déchiffrement, ou signature et vérification, ou obtention de secrets partagés)
  • SM2 (régions de Chine uniquement)