Questo argomento mostra come ricriptare i dati utilizzando una chiave simmetrica di Cloud Key Management Service. Puoi adattare questi esempi per le chiavi asimmetriche. Se sospetti l'utilizzo non autorizzato di una chiave, devi criptare nuovamente i dati protetta dalla chiave e poi disabilita o pianifica l'eliminazione della chiave precedente completamente gestita.
Prima di iniziare
Questo scenario richiede le seguenti condizioni.
Hai già criptato i dati utilizzando Cloud KMS.
La versione della chiave utilizzata per la crittografia non è disabilitata, pianificata per la distruzione o la distruzione. Utilizza questa versione della chiave per decriptare i dati criptati.
Hai già rotazione delle chiavi. Una rotazione della chiave crea una nuova e la versione della chiave. Utilizza la nuova versione della chiave primaria per criptare nuovamente e i dati di Google Cloud.
Ricrittografia dei dati con chiavi asimmetriche
Gli esempi in questo argomento mostrano come criptare nuovamente i dati utilizzando una chiave simmetrica. Quando utilizzi una chiave simmetrica, Cloud KMS deduce automaticamente la versione della chiave da utilizzare per la decrittografia. Quando utilizzi una chiave asimmetrica, devi specifica la versione della chiave.
- Quando segui le istruzioni per l'utilizzo di Google Cloud CLI, includi sempre il flag
--version
. - Quando segui le istruzioni per l'utilizzo dell'API, utilizzi
CryptoKeyVersions
anzichéCryptoKeys
. Scopri di più su come criptare e decriptare i dati con una chiave asimmetrica.
Il flusso di lavoro per la ricrittografia dei dati con chiavi asimmetriche è simile a quello descritto in questo argomento.
Flusso di lavoro di nuova crittografia dei dati
Per criptare nuovamente i dati e disattivare o pianificare l'eliminazione, segui questi passaggi della versione della chiave utilizzata per la crittografia originale.
Decriptare i dati utilizzando la versione precedente della chiave
Ricripta i dati utilizzando la nuova versione della chiave primaria
Disabilita o pianifica l'eliminazione della versione della chiave precedente
Decripta i dati utilizzando la versione della chiave precedente
Cloud KMS utilizza automaticamente la versione della chiave corretta per decriptare i dati, a condizione che la versione della chiave non sia disabilitata, pianificata per la distruzione o la distruzione. I seguenti esempi mostrano come decriptare i dati. Si tratta dello stesso codice di decrittografia utilizzato in Crittografia e decrittografia.
gcloud
Per utilizzare Cloud KMS sulla riga di comando, esegui l'installazione o l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms decrypt \ --key key \ --keyring key-ring \ --location location \ --ciphertext-file file-path-with-encrypted-data \ --plaintext-file file-path-to-store-plaintext
Sostituisci key con il nome della chiave da utilizzare per la decriptazione. Sostituisci key-ring con il nome del keyring in cui si troverà la chiave. Sostituisci location con la posizione di Cloud KMS per la chiave suonano. Sostituisci file-path-with-encrypted-data e file-path-to-store-plaintext con i percorsi file locali per la lettura degli i dati criptati e il salvataggio dell'output decriptato.
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 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.
Il testo decriptato restituito nel file JSON da Cloud KMS viene con codifica Base64.
Per decriptare i dati criptati, effettua una richiesta POST
e fornisci i dati appropriati
progetto e le informazioni chiave e specificare il testo crittografato da utilizzare
decriptato nel campo ciphertext
del corpo della richiesta.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name:decrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"ciphertext\": \"encrypted-content\"}"
Ecco un payload di esempio con dati codificati in base64:
{ "ciphertext": "CiQAhMwwBo61cHas7dDgifrUFs5zNzBJ2uZtVFq4ZPEl6fUVT4kSmQ...", }
Ricripta i dati utilizzando la nuova versione della chiave primaria
Cloud KMS utilizza automaticamente la nuova versione della chiave principale per criptare i dati. I seguenti esempi mostrano come criptare i dati. Questo è il lo stesso codice di crittografia usato in Crittografia e decriptazione.
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 encrypt \ --key key \ --keyring key-ring \ --location location \ --plaintext-file file-with-data-to-encrypt \ --ciphertext-file file-to-store-encrypted-data
Sostituisci key con il nome della chiave da utilizzare per la crittografia. Sostituisci key-ring con il nome del keyring in cui si trova la chiave. Sostituisci location con la località di Cloud KMS per l'account il keyring. Sostituisci file-with-data-to-encrypt e file-to-store-encrypted-data con i percorsi dei file locali per la lettura dei dati in chiaro e salvare l'output criptato.
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, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java 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, devi innanzitutto scoprire come utilizzare PHP su Google Cloud e installare l'SDK PHP 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.
Quando si utilizzano JSON e l'API REST, i contenuti devono essere codificati in base-64 prima di poter essere criptati da Cloud KMS.
Per criptare i dati, effettua una richiesta POST
e fornisci il progetto e i dati appropriati
le informazioni chiave e specificare il testo con codifica Base64 da criptare
Campo plaintext
del corpo della richiesta.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name:encrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"plaintext\": \"base64-encoded-input\"}"
Ecco un payload di esempio con dati codificati in base64:
{ "plaintext": "U3VwZXIgc2VjcmV0IHRleHQgdGhhdCBtdXN0IGJlIGVuY3J5cHRlZAo=", }
Disabilita o pianifica l'eliminazione della versione della chiave precedente
Se hai ruotato la chiave in risposta a un sospetto incidente, dopo hanno ricriptato i dati, disattivano o pianificano l'eliminazione la versione precedente della chiave.
Disabilita una versione della chiave abilitata
Solo una versione della chiave abilitata può essere disabilitata. utilizzando il metodo UpdateCryptoKeyVersion
.
Console
Vai alla pagina Gestione delle chiavi nella console Google Cloud.
Fai clic sul nome del keyring che contiene la chiave di cui hai specificato la versione viene disattivato.
Fai clic sulla chiave di cui vuoi disattivare la versione.
Seleziona la casella accanto alle versioni della chiave che vuoi disattivare.
Fai clic su Disattiva nell'intestazione.
Nel messaggio di conferma, fai clic su Disattiva.
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 disable key-version \ --key key \ --keyring key-ring \ --location location
Sostituisci key-version con la versione della chiave da disattivare. Sostituisci key con il nome della chiave. Sostituisci key-ring con il nome del keyring in cui si trova la chiave. Sostituisci location con la località di Cloud KMS per il keyring.
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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go Cloud KMS.
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.
Pianificare l'eliminazione di una versione della chiave
Solo le versioni della chiave che sono Abilitate o Disattivate possono essere pianificate per l'eliminazione. Questo
fa con il metodo
DestroyCryptoKeyVersion
Console
Nella console Google Cloud, vai alla Gestione delle chiavi.
Seleziona la casella accanto alla versione della chiave per cui vuoi pianificare la migrazione la distruzione di massa.
Fai clic su Elimina nell'intestazione.
Nel prompt di conferma, inserisci il nome della chiave e fai clic su Pianifica distruzione.
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 destroy KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
Sostituisci quanto segue:
KEY_VERSION
: il numero della versione della chiave che vuoi distruggere.KEY_NAME
: il nome della chiave per la quale vuoi eliminare una chiave completamente gestita.KEY_RING
: il nome del keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.
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 innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go Cloud KMS.
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
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Elimina la versione di una chiave chiamando il metodo CryptoKeyVersions.destroy .
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \ --request "POST" \ --header "authorization: Bearer TOKEN"