Ce guide explique comment créer, provisionner et gérer une instance Cloud HSM à locataire unique à l'aide de la Google Cloud CLI. Une fois votre instance créée et provisionnée, vous pouvez créer et utiliser des clés dans l'instance à l'aide de la console Google Cloud , de l'API Cloud Key Management Service, de gcloud CLI et des bibliothèques clientes.
Pour créer et gérer votre instance, vous devez utiliser l'authentification par quorum. Lorsque vous créez votre instance, vous définissez le nombre d'approbations des membres du quorum nécessaires pour exécuter les opérations d'instance. Vos membres du quorum doivent toujours disposer d'au moins ce nombre de clés de contrôle pour conserver le contrôle administratif de votre instance.
Avant de commencer
- Consultez et appliquez les bonnes pratiques concernant les modules HSM Cloud à locataire unique lorsque vous créez et gérez votre instance.
- Déterminez le nombre de membres du quorum avec lesquels vous souhaitez commencer. Vous pourrez ajouter des membres du quorum supplémentaires ultérieurement, si les membres du quorum existants l'approuvent. Le nombre minimal de membres du quorum est de trois.
- Déterminez le nombre de membres du quorum requis pour approuver les propositions. Vous ne pouvez pas modifier ce nombre une fois l'instance créée. Vos membres du quorum doivent toujours avoir accès à ce nombre de clés de contrôle pour maintenir l'instance. La taille minimale du quorum est de deux. La taille du quorum requise doit être inférieure au nombre de membres du quorum.
- Décidez comment vous allez vous assurer que l'instance est actualisée à temps.
Vous devez surveiller le
disableDatede l'instance et proposer, approuver et exécuter une opération d'actualisation de l'instance avant la date limite pour éviter les temps d'arrêt indésirables. -
Pour obtenir les autorisations nécessaires pour créer, gérer et utiliser des instances Cloud HSM à locataire unique, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet ou une ressource parente :
-
Créer des propositions :
Proposeur du HSM à locataire unique Cloud KMS (
cloudkms.hsmSingleTenantProposer) -
Approuver les propositions : membre du quorum du HSM à locataire unique Cloud KMS (
cloudkms.hsmSingleTenantQuorumMember) -
Exécuter les propositions :
Exécuteur du HSM à locataire unique Cloud KMS (
cloudkms.hsmSingleTenantExecutor) -
Créer des clés :
Créateur de clés du HSM à locataire unique Cloud KMS (
roles/cloudkms.hsmSingleTenantKeyCreator)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
Créer des propositions :
Proposeur du HSM à locataire unique Cloud KMS (
Pour chaque membre du quorum, générez une paire de clés RSA-2048 pour l'authentification à deux facteurs (2FA). Nous vous recommandons d'utiliser des jetons physiques pour vos clés de contrôle. Suivez les normes de votre organisation pour créer des paires de clés RSA-2048 sur des jetons physiques.
À des fins de démonstration, ce guide utilise OpenSSL pour créer trois clés RSA-2048 logicielles :
openssl genrsa -out rsaprivate1.pem openssl genrsa -out rsaprivate2.pem openssl genrsa -out rsaprivate3.pem openssl rsa -in rsaprivate1.pem -out rsapub1.pem --pubout openssl rsa -in rsaprivate2.pem -out rsapub2.pem --pubout openssl rsa -in rsaprivate3.pem -out rsapub3.pem --puboutStockez les clés privées de manière sécurisée. Vous en aurez besoin pour approuver les propositions. Conservez les clés publiques à portée de main, car vous en aurez besoin pour créer l'instance Cloud HSM à locataire unique.
Choisissez un emplacement Cloud KMS compatible avec le HSM à locataire unique Cloud. Pour identifier les emplacements compatibles, consultez la liste des emplacements sur la page Emplacements Cloud KMS. Pour le filtre Compatibilité avec les HSM, sélectionnez Compatible avec les HSM à locataire unique.
Créer et provisionner une instance
Pour créer et provisionner une instance Cloud HSM à locataire unique, vous utilisez la gcloud CLI pour créer la ressource d'instance, créer une proposition pour enregistrer vos clés d'authentification, puis approuver et exécuter la proposition.
Créer l'instance
Cette étape doit être effectuée par un administrateur d'instance disposant du rôle Proposeur du HSM à locataire unique Cloud KMS.
Définissez votre projet par défaut.
gcloud config set project PROJECT_IDRemplacez PROJECT_ID par l'identifiant de votre projet.
Créez l'instance Cloud HSM à locataire unique.
gcloud kms single-tenant-hsm create --location=LOCATION \ --total-approver-count=QUORUM_MEMBER_COUNT \ --single-tenant-hsm-instance-id=INSTANCE_IDRemplacez les éléments suivants :
LOCATION: emplacement où vous souhaitez créer votre instance, par exempleus-central1.QUORUM_MEMBER_COUNT: nombre total de membres du quorum. Il s'agit également du nombre de clés de contrôle que vous avez créées précédemment. La valeur minimale est3. Vous pourrez ajouter d'autres clés ultérieurement avec l'approbation du quorum. Pour pouvoir récupérer votre clé de contrôle, vous devez disposer d'au moins un membre du quorum de plus que la taille de quorum requise.INSTANCE_ID: identifiant que vous souhaitez utiliser pour l'instance, par exempleexample-sthsm-instance. Vous pouvez omettre l'option--single-tenant-hsm-instance-idpour que Cloud HSM attribue un UUID.
Vérifiez l'état de l'instance.
gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONRemplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.LOCATION: emplacement où vous avez créé votre instance.
Si l'état est
PENDING_TWO_FACTOR_AUTH_REGISTRATION, vous pouvez provisionner l'instance. Il faut généralement entre 5 et 30 minutes pour atteindre cet état.
Provisionner l'instance
-
Créez une proposition pour enregistrer vos clés d'authentification à deux facteurs à l'aide de l'opération
register_2fa_keys. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS. Contrairement à la plupart des propositions, la proposition register_2fa_keys nécessite des défis signés de tous les membres du quorum.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --location LOCATION \ --operation-type register_2fa_keys \ --required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL \ --two-factor-public-key-pems=PUBLIC_KEY_LIST
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,set-up-2fa).LOCATION: emplacement où vous avez créé votre instance.MEMBERS_REQUIRED_FOR_APPROVAL: nombre de membres du quorum qui doivent approuver une proposition avant que l'opération puisse être exécutée. La valeur minimale est2. Cette valeur ne peut pas être modifiée une fois l'instance provisionnée. Vos membres du quorum doivent toujours avoir accès à au moins autant de clés de contrôle pour conserver le contrôle administratif de l'instance.PUBLIC_KEY_LIST: liste des chemins d'accès aux parties de clé publique de toutes vos clés de contrôle, séparés par une virgule (par exemple,rsapub1.pem,rsapub2.pem,rsapub3.pem). Le nombre de clés publiques de cette liste doit correspondre à la valeur deQUORUM_MEMBER_COUNTque vous avez utilisée précédemment.
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,set-up-2fa).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition. Pour provisionner une instance Cloud HSM à locataire unique, vous devez obtenir des défis signés de tous les membres du quorum.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque clé, décodez le défi à l'aide de `basenc --base64url -d` et signez-le avec la clé privée correspondante.
echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Une fois la proposition approuvée, utilisez la commande
executepour terminer l'opérationregister_2fa_keys. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Il s'agit d'une opération de longue durée qui provisionne les utilisateurs et crée des sauvegardes. L'instance devient
ACTIVEau bout de 20 à 30 minutes. Une fois l'instance
ACTIVE, affichez ses détails pour voir ledisableDate:gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONNotez le
disableDatede l'instance. Vous devez effectuer une opérationrefresh_sthiavant cette heure, sinon votre instance sera désactivée.
Afficher les instances
Les utilisateurs disposant de l'un des rôles suivants peuvent afficher la liste des instances Cloud HSM à locataire unique et leur état :
- Proposeur du HSM à locataire unique Cloud KMS
- Membre du quorum du HSM à locataire unique Cloud KMS
- Exécution du HSM à locataire unique Cloud KMS
- Lecteur Cloud KMS
- Administrateur Cloud KMS
Veillez à vérifier régulièrement l'état de vos instances. Les instances doivent être actualisées régulièrement pour rester actives.
Les instances à l'état Active peuvent être utilisées. Les développeurs qui doivent créer ou importer des clés dans des instances Cloud HSM à locataire unique ont besoin de l'identifiant de ressource de l'instance. L'identifiant de ressource utilise le format suivant :
projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME
Pour afficher les instances de votre organisation et trouver leurs identifiants de ressources, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Infrastructure KMS.
Sur la fiche Instance HSM à locataire unique, cliquez sur Afficher. La page Instance HSM à locataire unique affiche la liste de toutes les instances Cloud HSM à locataire unique que vous êtes autorisé à afficher.
Pour afficher les détails d'une instance, cliquez sur son nom. La page Détails de l'instance HSM à locataire unique affiche des informations sur l'instance sélectionnée, y compris l'identifiant de ressource complet de l'instance et la liste des propositions créées pour l'instance.
Facultatif : Pour afficher ou télécharger les clés publiques associées aux clés d'authentification à deux facteurs (2FA) actuelles de vos membres du quorum, cliquez sur Obtenir la clé publique. Vous pouvez comparer les clés publiques avec vos clés privées d'A2F pour vérifier quelles clés de contrôle sont actives.
gcloud
Affichez la liste des instances existantes à l'aide de la méthode kms single-tenant-hsm list.
gcloud kms single-tenant-hsm list --location=LOCATION
Remplacez LOCATION par l'emplacement où vous souhaitez afficher les instances Cloud HSM à locataire unique.
Affichez les détails d'une instance existante à l'aide de la méthode kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe INSTANCE_ID \
--location=LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: instance dont vous souhaitez afficher les détails.LOCATION: emplacement où vous souhaitez afficher les instances Cloud HSM à locataire unique.
Utiliser l'instance
Tant que votre instance est ACTIVE, vous pouvez créer et utiliser des clés. Vous pouvez créer des clés Cloud HSM à locataire unique sur n'importe quel trousseau de clés existant dans le même emplacement qu'une instance Cloud HSM à locataire unique active.
Pour créer des clés Cloud HSM à locataire unique, vous devez disposer du rôle Créateur de clés du HSM à locataire unique Cloud KMS en plus du rôle Administrateur Cloud KMS.
Une fois créées, les clés Cloud HSM à locataire unique ne nécessitent pas d'autorisations spéciales.
Créer une clé
Lorsque vous créez une clé Cloud HSM à locataire unique, vous devez spécifier l'instance Cloud HSM à locataire unique dans laquelle vous souhaitez la créer. Sinon, le processus est semblable à celui de la création de n'importe quelle autre clé. Pour obtenir des instructions détaillées, consultez Créer une clé.
Importer une clé
Lorsque vous importez du matériel de clé dans une clé Cloud HSM à locataire unique, vous devez spécifier l'instance Cloud HSM à locataire unique dans laquelle vous souhaitez le stocker. Autrement, le processus est semblable à l'importation de n'importe quelle autre clé. Pour obtenir des instructions détaillées, consultez Importer une version de clé dans Cloud Key Management Service.
Utiliser une clé
Une fois la clé créée, l'utilisation d'une clé Cloud HSM à locataire unique est identique à celle de toute autre clé Cloud HSM. Vous n'avez pas besoin de spécifier l'instance Cloud HSM à locataire unique pour utiliser la clé.
Portabilité des clés
La portabilité des clés vous permet de gérer vos propres clés d'encapsulation sur des instances Cloud HSM à locataire unique. Cette fonctionnalité vous permet d'importer et d'exporter d'autres clés (appelées clés encapsulables) en les encapsulant avec votre clé d'encapsulation personnalisée. La portabilité des clés est utile pour l'interopérabilité des clés entre différents fournisseurs de services cloud ou entre différentes régions Google Cloud.
Toutes les opérations de portabilité des clés nécessitent que les clés soient créées et stockées sur des instances Cloud HSM à locataire unique. RFC 5649 est le seul algorithme accepté pour l'encapsulation de clés.
Pour utiliser la portabilité des clés, vous devez procéder comme suit :
- Configurez une clé d'encapsulation de confiance.
- Créez ou importez une clé encapsulable.
- Utilisez la clé d'encapsulation de confiance pour importer du matériel de clé pré-encapsulé ou exporter une clé encapsulable.
Configurer une clé d'encapsulation de confiance
Une clé d'encapsulation approuvée est une clé AES utilisée pour encapsuler et désencapsuler d'autres clés à des fins d'exportation ou d'importation, comme défini dans la RFC 5649. Pour configurer une clé d'encapsulation de confiance sur une instance Cloud HSM à locataire unique, vous devez importer la clé en tant que clé d'importation uniquement avec l'objectif AES_WRAPPING, puis la promouvoir en tant que clé de confiance.
La promotion de clé nécessite l'approbation d'un seul membre du quorum.
-
Créez une ressource de clé en mode importation uniquement avec l'objectif
AES_WRAPPING:gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose AES_WRAPPING \ --protection-level HSM_SINGLE_TENANT \ --skip-initial-version-creation \ --import-only \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Remplacez les éléments suivants :
KEY_NAME: identifiant de la clé de chiffrement de confiance.LOCATION: région où se trouvent le trousseau de clés et l'instance Cloud HSM à locataire unique.KEY_RING: trousseau de clés dans lequel vous souhaitez créer la clé.INSTANCE_PROJECT: identifiant du projet contenant l'instance Single-tenant Cloud HSM.INSTANCE_NAME: identifiant de l'instance Cloud HSM à locataire unique.
-
Créez une tâche d'importation pour importer le matériel de clé :
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANT
Remplacez les éléments suivants :
IMPORT_JOB_NAME: identifiant du job d'importation.IMPORT_METHOD: méthode d'importation du matériel de clé d'encapsulation, par exemplersa-oaep-4096-sha256-aes-256.
-
Importez le matériel de clé AES brut.
gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm aes-256-kwp \ --target-key-file TRUSTED_KEY_PATH
Remplacez
TRUSTED_KEY_PATHpar le chemin d'accès au fichier contenant les octets bruts de la clé de wrapping de confiance. -
Créez une proposition pour promouvoir la clé de wrapping en tant que clé approuvée. Le type d'opération est
upgrade_key_trust. Les opérations de promotion doivent être signées et approuvées par le même membre du quorum qui les a initiées.gcloud kms single-tenant-hsm proposal create INSTANCE_NAME \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type upgrade_key_trust \ --keyring KEY_RING \ --key KEY_NAME \ --two-factor-login-key PATH_TO_PUBLIC_KEY
Remplacez les éléments suivants :
PROPOSAL_ID: identifiant unique de cette proposition.PATH_TO_PUBLIC_KEY: chemin d'accès à la clé publique du membre du quorum qui initie et signe la proposition.
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING:gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Lorsque l'état est
PENDING, vous pouvez signer le défi. -
Obtenez le défi à partir de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges)"
Cette commande renvoie un tableau au format JSON contenant le défi.
-
Décodez le défi à l'aide de
basenc --base64url -d, puis signez-le. Le défi doit être signé avec la clé privée correspondant à la clé publique fournie lors de la création de la proposition.echo CHALLENGE | basenc --base64url -d > decoded-challenge.txt openssl dgst -sign PRIVATE_KEY_PATH -out signed-challenge.txt decoded-challenge.txt
Remplacez les éléments suivants :
CHALLENGE: contenu du défi à partir du résultat de l'étape précédente.PRIVATE_KEY_PATH: chemin d'accès à la clé privée du membre du quorum qui a créé la proposition.
-
Approuvez la proposition en important le défi signé. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_NAME \ --required-challenge-replies="[('signed-challenge.txt','PUBLIC_KEY_PATH')]"
Remplacez
PUBLIC_KEY_PATHpar le chemin d'accès à la clé publique du membre du quorum qui a créé la proposition.Une fois le défi signé importé, l'état de la proposition passe à
APPROVED. -
Une fois la proposition approuvée, exécutez-la pour finaliser la promotion :
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Une fois la proposition exécutée, la clé est promue au rang de clé d'encapsulation de confiance et peut être utilisée pour importer ou exporter d'autres clés sur l'instance Cloud HSM à locataire unique.
Gérer les clés pouvant être encapsulées
Une clé encapsulable est une clé cryptographique conçue pour être importée ou exportée de manière sécurisée à l'aide d'une clé d'encapsulation de confiance. Vous devez configurer une clé pour qu'elle soit encapsulable lorsque la ressource de clé est créée. Vous ne pourrez plus modifier ce paramètre par la suite.
Créer une clé encapsulable
Pour créer une clé pouvant être encapsulée, utilisez l'indicateur --hsm-trusted-wrapping :
gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Remplacez les éléments suivants :
WRAPPABLE_KEY_NAME: nom de la nouvelle clé encapsulable.PURPOSE: objectif de la clé, par exempleraw-encryption. Les clés importées ne peuvent pas utiliser l'objectif de cléENCRYPT_DECRYPT.
Importer une clé encapsulable
Vous pouvez utiliser une tâche d'importation pour importer le matériel de clé existant que vous souhaitez pouvoir exporter à l'avenir. Pour ce faire, vous devez inclure l'option hsm-trusted-wrapping lorsque vous créez la clé et lorsque vous importez la version de la clé.
Créez une ressource clé avec l'option
--hsm-trusted-wrapping:gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --skip-initial-version-creation \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"Créez une tâche d'importation :
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANTImportez la version de clé à l'aide de l'option
--hsm-trusted-wrapping:gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key WRAPPABLE_KEY_NAME \ --algorithm ALGORITHM \ --target-key-file UNWRAPPED_KEY_TO_IMPORT \ --hsm-trusted-wrappingRemplacez les éléments suivants :
KEY_ALGORITHM: algorithme de la clé que vous importez.UNWRAPPED_KEY_TO_IMPORT: chemin d'accès au matériel de clé brute (non encapsulée).
Utiliser des clés approuvées pour l'importation et l'exportation
Une fois que vous avez configuré une clé d'encapsulation de confiance, vous pouvez l'utiliser pour importer du matériel de clé pré-encapsulé dans une clé encapsulable ou pour exporter une clé encapsulable.
Importer une version de clé pré-encapsulée avec une clé de confiance
Vous pouvez importer des éléments clés encapsulés sur site avec votre copie d'une clé d'encapsulation de confiance sans utiliser de tâche d'importation.
- Assurez-vous d'avoir créé la ressource de clé encapsulable cible avec l'option
--hsm-trusted-wrappinget--import-only. Consultez la section Créer une clé pouvant être encapsulée. Importez la version de clé pré-encapsulée :
gcloud kms keys versions import-trusted-key-wrapped \ --location LOCATION \ --target-keyring KEY_RING \ --target-key TARGET_KEY_NAME \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEYRemplacez les éléments suivants :
TARGET_KEY_NAME: nom de la ressource de clé encapsulable dans laquelle importer le matériel de clé.TRUSTED_KEY_RING: trousseau de clés de la clé d'encapsulation de confiance.TRUSTED_KEY_NAME: nom de la clé de wrapping de confiance promue.ALGORITHM: algorithme de la clé cible. Les valeurs acceptées sont tous les algorithmes Cloud Key Management Service, à l'exception deGOOGLE_SYMMETRIC_ENCRYPTION.PATH_TO_WRAPPED_KEY: chemin d'accès au fichier contenant le matériel de clé encapsulé avec la clé d'encapsulation de confiance.
Exporter une clé encapsulable en l'encapsulant avec une clé de confiance
Vous pouvez encapsuler une clé encapsulable existante à l'aide d'une clé d'encapsulation de confiance et enregistrer le matériel de clé encapsulé obtenu dans un fichier.
gcloud kms keys versions export-trusted-key-wrapped \ --location LOCATION \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-keyring TARGET_KEY_RING \ --target-key TARGET_KEY_NAME \ --wrapped-key-file PATH_TO_OUTPUT_WRAPPED_KEY
Remplacez les éléments suivants :
TRUSTED_KEY_RING: trousseau de clés de la clé d'encapsulation de confiance.TRUSTED_KEY_NAME: nom de la clé de wrapping de confiance promue.TARGET_KEY_RING: trousseau de clés de la clé encapsulable exportée.TARGET_KEY_NAME: nom de la clé encapsulable à exporter.PATH_TO_OUTPUT_WRAPPED_KEY: chemin d'accès où le matériel de clé encapsulé sera enregistré.
Gérer une instance
Une fois votre instance provisionnée, vous êtes responsable de sa maintenance. Vous gérez l'instance en créant des propositions d'opérations de maintenance, en obtenant l'approbation du quorum, puis en exécutant l'opération approuvée. Vous ne pouvez avoir qu'une seule proposition active à la fois. Si vous choisissez de ne pas donner suite à une proposition, vous ne pouvez pas proposer une autre opération tant que vous n'avez pas supprimé la proposition active ou que la proposition n'a pas expiré.
Vous devez actualiser votre instance avant le disableDate. Si vous devez vérifier le disableDate d'une instance, vous pouvez afficher les détails de l'instance.
Afficher les propositions d'instances
Pour afficher les propositions d'une instance, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Infrastructure KMS.
Sur la fiche Instance HSM à locataire unique, cliquez sur Afficher. La page Instance HSM à locataire unique affiche la liste de toutes les instances Cloud HSM à locataire unique que vous êtes autorisé à afficher.
Recherchez l'instance pour laquelle vous souhaitez afficher les propositions, puis cliquez sur son nom. La page Informations sur l'instance HSM à locataire unique affiche des informations sur l'instance, y compris la liste des propositions créées pour l'instance.
Facultatif : Pour filtrer la liste des suggestions, cliquez sur la barre Filtrer et saisissez vos critères de filtrage. Par exemple, vous pouvez filtrer la liste pour n'afficher que la proposition en attente d'approbation ou celles qui ont été finalisées.
gcloud
-
Affichez la liste des propositions existantes à l'aide de la méthode
kms single-tenant-hsm proposal list.gcloud kms single-tenant-hsm proposal list INSTANCE_ID \ --location=LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance Single-tenant Cloud HSM pour laquelle vous souhaitez afficher les propositions.LOCATION: emplacement où vous souhaitez afficher les instances Cloud HSM à locataire unique.
Actualiser une instance
Vous pouvez actualiser une instance pour la maintenir à jour et éviter les temps d'arrêt imprévus. Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
Lorsque vous actualisez une instance, la valeur disableDate est définie sur 730 jours à compter de la date de l'actualisation.
-
Créez une proposition pour actualiser l'instance à l'aide du type d'opération
refresh_sthi. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type refresh_sthi
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,refresh_instance).
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,refresh_instance).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, l'instance reste à l'état "ACTIVE" (ACTIVE) et
disableDateest défini sur 730 jours à compter de la date d'actualisation.
Ajouter un membre du quorum
Vous pouvez ajouter un membre du quorum à une instance. Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
Générez une paire de clés RSA-2048 pour le nouveau membre du quorum. Suivez les normes de votre organisation pour créer des paires de clés RSA-2048 sur des jetons physiques.
Stockez la clé privée de manière sécurisée. Vous en aurez besoin pour approuver les propositions. Conservez la clé publique à portée de main. Vous en aurez besoin pour ajouter le nouveau membre du quorum à l'instance Cloud HSM à locataire unique.
-
Créez une proposition pour ajouter un membre du quorum à l'instance à l'aide de l'opération
add_quorum_member. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type add_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,add_quorum_member).PATH_TO_PUBLIC_KEY: chemin d'accès à la nouvelle clé publique (par exemple,rsapub4.pem).
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,add_quorum_member).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition. Pour ajouter un membre au quorum, il faut que le nouveau membre envoie une demande signée avec la nouvelle clé, et qu'un quorum de membres existants envoie également une demande signée.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
Cette commande renvoie un tableau de défis au format JSON. Le champ
requiredActionQuorumParameters.requiredChallengescontient un défi pour la nouvelle clé que vous enregistrez. Le champrequiredActionQuorumParameters.quorumChallengescontient des défis pour un quorum des clés existantes. Vous devez signer tous les défis dans l'objetrequiredActionQuorumParameters. -
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST" \ --required-challenge-replies="SIGNED_REQUIRED_CHALLENGE_LIST"
Remplacez les éléments suivants :
SIGNED_QUORUM_CHALLENGE_LIST: tableau au format JSON de défis signés à l'aide de clés privées déjà enregistrées, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante (par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]pour envoyer les deux premiers défis signés en une seule commande).SIGNED_REQUIRED_CHALLENGE_LIST: tableau au format JSON contenant le défi signé à l'aide de la nouvelle clé privée, où le seul élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante (par exemple,[('signed-challenge-newkey.txt','rsapub-newkey.pem')]).
Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, le nouveau membre du quorum peut participer aux défis pour approuver les propositions. La clé publique que vous avez ajoutée est désormais incluse dans la liste des clés publiques des détails de l'instance.
Supprimer un membre du quorum
Si vous avez plus de membres du quorum que la taille de quorum requise, vous pouvez en supprimer un d'une instance. Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
-
Créez une proposition pour supprimer un membre du quorum de l'instance à l'aide de l'opération
remove_quorum_member. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type remove_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,remove_quorum_member).PATH_TO_PUBLIC_KEY: chemin d'accès à la clé publique que vous souhaitez supprimer de l'instance, par exemplersapub3.pem. Une fois l'opération terminée, la clé privée correspondante ne peut plus être utilisée pour approuver les propositions.
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,remove_quorum_member).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, le membre du quorum supprimé ne peut plus participer aux défis pour approuver les propositions. La clé publique que vous avez supprimée ne figure plus dans la liste des clés publiques dans les détails de l'instance.
Désactiver une instance
Vous pouvez désactiver une instance pour bloquer temporairement l'accès à toutes ses clés. Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
Lorsqu'une instance est désactivée, les clés qui y sont stockées apparaissent toujours comme ACTIVE, mais sont inutilisables. Toute tentative d'opération de chiffrement avec une clé dans une instance désactivée entraîne une erreur.
-
Créez une proposition pour désactiver l'instance à l'aide du type d'opération
disable_sthi. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type disable_sthi
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,disable_instance).
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,disable_instance).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, l'instance reste à l'état
DISABLEDet ne peut pas être utilisée tant qu'elle n'est pas réactivée.
Activer une instance
Vous pouvez réactiver une instance DISABLED pour restaurer l'accès à celle-ci et à ses clés.
Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
-
Créez une proposition pour activer l'instance à l'aide du type d'opération
enable_sthi. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type enable_sthi
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,enable_instance).
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,enable_instance).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, l'instance revient à l'état `ACTIVE` et
disableDateest défini sur 730 jours à compter de la date d'actualisation.
Supprimer une instance
Vous pouvez supprimer une instance pour la détruire définitivement, ainsi que ses clés. Cette opération nécessite une authentification par quorum. Une fois la proposition approuvée, l'opération prend environ 15 à 30 minutes.
Une fois une instance supprimée, les clés stockées dans cette instance apparaissent toujours comme ACTIVE, mais sont inutilisables. Toute tentative d'opération de cryptographie avec une clé dans une instance supprimée entraîne une erreur.
-
Créez une proposition de suppression de l'instance à l'aide du type d'opération
delete_sthi. Cette étape nécessite le rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type delete_sthi
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance que vous souhaitez supprimer.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique que vous souhaitez utiliser pour cette proposition (par exemple,delete_instance).
-
Affichez l'état de la proposition et attendez qu'il passe à
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de votre instance.PROPOSAL_ID: identifiant de la proposition (par exemple,delete_instance).LOCATION: emplacement où vous avez créé votre instance.
Lorsque l'état est
PENDING, vous pouvez signer les défis. -
Obtenez les défis de la proposition.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Cette commande renvoie un tableau de défis au format JSON.
-
Pour chaque défi renvoyé à l'étape précédente, décodez-le à l'aide de
basenc --base64url -det signez-le avec une clé privée.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Remplacez les éléments suivants :
N: numéro du défi (par exemple,1pour le premier défi,2pour le deuxième, etc.).CHALLENGE_N: contenu du défiNà partir du résultat de l'étape précédente.PRIVATE_KEY_N: chemin d'accès à la clé privée numéroN(par exemple,rsaprivate1.pempour le premier défi).
-
Approuvez la proposition en important les défis signés. Vous pouvez les importer en une ou plusieurs commandes. Cette étape nécessite le rôle Membre du quorum du HSM à locataire unique Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Remplacez
SIGNED_QUORUM_CHALLENGE_LISTpar un tableau de défis au format JSON, où chaque élément de la liste est un tuple contenant le chemin d'accès au défi signé et le chemin d'accès à la clé publique correspondante. Par exemple,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]permet d'envoyer les deux premiers défis signés en une seule commande.Une fois que vous avez importé le nombre requis de défis signés, l'état de la proposition passe à
APPROVED. -
Assurez-vous de vouloir supprimer l'instance et de crypto-supprimer toutes les données chiffrées à l'aide des clés créées dans cette instance, puis exécutez la proposition. Cette étape nécessite le rôle Exécuteur du HSM à locataire unique Cloud KMS et doit être effectuée dans les 24 heures suivant la création de la proposition.
Avertissement : La commande suivante est irréversible. Vous risquez de perdre définitivement vos données. Google ne peut pas vous aider à récupérer les clés d'une instance supprimée.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Une fois l'opération terminée, l'instance est supprimée.
Supprimer une proposition
Si vous décidez de ne pas approuver ni exécuter une proposition, vous pouvez la supprimer avant son expiration. Si vous supprimez une proposition en attente, vous ne pourrez pas l'approuver, mais vous pourrez en créer une autre. Si vous supprimez une proposition approuvée, vous ne pourrez pas exécuter l'opération.
-
Supprimez une proposition à l'aide de la commande
proposal delete. Pour cela, vous devez disposer du rôle Proposeur du HSM à locataire unique Cloud KMS.gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID
Remplacez les éléments suivants :
INSTANCE_ID: identifiant de l'instance.LOCATION: emplacement où vous avez créé l'instance.PROPOSAL_ID: identifiant unique de la proposition que vous souhaitez supprimer (par exemple,proposal_to_delete).
Étapes suivantes
- En savoir plus sur Cloud HSM à locataire unique