Questa pagina mostra come creare una chiave in Cloud KMS. Una chiave può essere un chiave di crittografia simmetrica o asimmetrica, una chiave di firma asimmetrica o un MAC chiave di firma.
Quando crei una chiave, la aggiungi a un keyring in una specifica Località Cloud KMS. Puoi creare una nuova chiave squilla o usane uno esistente. In questa pagina, generi una nuova chiave Cloud KMS o Cloud HSM e la aggiungi a un il keyring esistente. Per creare una chiave Cloud EKM, consulta Creare una chiave esterna chiave. Per importare una chiave Cloud KMS o Cloud HSM, consulta Importazione di una chiave.
Prima di iniziare
Prima di completare le attività in questa pagina, devi disporre di quanto segue:
- Una risorsa di progetto Google Cloud che contenga delle risorse Cloud KMS. Ti consigliamo di utilizzare un progetto separato per il tuo Risorse Cloud KMS che non contengono altre dell'accesso a specifiche risorse Google Cloud.
- Il nome e la posizione del keyring in cui vuoi creare la chiave. Scegli un portachiavi in una posizione vicina alle altre risorse e che supporti il livello di protezione che preferisci. A le località disponibili e i livelli di protezione supportati, consulta Località di Cloud KMS. Per creare una chiave consulta Creare un keyring.
- (Facoltativo) Per utilizzare gcloud CLI, prepara il tuo ambiente.
Interfaccia a riga di comando gcloud
In the Google Cloud console, activate Cloud Shell.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare le chiavi,
chiedi all'amministratore di concederti il ruolo IAM Amministratore Cloud KMS (roles/cloudkms.admin
) nel progetto o in una risorsa principale.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare le chiavi. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare chiavi sono necessarie le seguenti autorizzazioni:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
Per recuperare una chiave pubblica:
cloudkms.cryptoKeyVersions.viewPublicKey
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.
Crea una chiave di crittografia simmetrica
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring per il quale creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software o HSM.
In Materiale della chiave, seleziona Chiave generata.
Per Scopo, seleziona Crittografia/decrittografia simmetrica.
Accetta i valori predefiniti per Periodo di rotazione e Inizio.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.PROTECTION_LEVEL
: il livello di protezione da utilizzare per ad esempiosoftware
ohsm
. Puoi omettere il flag--protection-level
per le chiavisoftware
.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Per creare una chiave, utilizza
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.KEY_RING
: il nome del keyring che contiene la chiave.KEY_NAME
: il nome della chiave.PROTECTION_LEVEL
: il livello di protezione del ad esempioSOFTWARE
oHSM
.ALGORITHM
: l'algoritmo di firma HMAC, ad esempioHMAC_SHA256
. Per visualizzare tutti gli algoritmi HMAC supportati, consulta Algoritmi di firma HMAC.
Crea una chiave di crittografia simmetrica con rotazione automatica personalizzata
Quando crei una chiave, puoi specificarne la rotazione periodo, ovvero il tempo che intercorre tra la creazione automatica nuove versioni della chiave. Puoi anche specificare in modo indipendente l'ora della rotazione successiva, in modo che la rotazione successiva avvenga prima o dopo il periodo di rotazione a partire dal giorno per ora.
Console
Quando utilizzi la console Google Cloud per creare una chiave, Cloud KMS imposta la periodo di rotazione e ora di rotazione successiva automaticamente. Puoi scegliere di utilizzare i valori predefiniti o specificare valori diversi.
Per specificare un periodo di rotazione e un'ora di inizio diversi, al momento della creazione la chiave, ma prima di fare clic il pulsante Crea:
Per Periodo di rotazione della chiave, seleziona un'opzione.
In corrispondenza di A partire dal, seleziona la data in cui vuoi che venga registrata la prima la rotazione. Puoi lasciare impostato il valore predefinito A partire da avvia la prima rotazione automatica un periodo di rotazione della chiave da quando per creare la chiave.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.ROTATION_PERIOD
: l'intervallo da Ruota la chiave, ad esempio30d
per ruotare la chiave ogni 30 giorni. La rotazione deve essere di almeno 1 giorno e al massimo 100 anni. Per ulteriori informazioni, vedi CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: il timestamp in cui completare la prima rotazione, ad esempio2023-01-01T01:02:03
. Puoi omettere--next-rotation-time
per pianificare la prima rotazione per una rotazione dall'esecuzione del comando. Per ulteriori informazioni, consultaCryptoKey.nextRotationTime
.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Per creare una chiave, utilizza
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
Sostituisci quanto segue:
PURPOSE
: il valore scopo della chiave.ROTATION_PERIOD
: l'intervallo da Ruota la chiave, ad esempio30d
per ruotare la chiave ogni 30 giorni. La rotazione deve essere di almeno 1 giorno e al massimo 100 anni. Per ulteriori informazioni, consulta CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: il timestamp in cui completare la prima rotazione, ad esempio2023-01-01T01:02:03
. Per ulteriori informazioni, vediCryptoKey.nextRotationTime
Imposta la durata dell'eliminazione pianificata stato
Per impostazione predefinita, le versioni della chiave in Cloud KMS rimangono nello stato Eliminazione pianificata (DESTROY_SCHEDULED
) per 30 giorni prima di essere eliminate. Lo stato pianificata per l'eliminazione è a volte chiamato
stato di eliminazione soft. Il periodo di tempo durante il quale le versioni della chiave rimangono in questo stato
è configurabile, con i seguenti vincoli:
- Puoi impostare la durata solo durante la creazione della chiave.
- Una volta specificata, la durata della chiave non può più essere modificata.
- La durata si applica a tutte le versioni della chiave create in futuro.
- La durata minima è di 24 ore per tutte le chiavi, ad eccezione delle chiavi di sola importazione che hanno una durata minima di 0.
- La durata massima è 120 giorni.
- La durata predefinita è 30 giorni.
Per la tua organizzazione potrebbe essere stata pianificata una durata minima per l'eliminazione definito dai criteri dell'organizzazione. Per ulteriori informazioni, consulta la sezione Distruzione delle chiavi di controllo.
Per creare una chiave che utilizzi una durata personalizzata per l'opzione Eliminazione pianificata segui questi passaggi:
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring per il quale creerai una chiave.
Fai clic su Crea chiave.
Configura le impostazioni della chiave per la tua applicazione.
Fai clic su Impostazioni aggiuntive.
In Durata dello stato "pianificata per l'eliminazione", scegli il numero di giorni in cui la chiave rimarrà pianificata per l'eliminazione prima di essere eliminata definitivamente.
Fai clic su Crea chiave.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.PURPOSE
: lo scopo della chiave, ad esempioencryption
.DURATION
: la quantità di tempo che deve trascorrere prima che la chiave rimanga nel pianificato per l'eliminazione prima dell'eliminazione definitiva.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
Ti consigliamo di utilizzare la durata predefinita di 24 ore per tutte le chiavi, a meno che hai requisiti normativi o di applicazione specifici che richiedono un valore diverso.
Crea una chiave asimmetrica
Creazione di una chiave di decriptazione asimmetrica
Segui questi passaggi per creare una chiave di decrittografia asimmetrica sulla chiave specificata l'anello e la posizione. Questi esempi possono essere adattati per specificare al livello di protezione o all'algoritmo. Per ulteriori informazioni e valori alternativi, vedi Algoritmi e Livelli di protezione.
Quando crei la chiave per la prima volta, la versione iniziale della chiave ha lo stato Generare in attesa. Quando lo stato passa a Attivato, puoi utilizzare la chiave. Per scoprire di più sugli stati delle versioni delle chiavi, consulta Stati delle versioni delle chiavi.
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring per il quale creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software o HSM.
Per Materiale chiave, seleziona Chiave generata.
Per Scopo, seleziona Decriptazione asimmetrica.
Per Algoritmo, seleziona RSA a 3072 bit - Padding OAEP - Digest SHA256. Puoi modificare questo valore nelle versioni future della chiave.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.ALGORITHM
: l'algoritmo da utilizzare per la chiave, ad esempiorsa-decrypt-oaep-3072-sha256
. Per un elenco di asimmetriche supportate agli algoritmi di crittografia, consulta Crittografia asimmetrica algoritmica.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
C#
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo C# e installare l'SDK Cloud KMS C#.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Crea una chiave di decriptazione asimmetrica chiamando
CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.KEY_RING
: il nome del keyring che contiene la chiave.KEY_NAME
: il nome della chiave.ALGORITHM
: l'algoritmo da utilizzare per la chiave, ad esempioRSA_DECRYPT_OAEP_3072_SHA256
. Per un elenco di algoritmi di crittografia asimmetrica supportati, consulta Crittografia asimmetrica algoritmica.
Creazione di una chiave di firma asimmetrica
Segui questi passaggi per creare una chiave di firma asimmetrica nel keyring specificato e la località. Questi esempi possono essere adattati per specificare al livello di protezione o all'algoritmo. Per ulteriori informazioni e valori alternativi, consulta Algoritmi e Livelli di protezione.
Quando crei la chiave per la prima volta, la versione iniziale della chiave ha lo stato In attesa di generazione. Quando lo stato passa a Attivato, puoi utilizzare la chiave. Per saperne di più sugli stati delle versioni della chiave, consulta Versione della chiave stati.
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring per cui vuoi creare una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software o HSM.
Per Materiale chiave, seleziona Chiave generata.
Per Finalità, seleziona Segno asimmetrico.
Per Algoritmo, seleziona Curva ellittica P-256 - Digest SHA256. Puoi modificare questo valore nelle versioni future della chiave.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.ALGORITHM
: l'algoritmo da utilizzare per la chiave, ad esempioec-sign-p256-sha256
. Per un elenco degli algoritmi supportati, consulta Asimmetrico algoritmi di firma.
Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help
.
C#
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo C# e installare l'SDK Cloud KMS C#.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Crea una chiave di firma asimmetrica chiamando
CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.KEY_RING
: il nome del keyring che contiene la chiave.KEY_NAME
: il nome della chiave.ALGORITHM
: l'algoritmo da utilizzare per la chiave, ad esempioEC_SIGN_P256_SHA256
. Per un elenco delle consulta la sezione Firma asimmetrica algoritmica.
Recupera la chiave pubblica
Quando crei una chiave asimmetrica, Cloud KMS crea un'istanza una coppia di chiavi. Puoi recuperare la chiave pubblica di una chiave asimmetrica abilitata in qualsiasi momento dopo la generazione della chiave.
La chiave pubblica è in formato PEM (Privacy-enhanced Electronic Mail). Per ulteriori informazioni informazioni, consulta le sezioni RFC 7468 Informazioni generali Considerazioni e codifica testuale del pubblico del soggetto Informazioni principali.
Per scaricare la chiave pubblica per una versione di chiave asimmetrica esistente: passaggi:
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring che contiene la chiave asimmetrica per la quale vuoi recuperare la chiave pubblica.
Fai clic sul nome della chiave di cui vuoi recuperare la chiave pubblica.
Nella riga corrispondente alla versione della chiave per cui vuoi recuperare la chiave pubblica, fai clic su Visualizza altro
.Fai clic su Ricevi chiave pubblica.
La chiave pubblica viene visualizzata nel prompt. Puoi copiare la chiave pubblica negli appunti. Per scaricare la chiave pubblica, fai clic su Scarica.
Se non vedi l'opzione Ottieni chiave pubblica, verifica quanto segue:
- La chiave è una chiave asimmetrica.
- La versione della chiave è abilitata.
- Disponi dell'autorizzazione
cloudkms.cryptoKeyVersions.viewPublicKey
.
Il nome file di una chiave pubblica scaricata dalla console Google Cloud è di il modulo:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Ogni parte del nome file è separata da un trattino, ad esempio
ringname-keyname-version.pub
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
Sostituisci quanto segue:
KEY_VERSION
: il numero di versione della chiave.KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.OUTPUT_FILE_PATH
: il percorso in cui vuoi salvare file di chiave pubblica, ad esempiopublic-key.pub
.
Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help
.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Recupera la chiave pubblica chiamando il metodo CryptoKeyVersions.getPublicKey .
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.KEY_RING
: il nome del keyring che contiene la chiave.KEY_NAME
: il nome della chiave.KEY_VERSION
: il numero di versione della chiave.
L'output dovrebbe essere simile al seguente:
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "SOFTWARE" }
Converti una chiave pubblica in formato JWK
Cloud KMS ti consente di recuperare una chiave pubblica in formato PEM. Alcune applicazioni potrebbero richiedere altri formati chiave come la chiave web JSON (JWK). Per ulteriori informazioni sul formato JWK, consulta RFC 7517.
Per convertire una chiave pubblica nel formato JWK, segui questi passaggi:
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Controllare l'accesso alle chiavi asimmetriche
Un firmatario o uno strumento di convalida richiede l'autorizzazione o il ruolo appropriati nella chiave asimmetrica.
Per un utente o un servizio che eseguirà la firma, concedi la Autorizzazione
cloudkms.cryptoKeyVersions.useToSign
per la chiave asimmetrica.Per un utente o un servizio che recupererà la chiave pubblica, concedi il metodo
cloudkms.cryptoKeyVersions.viewPublicKey
sulla chiave asimmetrica. La chiave pubblica è obbligatoria per la convalida della firma.
Scopri di più sulle autorizzazioni e sui ruoli nella release di Cloud KMS all'indirizzo Autorizzazioni e ruoli.
Creare una chiave di firma MAC
Console
Nella console Google Cloud, vai alla pagina Gestione delle chiavi.
Fai clic sul nome del keyring per il quale creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software o HSM.
Per Materiale chiave, seleziona Chiave generata.
Per Scopo, seleziona Firma/verifica MAC.
(Facoltativo) Per Algoritmo, seleziona un firma HMAC algoritmo.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
Sostituisci quanto segue:
KEY_NAME
: il nome della chiave.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.ALGORITHM
: l'algoritmo di firma HMAC, ad esempiohmac-sha256
. Per visualizzare tutti gli algoritmi HMAC supportati, consulta Algoritmi di firma HMAC.PROTECTION_LEVEL
: il livello di protezione della chiave, per ad esempiohsm
. Puoi omettere il flag--protection-level
persoftware
chiave.
Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help
.
C#
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo C# e installare l'SDK Cloud KMS C#.
Go
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, scopri innanzitutto come utilizzare PHP su Google Cloud e installa l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Per creare una chiave, utilizza
CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.LOCATION
: la posizione Cloud KMS della raccolta di chiavi.KEY_RING
: il nome del keyring che contiene la chiave.KEY_NAME
: il nome della chiave.PROTECTION_LEVEL
: il livello di protezione della chiave, ad esempioSOFTWARE
oHSM
.ALGORITHM
: l'algoritmo di firma HMAC, ad esempioHMAC_SHA256
. Per visualizzare tutti gli algoritmi HMAC supportati, consulta la sezione Firma HMAC. algoritmica.
Passaggi successivi
- Scopri di più sulla rotazione delle chiavi.
- Scopri di più sulla creazione e convalida firme.
- Scopri di più su come criptare e decriptare i dati con un RSA chiave.
- Scopri di più sul recupero di una chiave pubblica.