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
- Esamina 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. Altri membri del quorum possono essere aggiunti 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 richiesta 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 nel progetto o in 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 sui 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 servono 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 Cloud HSM single-tenant. 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 eseguire 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_two_factor_auth_keys. Questo passaggio richiede il ruolo Cloud KMS single-tenant HSM Proposer. A differenza della maggior parte delle proposte, la proposta register_two_factor_auth_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_two_factor_auth_keys
--required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL
--two-factor-public-key-pems=PUBLIC_KEY_LISTSostituisci quanto segue:
INSTANCE_ID: l'identificatore dell'istanza.PROPOSAL_IDl'identificatore univoco che vuoi utilizzare per questa proposta, ad esempioset-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 con un unico comando o con 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_two_factor_auth_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 LOCATIONSi 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 di
disableDatedell'istanza. Devi completare un'operazionerefresh_single_tenant_hsm_instanceprima 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 projects/PROJECT_ID/locations/LOCATION
Sostituisci quanto segue:
PROJECT_ID: l'identificatore del progetto in cui vuoi visualizzare le istanze Single-tenant Cloud HSM.LOCATION: la località in cui vuoi visualizzare le istanze Cloud HSM single-tenant.
Visualizza i dettagli di un'istanza esistente utilizzando il metodo kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe --location=LOCATION \ --singletenanthsminstance=INSTANCE_ID
Sostituisci quanto segue:
LOCATION: la località in cui vuoi visualizzare le istanze Cloud HSM single-tenant.INSTANCE_ID: l'istanza per la quale vuoi visualizzare i dettagli.
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 località 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 a tenant singolo, devi specificare l'istanza Cloud HSM a tenant singolo 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.
Gestire un'istanza
Dopo il provisioning dell'istanza, sei responsabile della sua manutenzione. Gestisci l'istanza creando proposte per le operazioni di manutenzione, ottenendo l'approvazione del quorum ed eseguendo 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 l'istanza prima del giorno disableDate. Se devi
controllare il disableDate di un'istanza, puoi visualizzare i dettagli
dell'istanza.
Visualizzare le proposte di istanza
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 di 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 --location=LOCATION \ --singletenanthsminstance=INSTANCE_ID
Sostituisci quanto segue:
LOCATION: la località in cui vuoi visualizzare le istanze Cloud HSM single-tenant.INSTANCE_ID: l'identificatore dell'istanza Single-tenant Cloud HSM per cui vuoi visualizzare le proposte.
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 valore di disableDate viene impostato su 120 giorni
a partire dal momento dell'aggiornamento.
-
Crea una proposta per aggiornare l'istanza utilizzando il tipo di operazione
refresh_single_tenant_hsm_instance. 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_single_tenant_hsm_instance
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 con un unico comando o con 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
disableDateè impostato su 120 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 con un unico comando o con 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 con un unico comando o con 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.
Disattivare 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 non sono utilizzabili. 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_single_tenant_hsm_instance. 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_single_tenant_hsm_instance
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 con un unico comando o con 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.
Abilitare 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_single_tenant_hsm_instance. 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_single_tenant_hsm_instance
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 con un unico comando o con 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
disableDateviene impostato su 120 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_single_tenant_hsm_instance. 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_single_tenant_hsm_instance
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 con un unico comando o con 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.