Cette rubrique explique comment importer une clé cryptographique dans Cloud HSM ou Cloud Key Management Service en tant que nouvelle version de clé.
Pour en savoir plus sur l'importation de clés, y compris les limites et les restrictions, consultez la section Importation de clés.
Vous pouvez suivre la procédure décrite dans cette rubrique en 5 à 10 minutes, sans compter les étapes Avant de commencer. L'encapsulation manuelle de la clé ajoute de la complexité à la tâche.
Avant de commencer
Nous vous recommandons de créer un projet pour tester cette fonctionnalité, faciliter le nettoyage après le test et vous assurer que vous disposez des autorisations IAM (Identity and Access Management) appropriées pour importer une clé.
Avant de pouvoir importer une clé, vous devez préparer le projet, le système local et la clé elle-même.
Préparer le projet
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
L'utilisateur effectuant l'importation doit disposer des autorisations IAM suivantes pour créer des trousseaux de clés, des clés et des tâches d'importation. Si l'utilisateur n'est pas le propriétaire du projet, vous pouvez lui attribuer les deux des deux rôles prédéfinis suivants:
roles/editor
roles/cloudkms.importer
Pour en savoir plus sur les rôles et autorisations IAM disponibles pour Cloud KMS, consultez la page Autorisations et rôles.
Préparer le système local
Préparez le système local en choisissant l'une des options suivantes. L'encapsulation automatique des clés est recommandée pour la plupart des utilisateurs.
- Si vous souhaitez autoriser la Google Cloud CLI à encapsuler automatiquement vos clés avant de les transmettre à Google Cloud, vous devez installer la bibliothèque de cryptographie Pyca sur votre système local. La bibliothèque Pyca est utilisée par la tâche d'importation qui enveloppe et protège la clé en local avant de l'envoyer à Google Cloud.
- Si vous souhaitez encapsuler vos clés manuellement, vous devez configurer OpenSSL pour l'encapsulation manuelle des clés.
Préparer la clé
Vérifiez que l'algorithme et la longueur de votre clé sont compatibles. Les algorithmes autorisés pour une clé varient selon si la clé est utilisée pour le chiffrement symétrique, le chiffrement asymétrique ou la signature asymétrique, ainsi que si la clé est stockée dans un logiciel ou un HSM. Vous spécifiez l'algorithme de la clé dans le cadre de la requête d'importation.
Séparément, vous devez également vérifier la manière dont la clé est encodée et effectuer des ajustements si nécessaire.
Une fois créés ou importés, les éléments suivants ne peuvent pas être modifiés:
Le niveau de protection indique si la clé persiste dans le logiciel, dans un HSM ou dans un système de gestion de clés externe. Le matériel de la clé ne peut pas être déplacé d'un de ces environnements de stockage à un autre. Toutes les versions d'une clé ont le même niveau de protection.
L'objectif indique si les versions de la clé sont utilisées pour le chiffrement symétrique, le chiffrement asymétrique ou la signature asymétrique. L'objectif de la clé limite les algorithmes pouvant être utilisés afin de créer des versions de cette clé. Toutes les versions d'une clé ont la même fonction.
Si vous n'avez pas de clé à importer, mais que vous souhaitez valider la procédure d'importation, vous pouvez créer une clé symétrique sur le système local à l'aide de la commande suivante :
openssl rand 32 > ${HOME}/test.bin
Utilisez cette clé uniquement pour les tests. Une clé créée de cette manière peut ne pas être appropriée pour une utilisation en production.
Si vous devez encapsuler la clé manuellement, faites-le avant de continuer avec les procédures de cette rubrique.
Créer la clé de ciblage et le trousseau de clés
Une clé Cloud KMS est un objet de conteneur qui contient zéro, une ou plusieurs versions de clé. Chaque version de clé contient une clé de chiffrement.
Lorsque vous importez une clé dans Cloud KMS ou Cloud HSM, la clé importée devient une nouvelle version de clé sur une clé Cloud KMS ou Cloud HSM existante. Dans le reste de cet article, cette clé est appelée clé cible. La clé cible doit exister avant de pouvoir y importer du matériel de clé.
L'importation d'une version de clé n'a aucun effet sur les versions existantes de cette clé. Toutefois, il est recommandé de créer une clé vide lors du test de l'importation de clé. Une clé vide n'a pas de version, n'est pas active et ne peut pas être utilisée.
Vous pouvez éventuellement spécifier que votre clé nouvellement créée ne peut contenir que des versions importées, ce qui empêche la génération accidentelle de nouvelles versions dans Cloud KMS.
Une clé existe sur un trousseau de clés. Dans cet article, ce trousseau de clés est appelé trousseau de clés cible. L'emplacement du trousseau de clés cible détermine l'emplacement où le matériel de clé est disponible après l'importation. Les clés Cloud HSM ne peuvent pas être créées ou importées dans certains emplacements. Une fois la clé créée, elle ne peut pas être transférée vers un autre trousseau ou à un autre emplacement.
Suivez ces étapes pour créer une clé vide à l'aide de Google Cloud CLI ou de la console Google Cloud.
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur Créer un trousseau.
Dans le champ Nom du trousseau, saisissez le nom du trousseau de clés.
Sous Type d'emplacement, sélectionnez un type et un emplacement.
Cliquez sur Créer. La page Créer une clé s'ouvre.
Dans le champ Nom de la clé, saisissez le nom de votre clé.
Pour le champ Niveau de protection, sélectionnez Logiciel ou HSM, puis cliquez sur Continuer.
Pour Key material (Matériel de la clé), sélectionnez Imported key (Clé importée), puis cliquez sur Continue (Continuer). Cela empêche la création d'une version de clé initiale.
Définissez l'objectif et l'algorithme de la clé, puis cliquez sur Continuer.
Facultatif: Si vous souhaitez que cette clé ne contienne que des versions de clé importées, sélectionnez Limiter les versions de clé à l'importation uniquement. Cela vous évite de créer accidentellement des versions de clé dans Cloud KMS.
Facultatif: Pour les clés importées, la rotation automatique est désactivée par défaut. Pour activer la rotation automatique, sélectionnez une valeur dans le champ Période de rotation des clés.
Si vous activez la rotation automatique, les nouvelles versions de clé seront générées dans Cloud KMS et la version de clé importée ne sera plus la version de clé par défaut après une rotation.
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Créez le trousseau de clés de ciblage. Si vous avez l'intention d'importer dans une clé Cloud HSM, sélectionnez un emplacement compatible avec Cloud HSM.
gcloud kms keyrings create KEY_RING \ --location LOCATION
Vous pouvez en savoir plus sur la création de trousseaux de clés.
Créez la clé de ciblage.
- Spécifiez l'objectif de la clé.
- Empêchez la création d'une version initiale à l'aide de l'option
--skip-initial-version-creation
. - Facultatif: empêchez la création de nouvelles versions dans Cloud KMS à l'aide de l'option
--import-only
. - Facultatif: ne spécifiez pas de règle de rotation. Si vous activez la rotation automatique, les nouvelles versions de clé seront générées dans Cloud KMS et la version de clé importée ne sera plus la version de clé par défaut après une rotation. Vous ne pouvez pas spécifier de règle de rotation si vous avez spécifié l'option
--import-only
.
gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --skip-initial-version-creation \ --import-only
En savoir plus sur la création de clés Cloud KMS ou de clés Cloud HSM.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Créez un trousseau de clés :
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"
Pour plus d'informations, consultez la documentation de l'API
KeyRing.create
.Créez une clé vide, réservée à l'importation:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true&importOnly=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"
Pour plus d'informations, consultez la documentation de l'API
CryptoKey.create
.
Le trousseau de clés et la clé existent désormais, mais la clé ne contient aucun matériel de clé, n'a aucune version et n'est pas active. Ensuite, vous créez une tâche d'importation.
Créer la tâche d'importation
Une tâche d'importation définit les caractéristiques des clés qu'elle importe, y compris les propriétés qui ne peuvent pas être modifiées après l'importation de la clé.
Le niveau de protection détermine si les clés importées par cette tâche d'importation résident dans un logiciel, un HSM ou un système de gestion de clés externe. Le niveau de protection ne peut plus être modifié une fois la clé importée.
La méthode d'importation définit l'algorithme utilisé pour créer la clé d'encapsulation qui protège les clés importées lors du transit de votre système local vers le projet Google Cloud cible. Vous pouvez choisir une clé RSA de 3 072 bits ou de 4 096 bits. Nous vous recommandons d'utiliser la clé d'encapsulation 3 072 bits, sauf si vous avez des exigences spécifiques.
Vous pouvez créer une tâche d'importation à l'aide de gcloud CLI, de la console Google Cloud ou de l'API Cloud Key Management Service.
Console
Accédez à la page Gestion des clés dans la console Google Cloud.
Cliquez sur le nom du trousseau de clés de ciblage.
Définissez le niveau de protection sur Logiciel ou HSM. Utilisez le même niveau de protection que celui défini pour la clé de ciblage.
Cliquez sur Créer une tâche d'importation.
Dans le champ Nom, saisissez le nom de la tâche d'importation.
Dans le menu déroulant Méthode d'importation, définissez la méthode d'importation RSA 3 072 bits ou RSA 4 096 bits.
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Utilisez une commande comme celle-ci pour créer une tâche d'importation.
gcloud kms import-jobs create IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level PROTECTION_LEVEL
- Utilisez le même trousseau de clés et le même emplacement que la clé de ciblage.
- Définissez le niveau de protection sur
software
ouhsm
. - Définissez la méthode d'importation sur
rsa-oaep-3072-sha1-aes-256
,rsa-oaep-4096-sha1-aes-256
,rsa-oaep-3072-sha256-aes-256
,rsa-oaep-4096-sha256-aes-256
,rsa-oaep-3072-sha256
oursa-oaep-4096-sha256
.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une tâche d'importation, utilisez la méthode ImportJobs.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs?import_job_id=IMPORT_JOB_ID" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"import_method": "IMPORT_METHOD", "protection_level": "PROTECTION_LEVEL"}'
Remplacez les éléments suivants :
- IMPORT_METHOD: méthode d'encapsulation de clé compatible.
- PROTECTION_LEVEL: niveau de protection des versions de clé importées par cette tâche d'importation.
Vérifier l'état de la tâche d'importation
L'état initial d'une tâche d'importation est PENDING_GENERATION
. Lorsque l'état est ACTIVE
, vous pouvez l'utiliser pour importer des clés.
Une tâche d'importation expire au bout de trois jours. Si la tâche d'importation est arrivée à expiration, vous devez en créer une.
Vous pouvez vérifier l'état d'une tâche d'importation à l'aide de Google Cloud CLI, de la console Google Cloud ou de l'API Cloud Key Management Service.
Console
Accédez à la page Gestion des clés dans la console Google Cloud.
Cliquez sur le nom du trousseau de clés contenant la tâche d'importation.
Cliquez sur l'onglet Tâches d'importation situé en haut de la page.
L'état est alors visible sous État, à côté du nom de la tâche d'importation.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Lorsqu'une tâche d'importation est active, vous pouvez l'utiliser pour importer des clés. Cette opération peut prendre quelques minutes. Utilisez cette commande pour vérifier que la tâche d'importation est active. Utilisez l'emplacement et le trousseau de clés où vous avez créé la tâche d'importation.
gcloud kms import-jobs describe IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --format="value(state)"
Le résultat ressemble à ce qui suit :
state: ACTIVE
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour vérifier l'état d'une tâche d'importation, utilisez la méthode ImportJobs.get
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs/IMPORT_JOB_ID" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Dès que la tâche d'importation est active, vous pouvez effectuer une demande d'importation d'une clé.
Empêcher la modification des tâches d'importation
La tâche d'importation détermine de nombreuses caractéristiques de la clé importée, y compris l'algorithme de la clé et si une clé importée est une clé HSM ou une clé logicielle. Vous pouvez configurer les autorisations IAM pour empêcher les utilisateurs de créer des tâches d'importation, tout en leur permettant d'utiliser des tâches d'importation pour importer des clés.
- N'accordez l'autorisation
importjobs.create
qu'aux administrateurs de clés. - Accordez l'autorisation
importjobs.useToImport
pour une tâche d'importation spécifique à l'opérateur qui utilisera cette tâche pour importer des clés. - Lorsque vous créez la tâche d'importation, spécifiez le niveau de protection et l'algorithme des versions de clé importées à l'aide de celle-ci.
Jusqu'à l'expiration de la tâche d'importation, les utilisateurs disposant de importjobs.useToImport
et n'ayant pas l'autorisation importjobs.create
pour une tâche d'importation donnée peuvent importer des clés, mais ne peuvent pas modifier les caractéristiques de la tâche d'importation.
Importer la clé
Après avoir vérifié l'état de la tâche d'importation, vous pouvez envoyer une requête d'importation.
Vous utilisez différentes options pour effectuer la requête d'importation, selon si vous souhaitez que la Google Cloud CLI encapsule automatiquement votre clé ou si vous l'avez encapsulée manuellement.
Quelle que soit l'encapsulation manuelle ou automatique de votre clé, vous devez définir l'algorithme sur un algorithme compatible qui correspond à la longueur de la clé réelle à importer et qui spécifie l'objectif de la clé).
Les clés ayant pour objectif
ENCRYPT_DECRYPT
utilisent l'algorithmegoogle-symmetric-encryption
et ont une longueur de 32.Les clés ayant pour objectif
ASYMMETRIC_DECRYPT
ouASYMMETRIC_SIGN
acceptent divers algorithmes et longueurs.L'objectif d'une clé ne peut pas être modifié après la création de la clé, mais les versions de clé ultérieures peuvent être créées avec des longueurs différentes de la version de clé initiale.
Encapsulation automatique et importation d'une clé
Si vous souhaitez utiliser l'encapsulation automatique, vous devez utiliser la Google Cloud CLI.
Utilisez une commande semblable à celle-ci. Définissez --target-key-file
sur l'emplacement de la clé non encapsulée pour encapsuler et importer. Ne paramétrez pas --wrapped-key-file
.
Vous pouvez éventuellement définir l'option --public-key-file
à l'emplacement où la clé publique a déjà été téléchargée. Lorsque vous importez un grand nombre de clés, cela empêche le téléchargement de la clé publique lors de chaque importation. Par exemple, vous pouvez écrire un script qui a téléchargé la clé publique une fois, puis fourni son emplacement lors de l'importation de chaque clé.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --target-key-file PATH_TO_UNWRAPPED_KEY
La clé est encapsulée par la clé d'encapsulation associée à la tâche d'importation, transmise à Google Cloud et importée en tant que nouvelle version de clé sur la clé cible.
Importer manuellement une clé encapsulée
Suivez les instructions de cette section pour importer une clé que vous avez manuellement encapsulée. Définissez --wrapped-key-file
sur l'emplacement de la clé que vous avez encapsulée manuellement.
Ne définissez pas --target-key-file
.
Vous pouvez éventuellement définir l'option --public-key-file
à l'emplacement où la clé publique a déjà été téléchargée. Lorsque vous importez un grand nombre de clés, cela empêche le téléchargement de la clé publique lors de chaque importation. Par exemple, vous pouvez écrire un script qui a téléchargé la clé publique une fois, puis fourni son emplacement lors de l'importation de chaque clé.
Console
Ouvrez la page Gestion des clés dans la console Google Cloud.
Cliquez sur le nom du trousseau de clés contenant la tâche d'importation. La clé de ciblage s'affiche, ainsi que toutes les autres clés du trousseau.
Cliquez sur le nom de la clé de ciblage, puis sur Importer la version de clé.
Sélectionnez votre tâche d'importation dans la liste déroulante Select import job (Sélectionner une tâche d'importation).
Dans le sélecteur Upload the wrapped key (Importer la clé encapsulée), sélectionnez la clé que vous avez déjà encapsulée.
Si vous importez une clé asymétrique, sélectionnez l'algorithme dans la liste déroulante Algorithm (Algorithme). Une page Importer une version de clé semblable à celle-ci doit s'afficher :
Cliquez sur Importer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Utilisez une commande semblable à celle-ci.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEY
Pour plus d'informations, consultez la sortie de la commande gcloud kms keys versions import --help
.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Utilisez la méthode cryptoKeyVersions.import
pour importer une clé.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions:import" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"importJob": "IMPORT_JOB_ID", "algorithm": "ALGORITHM", "wrappedKey": "WRAPPED_KEY"}'
Remplacez les éléments suivants :
IMPORT_JOB_ID: nom complet de la ressource de la tâche d'importation correspondante.
ALGORITHM:
algorithm
de la clé importée, qui est de typeCryptoKeyVersionAlgorithm
.WRAPPED_KEY: clé encapsulée manuellement au format base64.
La requête d'importation de clé est lancée. Vous pouvez surveiller son état.
Vérifier l'état de la version de clé importée
L'état initial d'une version de clé importée est PENDING_IMPORT
. Lorsque l'état est ENABLED
, la version de clé a bien été importée. Si l'importation échoue, l'état est IMPORT_FAILED
.
Vous pouvez vérifier l'état d'une requête d'importation à l'aide de Google Cloud CLI, de la console Google Cloud ou de l'API Cloud Key Management Service.
Console
Ouvrez la page Gestion des clés dans la console Google Cloud.
Cliquez sur le nom du trousseau de clés contenant la tâche d'importation.
Cliquez sur l'onglet Tâches d'importation situé en haut de la page.
L'état est alors visible sous État, à côté du nom de la tâche d'importation.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Utilisez la commande versions list
pour vérifier l'état. Utilisez les mêmes emplacements, trousseaux de clés de ciblage et clés de ciblage créés précédemment dans cette section.
gcloud kms keys versions list \ --keyring KEY_RING \ --location LOCATION \ --key KEY_NAME
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Appelez la méthode ImportJob.get
et vérifiez la valeur du champ state
. Si l'état (state
) est défini sur PENDING_GENERATION
, c'est que la tâche d'importation est toujours en cours de création.
Revérifiez régulièrement l'état jusqu'à ce qu'il bascule sur ACTIVE
.
Une fois la version initiale de la clé importée, son état passe à Active. Pour les clés symétriques, vous devez définir la version de clé importée comme version principale avant de pouvoir utiliser la clé.
Clés symétriques : définir la version principale
Cette étape est requise lors de l'importation de clés symétriques et n'est pas pertinente pour les clés asymétriques. Une clé asymétrique ne possède pas de version principale. Vous devez utiliser la Google Cloud CLI pour définir la version principale.
gcloud kms keys set-primary-version KEY_NAME\ --location=LOCATION\ --keyring=KEY_RING\ --version=KEY_VERSION
Réimporter une clé précédemment détruite
Cloud Key Management Service accepte la réimportation de clés, ce qui vous permet de restaurer une version de clé précédemment importée dans DESTROYED
ou IMPORT_FAILED
à l'état ENABLED
en fournissant le matériel de clé d'origine. Si aucun matériel de clé d'origine n'a été importé en raison d'un échec initial, n'importe quel matériel de clé peut être fourni.
Restrictions
- Seules les versions
CryptoKeyVersions
précédemment importées peuvent être réimportées. - Le matériel de clé réimporté doit correspondre exactement au matériel de clé d'origine si la version a déjà été importée.
- Les versions
CryptoKeyVersions
détruites avant le lancement de cette fonctionnalité ne peuvent pas être réimportées. La valeur du champreimport_eligible
de laCryptoKeyVersion
esttrue
si la version est éligible pour la réimportation etfalse
si ce n'est pas le cas.
Les clés logicielles et Cloud HSM peuvent être importées à nouveau, mais pas les clés externes.
Réimporter une clé détruite
Créez un ImportJob
pour la réimportation en suivant les étapes décrites dans la section Créer la tâche d'importation. Vous pouvez utiliser un ImportJob
existant ou un nouvel ImportJob
tant que le niveau de protection correspond au niveau de protection d'origine.
Console
Accédez à la page Gestion des clés dans la console Google Cloud.
Cliquez sur le nom du trousseau de clés contenant la clé dont vous souhaitez réimporter la version.
Cliquez sur la clé dont vous souhaitez réimporter la version.
Cliquez sur les trois points à côté de la version de clé que vous souhaitez réimporter.
Sélectionnez Réimporter la version de clé
Sélectionnez votre tâche d'importation dans la liste déroulante Select import job (Sélectionner une tâche d'importation).
Dans le sélecteur Upload the wrapped key (Importer la clé encapsulée), sélectionnez la clé que vous avez déjà encapsulée. Cette clé doit correspondre au matériel de clé d'origine.
Cliquez sur Reimporter.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
Réimportez la version de clé à l'aide du matériel de clé d'origine.
gcloud kms keys versions import \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --version KEY_VERSION \ --algorithm ALGORITHM \ --import-job IMPORT_JOB \ --target-key-file PATH_TO_KEY \
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Dans le corps de la requête de la méthode
cryptoKeyVersions.import
, définissez le champcryptoKeyVersion
sur le nom de version de clé de la version importée. Il doit s'agir d'un enfant de la clé cryptographique.Dans le corps de la requête, définissez le champ
algorithm
sur l'algorithme de la clé importée. Cette valeur doit correspondre à l'algorithme de la version de clé d'origine. Le champalgorithm
est de typeCryptoKeyVersionAlgorithm
.Dans le corps de la requête, définissez le champ
wrappedKeyMaterial
sur le matériel de clé que vous avez déjà encapsulé.Appelez la méthode
cryptoKeyVersions.import
. La réponse decryptoKeyVersions.import
est du typeCryptoKeyVersion
. Lorsqu'une clé a bien été importée, son état estENABLED
et vous pouvez l'utiliser dans Cloud KMS.
Étape suivante
- Valider une clé importée Après avoir vérifié que le matériel de clé importé est identique à la clé d'origine, vous pouvez l'utiliser pour signer ou pour protéger des données.
- Résoudre un problème d'importation de clés