Questa pagina descrive come utilizzare una chiave di crittografia di Cloud Key Management Service con Cloud Storage, inclusa l'impostazione delle chiavi predefinite sui bucket e l'aggiunta di chiavi ai singoli oggetti. Una chiave di crittografia Cloud KMS è una chiave di crittografia gestita dal cliente. Queste chiavi vengono create e gestite tramite Cloud KMS e archiviate come chiavi software, in un clusterHSM o esternamente.
Creazione manuale o automatica delle chiavi
Puoi creare manualmente le CMEK o utilizzare Cloud KMS Autokey (anteprima). Autokey semplifica la creazione e la gestione delle chiavi CMEK automatizzando il provisioning e l'assegnazione. Con Autokey, non è necessario eseguire in anticipo il provisioning di keyring, chiavi e account di servizio. Vengono invece generati on demand come parte della creazione delle risorse di Cloud Storage.
L'utilizzo delle chiavi generate da Autokey può aiutarti ad allinearti in modo coerente agli standard di settore e alle best practice per la sicurezza dei dati, come livello di protezione, separazione dei compiti, rotazione delle chiavi, posizione e granularità delle chiavi. Per maggiori informazioni, vedi Panoramica di Autokey.
Prima di iniziare
Prima di utilizzare questa funzionalità in Cloud Storage, devi:
Abilita l'API Cloud KMS per il progetto in cui verranno archiviate le chiavi di crittografia.
Disporre di autorizzazioni sufficienti per il progetto in cui verranno archiviate le chiavi di crittografia:
Se sei il proprietario del progetto in cui verranno archiviate le chiavi, molto probabilmente disponi dell'autorizzazione necessaria.
Se prevedi di creare nuovi keyring e nuove chiavi di crittografia, devi disporre delle autorizzazioni
cloudkms.keyRings.create
ecloudkms.cryptoKeys.create
.Che tu intenda utilizzare keyring e chiavi nuovi o esistenti, devi disporre dell'autorizzazione
cloudkms.cryptoKeys.setIamPolicy
per le chiavi che utilizzerai per la crittografia.Questa autorizzazione ti consente di concedere agli agenti di servizio di Cloud Storage l'accesso alle chiavi Cloud KMS.
Le autorizzazioni precedenti sono contenute nel ruolo Amministratore Cloud KMS.
Consulta Utilizzo di IAM con Cloud KMS per le istruzioni su come ottenere questo o altri ruoli di Cloud KMS.
Disporre di un keyring di Cloud KMS e avere almeno una chiave all'interno del keyring.
Il keyring deve trovarsi nella stessa località dei dati che intendi criptare, ma può trovarsi in un progetto diverso. Per le località Cloud KMS disponibili, vedi Località di Cloud KMS.
Disporre di autorizzazioni sufficienti per lavorare con gli oggetti nel bucket Cloud Storage:
Se possiedi il progetto che contiene il bucket, molto probabilmente disponi dell'autorizzazione necessaria.
Se utilizzi IAM, devi disporre dell'autorizzazione
storage.objects.create
per scrivere oggetti nel bucket e dell'autorizzazionestorage.objects.get
per leggere gli oggetti dal bucket. Consulta Utilizzo delle autorizzazioni IAM per le istruzioni su come ottenere un ruolo, ad esempio Amministratore oggetti Storage che dispone di queste autorizzazioni.Se utilizzi gli ACL, devi disporre dell'autorizzazione
WRITER
con ambito a livello di bucket per scrivere oggetti nel bucket e dell'autorizzazioneREADER
con ambito a livello di bucket per leggere gli oggetti del bucket. Per le istruzioni, consulta Impostazione degli ACL.
-
Recupera l'indirizzo email dell'agente di servizio associato al progetto contenente il bucket Cloud Storage. Eseguendo questo passaggio, crei automaticamente l'agente di servizio se al momento non esiste.
Assegna una chiave Cloud KMS a un agente di servizio
Per utilizzare le chiavi di crittografia gestite dal cliente, concedi all'agente di servizio Cloud Storage associato al tuo bucket l'autorizzazione a utilizzare la chiave Cloud KMS per criptare e decriptare:
Console
- Apri il browser Cloud Key Management Service Key nella console Google Cloud.
Apri il browser Chiavi Cloud KMS Fai clic sul nome del keyring contenente la chiave che vuoi utilizzare.
Seleziona la casella di controllo della chiave desiderata.
La scheda Autorizzazioni nel riquadro a destra della finestra diventa disponibile.
Nella finestra di dialogo Aggiungi entità, specifica l'indirizzo email dell'agente di servizio Cloud Storage a cui vuoi concedere l'accesso.
Nel menu a discesa Seleziona un ruolo, seleziona Autore crittografia/decrittografia CryptoKey Cloud KMS.
Fai clic su Aggiungi.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni Cloud Storage non riuscite nella console Google Cloud, consulta la pagina Risoluzione dei problemi.
Riga di comando
Utilizza il comando gcloud storage service-agent
con il
flag --authorize-cmek
per concedere all'agente di servizio associato al tuo bucket l'autorizzazione
per criptare e decriptare gli oggetti utilizzando la
tua chiave Cloud KMS:
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Dove:
PROJECT_STORING_OBJECTS
è l'ID o il numero del progetto contenente gli oggetti che vuoi criptare o decriptare. Ad esempio,my-pet-project
.KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.
Librerie client
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS" }, } }
Dove
SERVICE_AGENT_EMAIL_ADDRESS
è l'indirizzo email associato al tuo agente di servizio. Ad esempio,service-7550275089395@gs-project-accounts.iam.gserviceaccount.com
.Utilizza
cURL
per chiamare l'API Cloud KMS con una richiestaPOST setIamPolicy
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"
Dove:
JSON_FILE_NAME
è il percorso del file JSON creato al passaggio 2.KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.
API XML
Impossibile utilizzare l'API XML per assegnare un Cloud KMS a un agente di servizio. Utilizza invece uno degli altri strumenti di Cloud Storage, come gcloud CLI.
Usa chiavi di crittografia predefinite
Imposta la chiave predefinita per un bucket
Per aggiungere, modificare o rimuovere la chiave Cloud KMS utilizzata per impostazione predefinita quando gli oggetti vengono scritti in un bucket:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che ti interessa.
Nella pagina Dettagli bucket, fai clic sulla scheda Configurazione.
Fai clic sull'icona a forma di matita associata alla voce Tipo di crittografia.
Imposta o rimuovi la chiave Cloud KMS predefinita per il bucket.
Se il bucket non utilizza attualmente una chiave Cloud KMS, seleziona il pulsante di opzione Chiave gestita dal cliente, quindi seleziona una delle chiavi disponibili nel menu a discesa associato.
Se al momento il bucket utilizza una chiave Cloud KMS, modifica la chiave Cloud KMS nel menu a discesa o rimuovi la chiave Cloud KMS selezionando il pulsante di opzione Chiave gestita da Google.
Fai clic su Salva.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni Cloud Storage non riuscite nella console Google Cloud, consulta la pagina Risoluzione dei problemi.
Riga di comando
Utilizza il comando gcloud storage buckets update
con il
flag appropriato:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Dove:
BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.FLAG
è l'impostazione desiderata per la chiave predefinita nel bucket. Utilizza uno dei seguenti formati:--default-encryption-key=
e una risorsa chiave Cloud KMS, se vuoi aggiungere o modificare una chiave predefinita.--clear-default-encryption-key
, se vuoi rimuovere la chiave predefinita dal bucket.
Se l'esito è positivo, la risposta sarà simile a:
Updating gs://my-bucket/... Completed 1
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il seguente esempio imposta una chiave di crittografia gestita dal cliente predefinita su un bucket:
Il seguente esempio rimuove la chiave di crittografia gestita dal cliente predefinita da un bucket:
API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Dove
KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.Per rimuovere la chiave Cloud KMS predefinita da un bucket, utilizza quanto segue nel file JSON:
{ "encryption": { "defaultKmsKeyName": null } }
Usa
cURL
per chiamare l'API JSON con una richiestaPATCH
Bucket:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Dove:
JSON_FILE_NAME
è il percorso del file JSON creato al passaggio 2.BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
API XML
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Crea un file XML che contenga le seguenti informazioni:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Dove
KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.Per rimuovere la chiave Cloud KMS predefinita da un bucket, utilizza quanto segue nel file XML:
<EncryptionConfiguration></EncryptionConfiguration>
Usa
cURL
per chiamare l'API XML con una richiestaPUT
Bucket e un parametro di stringa di queryencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dove:
XML_FILE_NAME
è il percorso del file XML creato al passaggio 2.BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
Visualizza la chiave predefinita per un bucket
Per visualizzare la chiave Cloud KMS attualmente impostata come predefinita per il tuo bucket:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che ti interessa.
Nella pagina Dettagli bucket, fai clic sulla scheda Configurazione.
La chiave predefinita attuale per il tuo bucket viene visualizzata nel campo Chiave di crittografia.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni Cloud Storage non riuscite nella console Google Cloud, consulta la pagina Risoluzione dei problemi.
Riga di comando
Utilizza il comando gcloud storage buckets describe
con il
flag --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_kms_key)"
Dove BUCKET_NAME
è il nome del bucket
di cui vuoi visualizzare la chiave. Ad esempio, my-bucket
.
Se l'esito è positivo, la risposta sarà simile a:
default_kms_key: KEY_RESOURCE
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS predefinita, segui le istruzioni per visualizzare i metadati di un bucket e cerca il campo della chiave KMS predefinita nella risposta.API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiesta BucketGET
che include ilfields
desiderato:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Dove
BUCKET_NAME
è il nome del bucket di cui vuoi visualizzare la chiave. Ad esempio,my-bucket
.La risposta è simile al seguente esempio:
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
API XML
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Usa
cURL
per chiamare l'API XML con una richiesta BucketGET
che include il parametro di queryencryption
:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dove
BUCKET_NAME
è il nome del bucket di cui vuoi visualizzare la chiave. Ad esempio,my-bucket
.La risposta è simile al seguente esempio:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Cripta un oggetto con una chiave Cloud KMS
Puoi criptare un singolo oggetto con una chiave Cloud KMS. Questa operazione è utile se vuoi utilizzare una chiave diversa da quella predefinita impostata nel bucket o se non hai una chiave predefinita impostata nel bucket. Il nome della risorsa chiave utilizzata per criptare l'oggetto è archiviato nei metadati dell'oggetto.
Console
Non è possibile utilizzare la console Google Cloud per specificare le chiavi Cloud KMS a livello di singolo oggetto. Usa invece gcloud CLI o le librerie client.
Riga di comando
Utilizza il comando gcloud storage cp
con il flag --encryption-key
:
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=KEY_RESOURCE
Dove:
SOURCE_DATA
è la località di origine dei dati che stai crittografando. Può essere qualsiasi località di origine supportata dal comandocp
. Ad esempiogs://my-bucket/pets/old-dog.png
.BUCKET_NAME
è il nome del bucket di destinazione per questo comando di copia. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto finale criptato. Ad esempio,pets/new-dog.png
.KEY_RESOURCE
è la risorsa chiave Cloud KMS che vuoi utilizzare per criptare l'oggetto.
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Aggiungi i dati dell'oggetto al corpo della richiesta.
Usa
cURL
per chiamare l'API JSON con una richiesta OggettoPOST
:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
Dove:
OBJECT
è il percorso dell'oggetto che stai caricando. Ad esempio,Desktop/dog.png
.OBJECT_CONTENT_TYPE
è il tipo di contenuto dell'oggetto. Ad esempio:image/png
.BUCKET_NAME
è il nome del bucket in cui carichi l'oggetto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome con codifica URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
, con codifica URLpets%2Fdog.png
.KEY_RESOURCE
è la risorsa chiave Cloud KMS.
API XML
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Aggiungi i dati dell'oggetto al corpo della richiesta.
Utilizza
cURL
per chiamare l'API XML con una richiesta di oggettoPUT
:curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-kms-key-name: KEY_RESOURCE" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Dove:
OBJECT
è il percorso dell'oggetto che stai caricando. Ad esempio,Desktop/dog.png
.OBJECT_CONTENT_TYPE
è il tipo di contenuto dell'oggetto. Ad esempio:image/png
.BUCKET_NAME
è il nome del bucket in cui carichi l'oggetto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome con codifica URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
, con codifica URLpets%2Fdog.png
.KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.
Rotazione da una chiave fornita dal cliente a una chiave Cloud KMS
Se gli oggetti sono criptati con chiavi di crittografia fornite dal cliente, puoi ruotarli per utilizzare le chiavi Cloud KMS riscrivendo l'oggetto:
Console
Non è possibile utilizzare la console Google Cloud per modificare le chiavi di crittografia in base al singolo oggetto. Usa invece gcloud CLI o le librerie client.
Riga di comando
Utilizza il comando gcloud storage objects update
con i
flag appropriati:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=KMS_KEY --decryption-keys=CSEK_KEY
Dove:
BUCKET_NAME
è il nome del bucket che contiene l'oggetto di cui stai ruotando la chiave. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto di cui stai ruotando la chiave. Ad esempio,pets/dog.png
.KMS_KEY
è la risorsa chiave di Cloud KMS che vuoi utilizzare per criptare l'oggetto.CSEK_KEY
è l'attuale chiave di crittografia fornita dal cliente utilizzata per l'oggetto.
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Usa
cURL
per chiamare l'API JSON con una richiesta OggettoPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -H "x-goog-copy-source-encryption-algorithm: AES256" \ -H "x-goog-copy-source-encryption-key: OLD_ENCRYPTION_KEY" \ -H "x-goog-copy-source-encryption-key-sha256: HASH_OF_OLD_KEY" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
Dove:
OLD_ENCRYPTION_KEY
è l'attuale chiave AES-256 utilizzata per criptare l'oggetto.HASH_OF_OLD_KEY
è l'hash SHA-256 corrente per la chiave AES-256.BUCKET_NAME
è il nome del bucket che contiene l'oggetto pertinente. Ad esempio,my-bucket
.OBJECT_NAME
è il nome con codifica URL dell'oggetto di cui stai ruotando le chiavi. Ad esempio,pets/dog.png
, con codifica URLpets%2Fdog.png
.KEY_RESOURCE
è la risorsa chiave Cloud KMS.
API XML
L'API XML non supporta la rotazione da una chiave di crittografia fornita dal cliente a una chiave Cloud KMS mediante la riscrittura dell'oggetto. Per eseguire una rotazione di questo tipo utilizzando l'API XML, devi:
.
Identifica la chiave utilizzata per criptare un oggetto
Per trovare la chiave Cloud KMS utilizzata per criptare un oggetto:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto desiderato.
Viene visualizzata la pagina Dettagli bucket, con la scheda Oggetti selezionata.
Accedi all'oggetto, che potrebbe trovarsi in una cartella.
Nella colonna Crittografia, passa il mouse sopra la voce dell'oggetto desiderato.
Il nome e la versione della chiave vengono visualizzati nel seguente formato:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Riga di comando
Utilizza il comando gcloud storage objects describe
con il
flag --format
:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(kms_key)"
Dove:
BUCKET_NAME
è il nome del bucket contenente l'oggetto criptato. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto criptato. Ad esempio,pets/dog.png
.
Se l'esito è positivo, la risposta sarà simile a:
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per visualizzare i metadati di un oggetto e cerca il campo del nome della chiave KMS nella risposta.API REST
API JSON
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Usa
cURL
per chiamare l'API JSON con una richiesta OggettoGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Dove:
BUCKET_NAME
è il nome del bucket contenente l'oggetto criptato. Ad esempio,my-bucket
.OBJECT_NAME
è il nome con codifica URL dell'oggetto criptato. Ad esempio,pets/dog.png
, con codifica URLpets%2Fdog.png
.
API XML
Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API XML con una richiesta di oggettoGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
Dove:
BUCKET_NAME
è il nome del bucket contenente l'oggetto criptato. Ad esempio,my-bucket
.OBJECT_NAME
è il nome con codifica URL dell'oggetto criptato. Ad esempio,pets/dog.png
, con codifica URLpets%2Fdog.png
.
Decriptare un oggetto
La decriptazione di un oggetto criptato con una chiave di Cloud KMS viene eseguita automaticamente, a condizione che l'agente di servizio pertinente abbia accesso alla chiave. Per ulteriori informazioni, consulta Agenti di servizio con chiavi di crittografia gestite dal cliente.
Passaggi successivi
- Scopri di più sulle chiavi di crittografia gestite dal cliente in Cloud Storage.
- Scopri di più sulle altre opzioni di crittografia disponibili in Cloud Storage.
- Ruota le chiavi Cloud KMS.
- Esplora altri prodotti compatibili con Cloud KMS.
- Scopri di più sui vincoli dei criteri dell'organizzazione
restrictNonCmekServices
erestrictCmekCryptoKeyProjects
per avere un maggiore controllo sull'utilizzo delle chiavi Cloud KMS.