Questa pagina mostra come creare una chiave in Cloud KMS. Una chiave può essere una chiave di crittografia simmetrica o asimmetrica, una chiave di firma asimmetrica o una chiave di firma MAC.
Quando crei una chiave, la aggiungi a un keyring in una posizione Cloud KMS specifica. Puoi creare un nuovo portachiavi o utilizzarne uno esistente. In questa pagina, genera una nuova chiave Cloud KMS o Cloud HSM e aggiungila a un keyring esistente. Per creare una chiave Cloud EKM, consulta Crea una chiave esterna. Per importare una chiave Cloud KMS o Cloud HSM, consulta Importare una chiave.
Prima di iniziare
Prima di completare le attività in questa pagina, devi disporre di quanto segue:
- Una risorsa di progetto per contenere le risorse di Cloud KMS. Google Cloud Ti consigliamo di utilizzare un progetto separato per le risorse Cloud KMS che non contenga altre 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 hai scelto. Per visualizzare le località disponibili e i livelli di protezione che supportano, consulta Località Cloud KMS. Per creare un keyring, vedi Creare un keyring.
- (Facoltativo) Per utilizzare gcloud CLI, prepara l'ambiente.
In the Google Cloud console, activate Cloud Shell.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare chiavi, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto o su una risorsa padre:
-
Amministratore Cloud KMS (
roles/cloudkms.admin) -
Per creare chiavi HSM single-tenant:
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.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare chiavi. Per vedere quali sono esattamente le autorizzazioni richieste, 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 -
Per creare chiavi HSM single-tenant:
-
cloudkms.singleTenantHsmInstances.get -
cloudkms.singleTenantHsmInstances.use
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Creare una chiave di crittografia simmetrica
Console
Nella console Google Cloud , vai alla pagina Key Management.
Fai clic sul nome del keyring per cui creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software, HSM o HSM single-tenant.
Se hai selezionato HSM a tenant singolo, seleziona l'istanza HSM a tenant singolo in cui vuoi creare la chiave.
In Materiale della chiave, seleziona Chiave generata.
Per Finalità, seleziona Crittografia/decrittografia simmetrica.
Accetta i valori predefiniti per Periodo di rotazione e A partire dal giorno.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
Per creare una chiave software o Multi-tenant Cloud HSM, utilizza il comando
kms keys create: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 delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.PROTECTION_LEVEL: il livello di protezione da utilizzare per la chiave, ad esempiosoftwareohsm. Puoi omettere il flag--protection-levelper le chiavisoftware.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag
Per creare una chiave Cloud HSM single-tenant, aggiungi il flag--help.--crypto-key-backendal comandokms keys create:gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "hsm-single-tenant" \ --crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"Sostituisci quanto segue:
INSTANCE_PROJECT: l'identificatore del progetto in cui esiste l'istanza Single-tenant Cloud HSM.INSTANCE_NAME: il nome dell'istanza Single-tenant Cloud HSM in cui vuoi creare la chiave. Per saperne di più sulle istanze Cloud HSM single-tenant, consulta Creare e gestire un'istanza Cloud HSM single-tenant.
Per informazioni su tutti i flag e i valori possibili, 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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Per creare una chiave software o Multi-tenant Cloud HSM, utilizza il metodo
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 le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.KEY_NAME: il nome della chiave.PROTECTION_LEVEL: il livello di protezione della chiave, ad esempioSOFTWAREoHSM.ALGORITHM: l'algoritmo di firma HMAC, ad esempioHMAC_SHA256. Per visualizzare tutti gli algoritmi HMAC supportati, consulta Algoritmi di firma HMAC.
PROTECTION_LEVELsuHSM_SINGLE_TENANTe aggiungi il flag--crypto-key-backendal comandokms keys 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": "HSM_SINGLE_TENANT", "algorithm": "ALGORITHM", "crypto-key-backend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME" }}'Sostituisci quanto segue:
INSTANCE_PROJECT: l'identificatore del progetto in cui esiste l'istanza Single-tenant Cloud HSM.INSTANCE_NAME: il nome dell'istanza Single-tenant Cloud HSM in cui vuoi creare la chiave. Per saperne di più sulle istanze Cloud HSM single-tenant, consulta Creare e gestire un'istanza Cloud HSM single-tenant.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag
--help.Crea una chiave di crittografia simmetrica con rotazione automatica personalizzata
Quando crei una chiave, puoi specificare il periodo di rotazione, ovvero il tempo che intercorre tra la creazione automatica di 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 un periodo di rotazione da ora.
Console
Quando utilizzi la console Google Cloud per creare una chiave, Cloud KMS imposta automaticamente il periodo di rotazione e l'ora della rotazione successiva. Puoi scegliere di utilizzare i valori predefiniti o specificarne di diversi.
Per specificare un periodo di rotazione e un orario di inizio diversi, quando crei la chiave, ma prima di fare clic sul pulsante Crea:
Per Periodo di rotazione della chiave, seleziona un'opzione.
Per A partire dal giorno, seleziona la data in cui vuoi che avvenga la prima rotazione automatica. Puoi lasciare A partire dal giorno al valore predefinito per avviare la prima rotazione automatica un periodo di rotazione della chiave dopo la creazione della chiave.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione 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_TIMESostituisci quanto segue:
KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.ROTATION_PERIOD: l'intervallo di rotazione della chiave, ad esempio30dper ruotare la chiave ogni 30 giorni. Il periodo di rotazione deve essere di almeno 1 giorno e al massimo 100 anni. Per saperne di più, consulta CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: il timestamp in cui completare la prima rotazione, ad esempio2023-01-01T01:02:03. Puoi omettere--next-rotation-timeper programmare la prima rotazione per un periodo di rotazione dal momento in cui esegui il comando. Per saperne di più, consultaCryptoKey.nextRotationTime.
Per informazioni su tutti i flag e i valori possibili, 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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Per creare una chiave, utilizza il metodo
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: lo scopo della chiave.ROTATION_PERIOD: l'intervallo di rotazione della chiave, ad esempio30dper ruotare la chiave ogni 30 giorni. Il periodo di rotazione deve essere di almeno 1 giorno e al massimo 100 anni. Per saperne di più, consulta CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: il timestamp in cui completare la prima rotazione, ad esempio2023-01-01T01:02:03. Per saperne di più, consultaCryptoKey.nextRotationTime.
Imposta la durata dello stato "pianificata per l'eliminazione"
Per impostazione predefinita, le versioni della chiave in Cloud KMS trascorrono 30 giorni nello stato di eliminazione pianificata (
DESTROY_SCHEDULED) prima di essere eliminate. Lo stato pianificato per l'eliminazione viene talvolta chiamato stato di eliminazione temporanea. La durata per cui 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 è possibile modificarla.
- 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 di quelle di sola importazione, per le quali la durata minima è pari a 0.
- La durata massima è di 120 giorni.
- La durata predefinita è di 30 giorni.
La tua organizzazione potrebbe avere un valore minimo di durata pianificata per l'eliminazione definito dai criteri dell'organizzazione. Per saperne di più, consulta Distruzione delle chiavi di controllo.
Per creare una chiave che utilizzi una durata personalizzata per lo stato Pianificata per l'eliminazione, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Key Management.
Fai clic sul nome del keyring per cui 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 dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATIONSostituisci quanto segue:
KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.PURPOSE: lo scopo della chiave, ad esempioencryption.DURATION: il periodo di tempo durante il quale la chiave rimane nello stato pianificata per l'eliminazione prima di essere eliminata definitivamente.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag
--help.Ti consigliamo di utilizzare la durata predefinita di 30 giorni per tutte le chiavi, a meno che tu non abbia requisiti normativi o di applicazione specifici che richiedono un valore diverso.
Creare una chiave asimmetrica
Le sezioni seguenti mostrano come creare chiavi asimmetriche.
Creazione di una chiave di decriptazione asimmetrica
Segui questi passaggi per creare una chiave di decriptazione asimmetrica nel portachiavi e nella posizione specificati. Questi esempi possono essere adattati per specificare un livello di protezione o un algoritmo diverso. Per ulteriori informazioni e valori alternativi, consulta Algoritmi e Livelli di protezione.
Quando crei la chiave per la prima volta, la versione iniziale ha lo stato In attesa di generazione. Quando lo stato diventa Enabled (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 Key Management.
Fai clic sul nome del keyring per cui creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software, HSM o HSM single-tenant.
Se hai selezionato HSM a tenant singolo, seleziona l'istanza HSM a tenant singolo in cui vuoi creare la chiave.
In Materiale della chiave, seleziona Chiave generata.
Per Scopo, seleziona Decrittografia asimmetrica.
Per Algorithm (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 dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"Sostituisci quanto segue:
KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.ALGORITHM: l'algoritmo da utilizzare per la chiave, ad esempiorsa-decrypt-oaep-3072-sha256. Per un elenco degli algoritmi di crittografia asimmetrica supportati, consulta Algoritmi di crittografia asimmetrica.PROTECTION_LEVEL: il livello di protezione che vuoi utilizzare per la chiave.
hsm-single-tenant, aggiungi il flag--cryptoKeyBackende specifica l'identificatore di risorsa dell'istanza Cloud HSM single-tenant in cui vuoi creare la chiave: Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag `--help`.--crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Crea una chiave di decriptazione asimmetrica utilizzando il metodoCryptoKey.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", "protectionLevel": "PROTECTION_LEVEL", "versionTemplate": {"algorithm": "ALGORITHM"}}'Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto che contiene le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono 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 degli algoritmi di crittografia asimmetrica supportati, consulta Algoritmi di crittografia asimmetrica.PROTECTION_LEVEL: il livello di protezione che vuoi utilizzare per la chiave.
PROTECTION_LEVELsuHSM_SINGLE_TENANTe aggiungi il campocryptoKeyBackendal corpo del comando con l'identificatore di risorsa dell'istanza HSM single-tenant Cloud in cui vuoi importare la chiave:"cryptoKeyBackend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Creazione di una chiave di firma asimmetrica
Segui questi passaggi per creare una chiave di firma asimmetrica nel portachiavi e nella posizione specificati. Questi esempi possono essere adattati per specificare un livello di protezione o un algoritmo diverso. Per ulteriori informazioni e valori alternativi, consulta Algoritmi e Livelli di protezione.
Quando crei la chiave per la prima volta, la versione iniziale ha lo stato In attesa di generazione. Quando lo stato diventa Enabled (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 Key Management.
Fai clic sul nome del keyring per cui creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software, HSM o HSM single-tenant.
Se hai selezionato HSM a tenant singolo, seleziona l'istanza HSM a tenant singolo in cui vuoi creare la chiave.
In Materiale della chiave, seleziona Chiave generata.
Per Scopo, seleziona Segno asimmetrico.
Per Algorithm (Algoritmo), seleziona Elliptic Curve P-256 - SHA256 Digest (Curva ellittica P-256 - Digest SHA256). Puoi modificare questo valore nelle versioni future della chiave.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"Sostituisci quanto segue:
KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.ALGORITHM: l'algoritmo da utilizzare per la chiave, ad esempioec-sign-p256-sha256. Per un elenco degli algoritmi supportati, consulta Algoritmi di firma asimmetrici.PROTECTION_LEVEL: il livello di protezione che vuoi utilizzare per la chiave.
PROTECTION_LEVELsuhsm-single-tenante aggiungi il flag--cryptoKeyBackendper specificare l'identificatore di risorsa dell'istanza Cloud HSM single-tenant in cui vuoi creare la chiave: Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag `--help`.--crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Crea una chiave di firma asimmetrica chiamando [`CryptoKey.create`](/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys/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": {"protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM"}}'Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto che contiene le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.KEY_NAME: il nome della chiave.PROTECTION_LEVEL: il livello di protezione che vuoi utilizzare per la chiave.ALGORITHM: l'algoritmo da utilizzare per la chiave, ad esempioEC_SIGN_P256_SHA256. Per un elenco degli algoritmi supportati, consulta Algoritmi di firma asimmetrica.Se vuoi creare la chiave in un HSM single-tenant, imposta
PROTECTION_LEVELsuHSM_SINGLE_TENANTe aggiungi il campocryptoKeyBackendal corpo del comando e aggiungi l'identificatore della risorsa dell'istanza HSM single-tenant in cui vuoi importare la chiave:"crypto-key-backend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Creare una chiave KEM
Segui questi passaggi per creare una chiave da utilizzare in un meccanismo di incapsulamento della chiave (KEM) per il keyring e la località specificati. Questi esempi possono essere adattati per specificare un livello di protezione o un algoritmo diverso. Per ulteriori informazioni e valori alternativi, consulta Algoritmi e Livelli di protezione.
Quando crei la chiave per la prima volta, la versione iniziale ha lo stato In attesa di generazione. Quando lo stato diventa Enabled (Attivato), puoi utilizzare la chiave. Per scoprire di più sugli stati delle versioni delle chiavi, consulta Stati delle versioni delle chiavi.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "key-encapsulation" \ --default-algorithm "ALGORITHM"Sostituisci quanto segue:
KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.ALGORITHM: l'algoritmo da utilizzare per la chiave, ad esempioml-kem-768. Per un elenco degli algoritmi di incapsulamento delle chiavi supportati, consulta Algoritmi di incapsulamento delle chiavi.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag
--help.API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Crea una chiave con lo scopo
KEY_ENCAPSULATIONchiamandoCryptoKey.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": "KEY_ENCAPSULATION", "versionTemplate": {"algorithm": "ALGORITHM"}}'Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto che contiene le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.KEY_NAME: il nome della chiave.ALGORITHM: l'algoritmo da utilizzare per la chiave, ad esempioML_KEM_768. Per un elenco degli algoritmi di incapsulamento delle chiavi supportati, consulta Algoritmi di incapsulamento delle chiavi.
Recupera la chiave pubblica
Quando crei una chiave asimmetrica, Cloud KMS crea una coppia di chiavi pubbliche/private. 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 saperne di più, consulta le sezioni Considerazioni generali e Codifica testuale delle informazioni sulla chiave pubblica del soggetto della RFC 7468.
Per scaricare la chiave pubblica per una versione della chiave asimmetrica esistente, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Key Management.
Fai clic sul nome delle chiavi automatizzate contenenti la chiave asimmetrica per cui vuoi recuperare la chiave pubblica.
Fai clic sul nome della chiave per 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 Scarica 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 ha il seguente formato:
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 dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --public-key-format PUBLIC_KEY_FORMAT \ --output-file OUTPUT_FILE_PATHSostituisci quanto segue:
KEY_VERSION: il numero di versione della chiave.KEY_NAME: il nome della chiave.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.PUBLIC_KEY_FORMAT: il formato in cui vuoi esportare la chiave pubblica. Per gli algoritmi PQC del NIST (anteprima), utilizzanist-pqce per X-Wing (anteprima) utilizzaxwing-raw-bytes. Per tutte le altre chiavi, puoi utilizzarepem,dero omettere questo parametro.OUTPUT_FILE_PATH: il percorso in cui vuoi salvare il file della chiave pubblica, ad esempiopublic-key.pub.
Per informazioni su tutti i flag e i valori possibili, 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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta 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?public_key_format=PUBLIC_KEY_FORMAT" \ --request "GET" \ --header "authorization: Bearer TOKEN"Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto che contiene le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.KEY_NAME: il nome della chiave.KEY_VERSION: il numero di versione della chiave.PUBLIC_KEY_FORMAT: il formato in cui vuoi esportare la chiave pubblica. Per gli algoritmi PQC (anteprima), utilizzaNIST_PQC. Per tutte le altre chiavi, puoi utilizzarePEMo omettere questo parametro.
Se il formato della chiave pubblica viene omesso per una chiave non PQC, l'output è 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": "PROTECTION_LEVEL" }
Per un algoritmo PQC con formato della chiave pubblica
NIST_PQC, l'output è simile al seguente:{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
Convertire una chiave pubblica nel formato JWK
Cloud KMS consente di recuperare una chiave pubblica in formato PEM. Alcune applicazioni potrebbero richiedere altri formati di chiave, ad esempio JSON Web Key (JWK). Per saperne di più sul formato JWK, consulta RFC 7517.
Per convertire una chiave pubblica nel formato JWK, segui questi passaggi:
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Controllare l'accesso alle chiavi asimmetriche
Un firmatario o un convalidatore richiede l'autorizzazione o il ruolo appropriato per la chiave asimmetrica.
Per un utente o un servizio che eseguirà la firma, concedi l'autorizzazione
cloudkms.cryptoKeyVersions.useToSignsulla chiave asimmetrica.Per un utente o un servizio che recupererà la chiave pubblica, concedi il ruolo
cloudkms.cryptoKeyVersions.viewPublicKeysulla chiave asimmetrica. La chiave pubblica è necessaria per la convalida della firma.
Scopri di più su autorizzazioni e ruoli nella release di Cloud KMS in Autorizzazioni e ruoli.
Crea una chiave di firma MAC
Console
Nella console Google Cloud , vai alla pagina Key Management.
Fai clic sul nome del keyring per cui creerai una chiave.
Fai clic su Crea chiave.
In Nome chiave, inserisci un nome per la chiave.
Per Livello di protezione, seleziona Software, HSM o HSM single-tenant.
Se hai selezionato HSM a tenant singolo, seleziona l'istanza HSM a tenant singolo in cui vuoi creare la chiave.
In Materiale della chiave, seleziona Chiave generata.
In Scopo, seleziona Firma/verifica MAC.
(Facoltativo) Per Algoritmo, seleziona un algoritmo di firma HMAC.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
Per creare una chiave software o Multi-tenant Cloud HSM, utilizza il comandokms keys create: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 delle chiavi automatizzate che contengono la chiave.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.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, ad esempiohsm. Puoi omettere il flag--protection-levelper le chiavisoftware.
Per i dettagli su tutti i flag e i valori possibili, esegui il comando con il flag
Per creare una chiave Cloud HSM single-tenant, aggiungi il flag--help.--crypto-key-backendal comandokms keys create:gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL" \ --crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"Sostituisci quanto segue:
INSTANCE_PROJECT: l'identificatore del progetto in cui esiste l'istanza Single-tenant Cloud HSM.INSTANCE_NAME: il nome dell'istanza Single-tenant Cloud HSM in cui vuoi creare la chiave. Per saperne di più sulle istanze Cloud HSM a tenant singolo, consulta Creare e gestire un'istanza Cloud HSM a tenant singolo.
Per informazioni su tutti i flag e i valori possibili, 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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Per creare una chiave software o Multi-tenant Cloud HSM, utilizza il metodo
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 le chiavi automatizzate.LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.KEY_NAME: il nome della chiave.PROTECTION_LEVEL: il livello di protezione della chiave, ad esempioSOFTWAREoHSM.ALGORITHM: l'algoritmo di firma HMAC, ad esempioHMAC_SHA256. Per visualizzare tutti gli algoritmi HMAC supportati, consulta Algoritmi di firma HMAC.
Per creare una chiave Cloud HSM a tenant singolo, aggiungi il campo
cryptoKeyBackendal corpo della richiestaCryptoKey.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", "cryptoKeyBackend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME" }}'Sostituisci quanto segue:
INSTANCE_PROJECT: l'identificatore del progetto in cui esiste l'istanza Single-tenant Cloud HSM.INSTANCE_NAME: il nome dell'istanza Single-tenant Cloud HSM in cui vuoi creare la chiave. Per saperne di più sulle istanze Cloud HSM single-tenant, consulta Creare e gestire un'istanza Cloud HSM single-tenant.
Passaggi successivi
- Scopri di più sulla rotazione delle chiavi.
- Scopri di più su come creare e convalidare le firme.
- Scopri di più sulla crittografia e decrittografia dei dati con una chiave RSA.
- Scopri di più su come recuperare una chiave pubblica.
-
Amministratore Cloud KMS (