Importation des éléments de clé dans les clés AWS KMS - AWS Key Management Service

Importation des éléments de clé dans les clés AWS KMS

Vous pouvez créer une AWS KMS keys (clé KMS) avec les éléments de clé que vous fournissez.

Une clé KMS est une représentation logique d'une clé de chiffrement. En plus des identifiants de clé et d'autres métadonnées, elle contient les éléments de clé utilisés pour chiffrer et déchiffrer les données. Lorsque vous créez une clé KMS, par défaut, AWS KMS génère les éléments de clé pour cette clé KMS. Mais vous pouvez créer une clé KMS sans éléments de clé, puis importer vos propres éléments de clé dans cette clé KMS, une fonction souvent appelée « Bring Your Own Key » (BYOK).

Note

AWS KMS ne prend pas en charge le déchiffrement de texte chiffré AWS KMS en dehors de AWS KMS, même si le texte chiffré a été chiffré sous une clé KMS avec des éléments de clé importés. AWS KMS ne publie pas le format de texte chiffré requis par cette tâche, et le format peut changer sans préavis.

Les éléments de clé importés sont pris en charge uniquement pour les clés KMS symétriques des magasins de clés AWS KMS. Ils ne sont pas pris en charge sur les clés KMS asymétriques ou les clés KMS dans les magasins de clés personnalisés.

Lorsque vous utilisez des éléments de clé importés, vous restez responsable des éléments de clé tout en autorisant AWS KMS à en utiliser une copie. Vous pouvez choisir de le faire pour une ou plusieurs des raisons suivantes :

  • Pour prouver que vous avez généré les éléments de clé en utilisant une source d'entropie correspondant à vos besoins.

  • Pour utiliser des éléments de clé de votre propre infrastructure avec des services AWS et pour utiliser AWS KMS pour gérer le cycle de vie de ces éléments de clé au sein d'AWS.

  • Pour définir un délai d'expiration pour les éléments de clé dans AWS et pour les supprimer manuellement, mais également pour les rendre disponibles à nouveau ultérieurement. En revanche, une planification de suppression de clé nécessite une période d'attente de 7 à 30 jours, après laquelle vous ne pouvez pas récupérer la clé KMS supprimée.

  • Pour posséder la copie originale des éléments de clé et la conserver en dehors d'AWS pour bénéficier de plus de durabilité et d'une reprise après sinistre au cours du cycle de vie des éléments de clé.

Pour obtenir des informations sur les différences importantes entre les clés KMS avec des éléments de clé importés et celles avec des éléments de clé générés par AWS KMS, veuillez consulter À propos des clés importées.

Les éléments de clé que vous importez doivent être une clé de chiffrement symétrique de 256 bits.

À propos des clés importées

Avant de décider d'importer des éléments de clé dans AWS KMS, vous devez comprendre les caractéristiques suivantes propres aux éléments de clé importés.

Vous générez les éléments de clé.

Vous êtes responsable de la génération des éléments de clé de 256 bits à l'aide d'une source aléatoire qui répond à vos exigences de sécurité.

Impossible de modifier les éléments de clé

Lorsque vous importez des éléments de clé dans une clé KMS, celle-ci est définitivement associée à ces éléments de clé. Vous pouvez réimporter les mêmes éléments de clé, mais vous ne pouvez pas en importer d'autres dans cette clé KMS. De plus, vous ne pouvez pas activer la rotation automatique des clés pour une clé KMS dont les éléments de clé sont importés. Toutefois, vous pouvez soumettre à une rotation manuelle une clé KMS avec les éléments de clé importés.

Impossible de déchiffrer avec une autre clé KMS

Lorsque vous chiffrez des données sous une clé KMS, le texte chiffré ne peut pas être déchiffré avec une autre clé KMS. Cela est le cas même lorsque vous importez les mêmes éléments de clé dans une autre clé KMS. Il s'agit d'une fonction de sécurité des clés KMS.

La seule exception est les clés multi-régions, qui sont conçues pour être interopérables. Pour plus de détails, veuillez consulter Pourquoi toutes les clés KMS avec des éléments de clé importés ne sont-elles pas interopérables ?.

Pas de fonctions de portabilité ou de mise sous séquestre

Les textes chiffrés produits par AWS KMS ne sont pas portables. AWS KMS ne prend pas en charge le déchiffrement de texte chiffré AWS KMS en dehors de AWS KMS, même si le texte chiffré a été chiffré sous une clé KMS avec des éléments de clé importés. AWS KMS ne publie pas le format de texte chiffré requis par cette tâche, et le format peut changer sans préavis.

En outre, vous ne pouvez pas utiliser d'outils AWS, tels que le AWS Encryption SDK ou le chiffrement Amazon S3 côté client pour déchiffrer les textes chiffrés AWS KMS.

Par conséquent, vous ne pouvez pas utiliser de clés avec les éléments de clé importés pour prendre en charge les dispositifs de séquestre pour lesquels un tiers autorisé doté d'un accès conditionnel aux éléments de clé, peut déchiffrer certains textes chiffrés en dehors de AWS KMS. Pour prendre en charge le séquestre de clés, utilisez le kit AWS Encryption SDK pour chiffrer votre message sous une clé indépendante de AWS KMS.

Vous êtes responsable de la disponibilité et de la durabilité.

Vous êtes responsable de la disponibilité et de la durabilité globales des clés. AWS KMS est conçu pour maintenir la haute disponibilité des clés importées. Par contre, le service ne gère pas la durabilité des éléments de clé importés au même niveau que les éléments de clé générés en votre nom. Cette différence est significative dans les cas suivants :

  • Lorsque vous définissez un délai d'expiration de vos éléments de clé importés, AWS KMS supprime les éléments de clé après leur expiration. AWS KMS ne supprime pas la clé KMS ni ses métadonnées. Vous ne pouvez pas définir un délai d'expiration pour les éléments de clé générés par AWS KMS.

  • Lorsque vous supprimez manuellement des éléments de clé importés, AWS KMS supprime les éléments de clé, mais ne supprime pas la clé KMS ni ses métadonnées. En revanche, une planification de suppression de clé nécessite une période d'attente de 7 à 30 jours, après laquelle AWS KMS supprime les éléments de clé et toutes les métadonnées de la clé KMS.

  • Dans l'éventualité improbable d'une panne régionale affectant le service (telles qu'une perte totale de puissance), AWS KMS ne peut pas restaurer automatiquement vos éléments de clé importés. Toutefois, AWS KMS peut restaurer la clé KMS et ses métadonnées.

Pour restaurer les clés après de tels événements, vous devez conserver une copie des clés dans un système que vous contrôlez. Ensuite, vous pouvez les réimporter dans la clé KMS.

Autorisations d'importation des éléments de clé

Pour créer et gérer des clés KMS avec des éléments de clé importés, l'utilisateur a besoin d'une autorisation pour les opérations de ce processus. Vous pouvez fournir les autorisations kms:GetParametersForImport, kms:ImportKeyMaterial et kms:DeleteImportedKeyMaterial dans la stratégie de clé lorsque vous créez la clé KMS. L'autorisation kms:ImportKeyMaterial n'est pas incluse dans les autorisations par défaut pour les administrateurs de clés, vous devez donc l'ajouter manuellement.

Pour créer des clés KMS avec des éléments de clé importés, le mandataire a besoin des autorisations suivantes.

  • kms:CreateKey (stratégie IAM)

    • Pour limiter cette autorisation aux clés KMS avec des éléments de clé importés, utilisez la condition de stratégie kms:KeyOrigin avec une valeur de EXTERNAL.

      { "Version": "2012-10-17", "Statement": { "Sid": "IAM policy to create KMS keys with no key material" "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • kms:GetParametersForImport (stratégie de clé ou stratégie IAM)

    • Pour limiter cette autorisation aux demandes qui utilisent un algorithme d'encapsulage particulier et une spécification de clé d'encapsulage, utilisez les conditions de stratégie kms:WrappingAlgorithm et kms:WrappingKeySpec.

  • kms:ImportKeyMaterial (stratégie de clé ou stratégie IAM)

    • Pour autoriser ou interdire les éléments de clé qui expirent et contrôler la date d'expiration, utilisez les conditions de stratégie kms:ExpirationModel et kms:ValidTo.

Pour réimporter les éléments de clé importés, le mandataire a besoin des autorisations kms:GetParametersForImport et kms:ImportKeyMaterial.

Pour supprimer des éléments de clé importés, le mandataire a besoin de l'autorisation kms:DeleteImportedKeyMaterial.

Comment importer des éléments de clé

La présentation suivante explique comment importer vos éléments de clé dans AWS KMS. Pour plus d'informations sur chaque étape du processus, consultez la rubrique correspondante.

  1. Création d'une clé KMS symétrique sans éléments de clé – Pour commencer l'importation d'éléments de clé, créez d'abord une clé KMS symétrique dont le paramètre origin (origine) est défini sur EXTERNAL. Cela indique que les éléments de clé ont été générés en dehors de AWS KMS et cela empêche AWS KMS de générer des éléments de clé pour la clé KMS. Dans une étape ultérieure, vous importerez vos propres éléments de clé dans cette clé KMS.

  2. Téléchargement de la clé publique et du jeton d'importation – Une fois l'étape 1 terminée, téléchargez une clé publique et un jeton d'importation. Ces éléments protègent l'importation de vos éléments de clé dans AWS KMS.

  3. Chiffrement des éléments de clé – Utilisez la clé publique que vous avez téléchargée à l'étape 2 pour chiffrer les éléments de clé que vous avez créés sur votre propre système.

  4. Importation des éléments de clé – Téléchargez les éléments de clé chiffrés que vous avez créés à l'étape 3 et le jeton d'importation que vous avez téléchargé à l'étape 2.

AWS KMS enregistre une entrée dans votre journal AWS CloudTrail lorsque vous créez la clé KMS, téléchargez la clé publique et importez le jeton, et importez les éléments de clé. AWS KMS enregistre également une entrée lorsque vous supprimez des éléments de clé importés ou lorsque AWS KMS supprime des éléments de clé expirés.

Comment réimporter des éléments de clé

Si vous gérez une clé KMS avec des éléments de clé importés, vous pouvez avoir besoin de les réimporter, parce que ceux-ci ont expiré ou parce qu'ils ont été supprimés par erreur ou perdus.

Vous devez réimporter les mêmes éléments de clé initialement importés dans la clé KMS. Vous ne pouvez pas importer d'autres éléments de clé dans une clé KMS. De plus, AWS KMS ne peut pas créer d'éléments de clé pour une clé KMS qui est créée sans éléments de clé.

Pour réimporter des éléments de clé, utilisez la même procédure que pour importer les éléments de clé la première fois, avec les exceptions suivantes.

  • Utilisez une clé KMS existante au lieu de créer une nouvelle clé KMS. Vous pouvez ignorer l'étape 1 de la procédure d'importation.

  • Si la clé KMS contient des éléments de clé, vous devez supprimer les éléments de clé existants avant de réimporter les éléments de clé.

Chaque fois que vous importez des éléments de clé pour une clé KMS, vous devez télécharger et utiliser une nouvelle clé d'encapsulage et un nouveau jeton d'importation pour la clé KMS. La procédure d'encapsulage n'affecte pas le contenu des clés. Vous pouvez donc utiliser différentes clés d'encapsulage (et différents jetons d'importation) pour importer les mêmes clés.

Comment afficher les clés KMS avec des éléments de clé importés

Lorsque vous créez une clé KMS sans éléments de clé, la valeur de la propriété Origin de la clé KMS est EXTERNAL et ne peut pas être modifiée. Vous ne pouvez pas convertir une clé qui est conçue pour utiliser des éléments de clé importés en une clé qui utilise les éléments de clé fournis par AWS KMS.

Vous pouvez identifier les clés KMS qui ont besoin d'éléments de clé importés dans la console AWS KMS ou à l'aide de l'API AWS KMS. Vous pouvez également afficher les propriétés des éléments de clé, par exemple leur date d'expiration éventuelle, à l'aide de la console ou des API.

Pour identifier les clés KMS avec des éléments de clé importés (console)

  1. Ouvrez la console AWS KMS à l'adresse https://console.aws.amazon.com/kms.

  2. Pour changer de région AWS, utilisez le Region selector (Sélecteur de région) dans l'angle supérieur droit de la page.

  3. Utilisez l'une des techniques suivantes pour afficher la propriété Origin de vos clés KMS.

    • Pour ajouter une colonne d'origine à votre table de clé KMS. Dans le coin supérieur droit, choisissez l'icône Settings (Paramètres). Choisissez Origine, puis Confirmer. La colonne Origin (Origine) permet d'identifier facilement les clés KMS avec une valeur de propriété d'origine EXTERNAL.

    • Pour rechercher la valeur de la propriété Origin d'une clé KMS particulière, choisissez l'ID de clé ou l'alias de la clé KMS. Choisissez ensuite l'onglet Cryptographic configuration (Configuration du chiffrement). Les onglets se trouvent sous la section General configuration (Configuration générale).

  4. Pour consulter des informations détaillées sur les éléments de clé, sélectionnez l'onglet Key material (Éléments de clé). Cet onglet apparaît sur la page détaillée uniquement pour les clés KMS dont les éléments de clé sont importés.

Pour identifier les clés KMS avec des éléments de clé importés (API AWS KMS)

Utilisez l'opération DescribeKey. La réponse inclut la propriété Origin de la clé KMS, le modèle d'expiration et la date d'expiration, comme illustré dans l'exemple suivant.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 1568894400.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 1568289600.0, "Enabled": false, "MultiRegion": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }