Questa guida mostra come creare, eseguire il provisioning e gestire un'istanza Single-tenant Cloud HSM utilizzando la Google Cloud CLI. Dopo aver creato e provisionato l'istanza, puoi creare e utilizzare le chiavi nell'istanza utilizzando la console Google Cloud , l'API Cloud Key Management Service, gcloud CLI e le librerie client.
La creazione e la gestione dell'istanza richiedono l'autenticazione del quorum. Quando crei l'istanza, definisci il numero di approvazioni dei membri del quorum necessarie per eseguire le operazioni dell'istanza. I membri del quorum devono sempre avere a disposizione almeno questo numero di chiavi di controllo per mantenere il controllo amministrativo della tua istanza.
Prima di iniziare
- Rivedi e applica le best practice di Cloud HSM single-tenant durante la creazione e la manutenzione dell'istanza.
- Decidi con quanti membri del quorum vuoi iniziare. È possibile aggiungere altri membri del quorum in un secondo momento, se approvati dai membri del quorum esistenti. Il numero minimo di membri del quorum è tre.
- Decidi quanti membri del quorum sono necessari per approvare le proposte. Non puoi modificare questo numero dopo la creazione dell'istanza. I membri del quorum devono sempre avere accesso a questo numero di chiavi di controllo per mantenere l'istanza. La dimensione minima del quorum è due. La dimensione del quorum richiesto deve essere inferiore al numero di membri del quorum.
- Decidi come assicurarti che l'istanza venga aggiornata in tempo.
Devi monitorare
disableDatedell'istanza e proporre, approvare ed eseguire un'operazione di aggiornamento dell'istanza prima della scadenza per evitare tempi di inattività indesiderati. -
Per ottenere le autorizzazioni necessarie per creare, gestire e utilizzare istanze Single-tenant Cloud HSM, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto o su una risorsa padre:
-
Crea proposte:
Cloud KMS single-tenant HSM Proposer (
cloudkms.hsmSingleTenantProposer) -
Approva proposte:
Cloud KMS single-tenant HSM Quorum Member (
cloudkms.hsmSingleTenantQuorumMember) -
Esegui proposte:
Cloud KMS single-tenant HSM Executor (
cloudkms.hsmSingleTenantExecutor) -
Crea chiavi:
Cloud KMS single-tenant HSM Key Creator (
roles/cloudkms.hsmSingleTenantKeyCreator)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Crea proposte:
Cloud KMS single-tenant HSM Proposer (
Per ogni membro del quorum, genera una coppia di chiavi RSA-2048 per l'autenticazione a due fattori (2FA). Ti consigliamo di utilizzare token fisici per i tasti di controllo. Segui gli standard della tua organizzazione per la creazione di coppie di chiavi RSA-2048 su token fisici.
A scopo dimostrativo, questa guida utilizza OpenSSL per creare tre chiavi RSA-2048 supportate da software:
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 --puboutConserva le chiavi private in modo sicuro, in quanto ti serviranno per approvare le proposte. Tieni a portata di mano le chiavi pubbliche, ti serviranno per creare l'istanza Cloud HSM a tenant singolo.
Scegli una località Cloud KMS che supporti Single-tenant Cloud HSM. Per identificare le località compatibili, visualizza l'elenco delle località nella pagina Località Cloud KMS. Per il filtro Supporto HSM, seleziona Supporta HSM a tenant singolo.
Crea e esegui il provisioning di un'istanza
Per creare e eseguire il provisioning di un'istanza Single-tenant Cloud HSM, utilizza gcloud CLI per creare la risorsa istanza, creare una proposta per registrare le chiavi di autenticazione e poi approvare ed eseguire la proposta.
Crea l'istanza
Questo passaggio deve essere completato da un amministratore dell'istanza con il ruolo Cloud KMS single-tenant HSM Proposer.
Imposta il progetto predefinito.
gcloud config set project PROJECT_IDSostituisci PROJECT_ID con l'identificatore del tuo progetto.
Crea l'istanza Cloud HSM single-tenant.
gcloud kms single-tenant-hsm create --location=LOCATION \ --total-approver-count=QUORUM_MEMBER_COUNT \ --single-tenant-hsm-instance-id=INSTANCE_IDSostituisci quanto segue:
LOCATION: la posizione in cui vuoi creare l'istanza, ad esempious-central1.QUORUM_MEMBER_COUNT: il numero totale di membri del quorum. Questo è anche il numero di chiavi di controllo che hai creato in precedenza. Il valore minimo è3. È possibile aggiungere altre chiavi in un secondo momento con l'approvazione del quorum. Per il recupero dopo la perdita di una chiave di controllo, devi avere almeno un membro del quorum in più rispetto alla dimensione del quorum richiesta.INSTANCE_ID: l'identificatore che vuoi utilizzare per l'istanza, ad esempioexample-sthsm-instance. Puoi omettere il flag--single-tenant-hsm-instance-idper fare in modo che Cloud HSM assegni un UUID.
Controlla lo stato dell'istanza.
gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONSostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.
Se lo stato è
PENDING_TWO_FACTOR_AUTH_REGISTRATION, puoi eseguire il provisioning dell'istanza. In genere, sono necessari tra 5 e 30 minuti per raggiungere questo stato.
Esegui il provisioning dell'istanza
-
Crea una proposta per registrare le tue chiavi di autenticazione a due fattori utilizzando l'operazione
register_2fa_keys. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer. A differenza della maggior parte delle proposte, la proposta register_2fa_keys richiede sfide firmate da tutti i membri del 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
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore univoco che vuoi utilizzare per questa proposta, ad esempio,set-up-2fa.LOCATION: la località in cui hai creato l'istanza.MEMBERS_REQUIRED_FOR_APPROVAL: il numero di membri del quorum che devono approvare una proposta prima che l'operazione possa essere eseguita. Il valore minimo è2. Questo valore non può essere modificato dopo il provisioning dell'istanza. I membri del quorum devono sempre avere accesso ad almeno questo numero di chiavi di controllo per mantenere il controllo amministrativo dell'istanza.PUBLIC_KEY_LIST: un elenco separato da virgole di percorsi alle parti della chiave pubblica di tutte le tue chiavi di controllo, ad esempiorsapub1.pem,rsapub2.pem,rsapub3.pem. Il numero di chiavi pubbliche in questo elenco deve corrispondere al valore diQUORUM_MEMBER_COUNTche hai utilizzato in precedenza.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempioset-up-2fa.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta. Il provisioning di una nuova istanza Cloud HSM single-tenant richiede sfide firmate da tutti i membri del quorum.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni chiave, decodifica la sfida utilizzando `basenc --base64url -d` e firmala con la chiave privata corrispondente.
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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Una volta approvata la proposta, utilizza il comando
executeper completare l'operazioneregister_2fa_keys. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Si tratta di un'operazione a lunga esecuzione che esegue il provisioning degli utenti e crea backup. L'istanza diventa
ACTIVEdopo 20-30 minuti. Una volta che l'istanza è
ACTIVE, visualizza i dettagli dell'istanza per visualizzaredisableDate:gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONPrendi nota dell'
disableDatedell'istanza. Devi completare un'operazionerefresh_sthiprima di questo orario, altrimenti la tua istanza verrà disattivata.
Visualizza istanze
Gli utenti con uno dei seguenti ruoli possono visualizzare un elenco di istanze Cloud HSM a tenant singolo e i relativi stati:
- Cloud KMS single-tenant HSM Proposer
- Cloud KMS single-tenant HSM Quorum Member
- Cloud KMS single-tenant HSM Executor
- Visualizzatore Cloud KMS
- Amministratore Cloud KMS
Assicurati di controllare regolarmente lo stato delle tue istanze. Le istanze devono essere aggiornate regolarmente per rimanere attive.
È possibile utilizzare le istanze nello stato Attivo. Gli sviluppatori che devono creare o importare chiavi nelle istanze Cloud HSM a tenant singolo hanno bisogno dell'identificatore di risorsa dell'istanza. L'identificatore della risorsa utilizza il seguente formato:
projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME
Per visualizzare le istanze nella tua organizzazione e trovare i relativi identificatori di risorse, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Infrastruttura KMS.
Nella scheda Istanza HSM a tenant singolo, fai clic su Visualizza. La pagina Istanza HSM a tenant singolo mostra un elenco di tutte le istanze Cloud HSM a tenant singolo per le quali disponi delle autorizzazioni di visualizzazione.
Per visualizzare i dettagli di un'istanza, fai clic sul nome dell'istanza. La pagina Dettagli istanza HSM a tenant singolo mostra i dettagli dell'istanza selezionata, incluso l'identificatore di risorsa completo dell'istanza e un elenco di proposte create per l'istanza.
(Facoltativo) Per visualizzare o scaricare le chiavi pubbliche associate alle chiavi di autenticazione a due fattori (2FA) attuali dei membri del quorum, fai clic su Ottieni chiave pubblica. Puoi confrontare le chiavi pubbliche con le tue chiavi 2FA private per verificare quali chiavi di controllo sono attive.
gcloud
Visualizza un elenco di istanze esistenti utilizzando il
metodo kms single-tenant-hsm list.
gcloud kms single-tenant-hsm list --location=LOCATION
Sostituisci LOCATION con la posizione in cui vuoi
visualizzare le istanze Cloud HSM a tenant singolo.
Visualizza i dettagli di un'istanza esistente utilizzando il
metodo kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe INSTANCE_ID \
--location=LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'istanza per la quale vuoi visualizzare i dettagli.LOCATION: la località in cui vuoi visualizzare le istanze Cloud HSM single-tenant.
Utilizzare l'istanza
Mentre l'istanza è ACTIVE, puoi creare e utilizzare le chiavi. Puoi creare
chiavi Cloud HSM single-tenant su qualsiasi portachiavi che si trova nella stessa
posizione di un'istanza Cloud HSM single-tenant attiva.
La creazione di chiavi Cloud HSM single-tenant richiede il ruolo Cloud KMS single-tenant HSM Key Creator oltre al ruolo Cloud KMS Admin.
Una volta create, l'utilizzo delle chiavi Cloud HSM single-tenant non richiede autorizzazioni speciali.
Crea una chiave
Quando crei una chiave Cloud HSM single-tenant, devi specificare l'istanza Cloud HSM single-tenant in cui vuoi crearla. In caso contrario, la procedura è simile alla creazione di qualsiasi altra chiave. Per istruzioni dettagliate, vedi Creare una chiave.
Importare una chiave
Quando importi il materiale della chiave in una chiave Cloud HSM single-tenant, devi specificare l'istanza Cloud HSM single-tenant in cui vuoi archiviarlo. In caso contrario, la procedura è simile all'importazione di qualsiasi altra chiave. Per istruzioni dettagliate, vedi Importare una versione della chiave in Cloud Key Management Service.
Utilizzare una chiave
Dopo la creazione della chiave, l'utilizzo di una chiave Cloud HSM single-tenant è identico all'utilizzo di qualsiasi altra chiave Cloud HSM. Non è necessario specificare l'istanza Single-tenant Cloud HSM per utilizzare la chiave.
Portabilità delle chiavi
La portabilità delle chiavi ti consente di gestire le tue chiavi di wrapping su istanze Cloud HSM a tenant singolo. Questa funzionalità consente di importare ed esportare altre chiavi (denominate chiavi wrappabili) eseguendo il wrapping con la chiave di wrapping personalizzata. La portabilità delle chiavi è utile per l'interoperabilità delle chiavi tra diversi provider cloud o tra diverse regioni Google Cloud.
Tutte le operazioni di portabilità delle chiavi richiedono che le chiavi vengano create e archiviate su istanze Cloud HSM single-tenant. RFC 5649 è l'unico algoritmo supportato per il wrapping delle chiavi.
Per utilizzare la portabilità delle chiavi, devi completare i seguenti passaggi:
- Configura una chiave di wrapping attendibile.
- Crea o importa una chiave con wrapping.
- Utilizza la chiave di wrapping attendibile per importare materiale chiave sottoposto a pre-wrapping o esportare una chiave sottoposta a wrapping.
Configurare una chiave di wrapping attendibile
Una chiave di wrapping attendibile è una chiave AES utilizzata per eseguire il wrapping e l'unwrapping di altre chiavi per l'esportazione o l'importazione come definito nella RFC 5649. Per configurare una chiave di wrapping attendibile su un'istanza Cloud HSM a tenant singolo, devi importare la chiave come chiave di sola importazione con lo scopo AES_WRAPPING e poi promuoverla come attendibile.
La promozione della chiave richiede l'approvazione di un singolo membro del quorum.
-
Crea una risorsa chiave di sola importazione con lo scopo
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"
Sostituisci quanto segue:
KEY_NAME: l'identificatore della chiave di wrapping attendibile.LOCATION: la regione in cui si trovano il portachiavi e l'istanza Single-tenant Cloud HSM.KEY_RING: le chiavi automatizzate in cui vuoi creare la chiave.INSTANCE_PROJECT: l'identificatore del progetto che contiene l'istanza Single-tenant Cloud HSM.INSTANCE_NAME: l'identificatore dell'istanza Cloud HSM single-tenant.
-
Crea un job di importazione per importare il materiale chiave:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANT
Sostituisci quanto segue:
IMPORT_JOB_NAME: l'identificatore del job di importazione.IMPORT_METHOD: il metodo di importazione per il wrapping del materiale della chiave, ad esempiorsa-oaep-4096-sha256-aes-256.
-
Importa il materiale della chiave AES non elaborata.
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
Sostituisci
TRUSTED_KEY_PATHcon il percorso del file contenente i byte della chiave di wrapping attendibile non elaborata. -
Crea una proposta per promuovere la chiave di wrapping a attendibile. Il tipo di operazione è
upgrade_key_trust. Le operazioni di promozione devono essere firmate e approvate dallo stesso membro del quorum che le ha avviate.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
Sostituisci quanto segue:
PROPOSAL_ID: un identificatore univoco per questa proposta.PATH_TO_PUBLIC_KEY: il percorso della chiave pubblica del membro del quorum che avvia e firma la proposta.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING:gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Quando lo stato è
PENDING, puoi firmare la sfida. -
Accetta la sfida dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges)"
Questo comando restituisce un array in formato JSON contenente la sfida.
-
Decodifica la sfida utilizzando
basenc --base64url -d, quindi firmala. La sfida deve essere firmata con la chiave privata corrispondente alla chiave pubblica fornita al momento della creazione della proposta.echo CHALLENGE | basenc --base64url -d > decoded-challenge.txt openssl dgst -sign PRIVATE_KEY_PATH -out signed-challenge.txt decoded-challenge.txt
Sostituisci quanto segue:
CHALLENGE: i contenuti della sfida dall'output del passaggio precedente.PRIVATE_KEY_PATH: il percorso della chiave privata del membro del quorum che ha creato la proposta.
-
Approva la proposta caricando la contestazione firmata. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
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')]"
Sostituisci
PUBLIC_KEY_PATHcon il percorso della chiave pubblica del membro del quorum che ha creato la proposta.Dopo aver caricato la sfida firmata, lo stato della proposta viene aggiornato a
APPROVED. -
Una volta approvata la proposta, eseguila per completare la promozione:
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Una volta eseguita la proposta, la chiave viene promossa a chiave di wrapping attendibile e può essere utilizzata per importare o esportare altre chiavi nell'istanza Single-tenant Cloud HSM.
Gestisci chiavi wrappable
Una chiave sottoponibile a wrapping è una chiave di crittografia designata per l'importazione o l'esportazione sicura utilizzando una chiave di wrapping attendibile. Devi configurare una chiave in modo che possa essere sottoposta a wrapping quando viene creata la risorsa chiave. Non potrai modificare questa impostazione in un secondo momento.
Crea una nuova chiave wrappable
Per creare una nuova chiave eseguibile il wrapping, utilizza il flag --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"
Sostituisci quanto segue:
WRAPPABLE_KEY_NAME: il nome della nuova chiave eseguibile.PURPOSE: lo scopo della chiave, ad esempioraw-encryption. Le chiavi importate non possono utilizzare lo scopo della chiaveENCRYPT_DECRYPT.
Importa una chiave con wrapping
Puoi utilizzare un job di importazione per importare materiale chiave esistente che vuoi
poter esportare in futuro. Per farlo, devi includere il flag hsm-trusted-wrapping sia quando crei la chiave sia quando importi la versione della chiave.
Crea una risorsa chiave con il flag
--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"Crea un job di importazione:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANTImporta la versione della chiave con il flag
--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-wrappingSostituisci quanto segue:
KEY_ALGORITHM: l'algoritmo della chiave che stai importando.UNWRAPPED_KEY_TO_IMPORT: il percorso del materiale della chiave non protetto.
Utilizzare chiavi attendibili per l'importazione e l'esportazione
Dopo aver configurato una chiave di wrapping attendibile, puoi utilizzarla per importare materiale della chiave sottoposto a pre-wrapping in una chiave sottoponibile a wrapping o esportare una chiave sottoponibile a wrapping.
Importare una versione della chiave sottoposta a pre-wrapping con una chiave attendibile
Puoi importare il materiale chiave sottoposto a wrapping on-premise con la tua copia di una chiave di wrapping attendibile senza utilizzare un job di importazione.
- Assicurati di aver creato la risorsa chiave wrappable di destinazione con il flag
--hsm-trusted-wrappinge l'opzione--import-only. Consulta la sezione Creare una nuova chiave eseguibile il wrapping. Importa la versione della chiave sottoposta a pre-wrapping:
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_KEYSostituisci quanto segue:
TARGET_KEY_NAME: il nome della risorsa chiave wrappable in cui importare il materiale della chiave.TRUSTED_KEY_RING: le chiavi automatizzate della chiave di wrapping attendibile.TRUSTED_KEY_NAME: il nome della chiave di wrapping attendibile promossa.ALGORITHM: l'algoritmo della chiave di destinazione. I valori supportati sono tutti gli algoritmi di Cloud Key Management Service, tranneGOOGLE_SYMMETRIC_ENCRYPTION.PATH_TO_WRAPPED_KEY: il percorso del file contenente il materiale della chiave sottoposto a wrapping con la chiave di wrapping attendibile.
Esportare una chiave sottoponibile a wrapping eseguendo il wrapping con una chiave attendibile
Puoi eseguire il wrapping di una chiave wrappable esistente utilizzando una chiave di wrapping attendibile e salvare il materiale della chiave sottoposta a wrapping risultante in un file.
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
Sostituisci quanto segue:
TRUSTED_KEY_RING: le chiavi automatizzate della chiave di wrapping attendibile.TRUSTED_KEY_NAME: il nome della chiave di wrapping attendibile promossa.TARGET_KEY_RING: le chiavi automatizzate della chiave wrappable da esportare.TARGET_KEY_NAME: il nome della chiave wrappable da esportare.PATH_TO_OUTPUT_WRAPPED_KEY: il percorso in cui verrà salvato il materiale della chiave sottoposto a wrapping.
Gestire un'istanza
Una volta eseguito il provisioning dell'istanza, sei responsabile della sua manutenzione. Per gestire l'istanza, devi creare proposte per le operazioni di manutenzione, ottenere l'approvazione del quorum ed eseguire l'operazione approvata. Può essere attiva una sola proposta alla volta. Se scegli di non procedere con una proposta, non puoi proporre un'operazione diversa finché non elimini la proposta attiva o non attendi la scadenza della proposta.
Devi aggiornare la tua istanza prima del giorno disableDate. Se devi
controllare il disableDate di un'istanza, puoi visualizzare i dettagli
dell'istanza.
Visualizzare le proposte di istanze
Per visualizzare le proposte per un'istanza:
Console
Nella console Google Cloud , vai alla pagina Infrastruttura KMS.
Nella scheda Istanza HSM a tenant singolo, fai clic su Visualizza. La pagina Istanza HSM a tenant singolo mostra un elenco di tutte le istanze Cloud HSM a tenant singolo per le quali disponi delle autorizzazioni di visualizzazione.
Individua l'istanza in cui vuoi visualizzare le proposte e fai clic sul nome dell'istanza. La pagina Dettagli istanza HSM a tenant singolo mostra i dettagli dell'istanza, incluso un elenco delle proposte create per l'istanza.
(Facoltativo) Per filtrare l'elenco delle proposte, fai clic sulla barra Filtro e inserisci i criteri di filtro. Ad esempio, puoi filtrare l'elenco per visualizzare solo la proposta in attesa di approvazione o solo le proposte che sono state completate correttamente.
gcloud
-
Visualizza un elenco di proposte esistenti utilizzando il metodo
kms single-tenant-hsm proposal list.gcloud kms single-tenant-hsm proposal list INSTANCE_ID \ --location=LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza Single-tenant Cloud HSM per cui vuoi visualizzare le proposte.LOCATION: la località in cui vuoi visualizzare le istanze Cloud HSM single-tenant.
Aggiorna un'istanza
Puoi aggiornare un'istanza per mantenerla aggiornata e contribuire a evitare tempi di inattività non pianificati. Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta, il completamento dell'operazione richiede circa 15-30 minuti.
Quando aggiorni un'istanza, il disableDate viene impostato su 730 giorni
dal momento dell'aggiornamento.
-
Crea una proposta per aggiornare l'istanza utilizzando il tipo di operazione
refresh_sthi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type refresh_sthi
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempiorefresh_instance.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempiorefresh_instance.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, l'istanza rimane nello stato `ACTIVE` e il valore di
disableDateviene impostato su 730 giorni dal momento dell'aggiornamento.
Aggiungere un membro del quorum
Puoi aggiungere un membro del quorum a un'istanza. Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta, l'operazione richiede circa 15-30 minuti per essere completata.
Genera una nuova coppia di chiavi RSA-2048 per il nuovo membro del quorum. Segui gli standard della tua organizzazione per la creazione di coppie di chiavi RSA-2048 su token fisici.
Conserva la chiave privata in modo sicuro, in quanto ti servirà per approvare le proposte. Tieni a portata di mano la chiave pubblica, ti servirà per aggiungere il nuovo membro del quorum all'istanza Cloud HSM single-tenant.
-
Crea una proposta per aggiungere un membro del quorum all'istanza utilizzando l'operazione
add_quorum_member. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.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
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempioadd_quorum_member.PATH_TO_PUBLIC_KEY: il percorso della nuova chiave pubblica, ad esempiorsapub4.pem.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempioadd_quorum_member.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta. L'aggiunta di un nuovo membro del quorum richiede contestazioni firmate da un quorum di membri esistenti più una contestazione firmata dal nuovo membro utilizzando la nuova chiave.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
Questo comando restituisce un array di sfide in formato JSON. Il campo
requiredActionQuorumParameters.requiredChallengescontiene una sfida per la nuova chiave che stai registrando. Il camporequiredActionQuorumParameters.quorumChallengescontiene le sfide per un quorum delle chiavi esistenti. Devi firmare tutte le sfide nell'oggettorequiredActionQuorumParameters. -
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
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"
Sostituisci quanto segue:
SIGNED_QUORUM_CHALLENGE_LIST: un array in formato JSON di sfide firmate utilizzando chiavi private già registrate, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.SIGNED_REQUIRED_CHALLENGE_LIST: un array in formato JSON contenente la sfida firmata utilizzando la nuova chiave privata, in cui l'unico elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio[('signed-challenge-newkey.txt','rsapub-newkey.pem')].
Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, il nuovo membro del quorum può partecipare alle sfide per approvare le proposte. La chiave pubblica che hai aggiunto ora è inclusa nell'elenco delle chiavi pubbliche nei dettagli dell'istanza.
Rimuovere un membro del quorum
Se hai più membri del quorum rispetto alla dimensione del quorum richiesta, puoi rimuovere un membro del quorum da un'istanza. Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta, il completamento dell'operazione richiede circa 15-30 minuti.
-
Crea una proposta per rimuovere un membro del quorum dall'istanza utilizzando l'operazione
remove_quorum_member. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.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
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempioremove_quorum_member.PATH_TO_PUBLIC_KEY: il percorso della chiave pubblica che vuoi rimuovere dall'istanza, ad esempiorsapub3.pem. Al termine dell'operazione, la chiave privata corrispondente non può essere utilizzata per approvare le proposte.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempioremove_quorum_member.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, il membro del quorum rimosso non può più partecipare alle sfide per approvare le proposte. La chiave pubblica che hai rimosso non è più inclusa nell'elenco delle chiavi pubbliche nei dettagli dell'istanza.
Disattiva un'istanza
Puoi disattivare un'istanza per bloccare temporaneamente l'accesso a tutte le relative chiavi. Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta, l'operazione richiede circa 15-30 minuti per essere completata.
Mentre un'istanza è disattivata, le chiavi archiviate in quell'istanza vengono comunque visualizzate come
ACTIVE, ma sono inutilizzabili. Il tentativo di eseguire operazioni crittografiche con una chiave in un'istanza disattivata genera un errore.
-
Crea una proposta per disattivare l'istanza utilizzando il tipo di operazione
disable_sthi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type disable_sthi
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempiodisable_instance.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempiodisable_instance.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, l'istanza rimane nello stato
DISABLEDe non può essere utilizzata finché non viene riattivata.
Attiva un'istanza
Puoi riattivare un'istanza DISABLED per ripristinare l'accesso e le relative chiavi.
Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta,
il completamento dell'operazione richiede circa 15-30 minuti.
-
Crea una proposta per attivare l'istanza utilizzando il tipo di operazione
enable_sthi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type enable_sthi
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempioenable_instance.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempioenable_instance.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, l'istanza torna allo stato `ACTIVE` e il valore di
disableDateviene impostato su 730 giorni dal momento dell'aggiornamento.
Elimina un'istanza
Puoi eliminare un'istanza per distruggerla definitivamente e le relative chiavi. Questa operazione richiede l'autenticazione del quorum. Una volta approvata la proposta, l'operazione richiede circa 15-30 minuti per essere completata.
Dopo l'eliminazione di un'istanza, le chiavi archiviate in quell'istanza vengono ancora visualizzate come
ACTIVE, ma non sono utilizzabili. Il tentativo di eseguire operazioni crittografiche con una chiave in un'istanza eliminata genera un errore.
-
Crea una proposta per eliminare l'istanza utilizzando il tipo di operazione
delete_sthi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type delete_sthi
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza che vuoi eliminare.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco che vuoi utilizzare per questa proposta, ad esempiodelete_instance.
-
Visualizza lo stato della proposta e attendi che diventi
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore della proposta, ad esempiodelete_instance.LOCATION: la località in cui hai creato l'istanza.
Quando lo stato è
PENDING, puoi firmare le sfide. -
Ottieni le sfide dalla proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Questo comando restituisce un array di sfide in formato JSON.
-
Per ogni richiesta restituita nel passaggio precedente, decodifica la richiesta utilizzando
basenc --base64url -de firmala con una chiave privata.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
Sostituisci quanto segue:
N: il numero della sfida, ad esempio1per la prima sfida,2per la seconda e così via.CHALLENGE_N: i contenuti della sfida numeroNdall'output del passaggio precedente.PRIVATE_KEY_N: il percorso del numero della chiave privataN, ad esempiorsaprivate1.pemper la prima sfida.
-
Approva la proposta caricando le sfide firmate. Puoi caricarli in un unico comando o in più comandi. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Sostituisci
SIGNED_QUORUM_CHALLENGE_LISTcon un array in formato JSON di sfide, in cui ogni elemento dell'elenco è una tupla che contiene il percorso della sfida firmata e il percorso della chiave pubblica corrispondente, ad esempio,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]per inviare le prime due sfide firmate in un unico comando.Dopo aver caricato il numero richiesto di sfide firmate, lo stato della proposta viene aggiornato a
APPROVED. -
Assicurati di voler procedere all'eliminazione dell'istanza e alla distruzione crittografica di tutti i dati criptati utilizzando le chiavi create in questa istanza, quindi esegui la proposta. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Executor e deve essere completato entro 24 ore dalla creazione della proposta.
Avviso: il seguente comando è irreversibile. Può verificarsi una perdita permanente di dati. Google non può aiutarti a recuperare le chiavi in un'istanza eliminata.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Al termine dell'operazione, l'istanza viene eliminata.
Eliminare una proposta
Se decidi di non approvare o eseguire una proposta, puoi eliminarla prima della scadenza. L'eliminazione di una proposta in attesa ti impedisce di approvarla e ti consente di crearne una nuova. L'eliminazione di una proposta approvata ti impedisce di eseguire l'operazione.
-
Elimina una proposta utilizzando il comando
proposal delete. Per questa operazione è necessario il ruolo Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID
Sostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.LOCATION: la località in cui hai creato l'istanza.PROPOSAL_ID: l'identificatore univoco della proposta che vuoi eliminare, ad esempioproposal_to_delete.
Passaggi successivi
- Scopri di più su Cloud HSM single-tenant.