In questa pagina viene descritto come utilizzare una chiave di crittografia di Cloud Key Management Service con Cloud Storage, inclusa l'impostazione di chiavi predefinite nei bucket e l'aggiunta di chiavi a 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 cluster SSL o esternamente.
Prima di iniziare
Prima di utilizzare questa funzionalità in Cloud Storage, devi:
Abilitare l'API Cloud KMS per il progetto che archivierà le chiavi di crittografia.
Disponi di autorizzazioni sufficienti per il progetto che archivierà le tue chiavi di crittografia:
Se sei il proprietario del progetto che archivierà le tue chiavi, molto probabilmente hai l'autorizzazione necessaria.
Se prevedi di creare nuovi keyring e chiavi di crittografia, devi avere l'autorizzazione
cloudkms.keyRings.create
ecloudkms.cryptoKeys.create
.Sia che prevedi di utilizzare keyring nuovi o esistenti e chiavi, devi avere l'autorizzazione
cloudkms.cryptoKeys.setIamPolicy
per le chiavi che utilizzerai per la crittografia.Questa autorizzazione consente di concedere agli agenti di servizio Cloud Storage l'accesso alle chiavi Cloud KMS.
Le autorizzazioni di cui sopra sono contenute nel ruolo Amministratore Cloud KMS.
Per istruzioni su come ottenere questo o altri ruoli Cloud KMS, consulta Utilizzo di IAM con Cloud KMS.
Avere un keyring Cloud KMS e avere almeno una chiave all'interno del keyring.
Il keyring deve trovarsi nella stessa posizione dei dati che vuoi criptare, ma può trovarsi in un progetto diverso. Per le località Cloud KMS disponibili, consulta le località di Cloud KMS.
ASIA1
EUR4
NAM4
Autorizzazione sufficiente 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 avere l'autorizzazione
storage.objects.create
per scrivere oggetti nel bucket e l'autorizzazionestorage.objects.get
per leggere gli oggetti dal bucket. Per istruzioni su come ottenere un ruolo, ad esempio Amministratore oggetti Storage, in possesso di queste autorizzazioni, consulta Utilizzo delle autorizzazioni IAM.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 oggetto per leggere gli oggetti dal bucket. Per istruzioni su come eseguire questa operazione, consulta Impostazione degli ACL.
-
Recupera l'indirizzo email dell'agente di servizio associato al progetto che contiene il tuo bucket Cloud Storage. Se esegui questo passaggio, crei automaticamente l'agente di servizio se non esiste attualmente.
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 all'autorizzazione del bucket di utilizzare la chiave Cloud KMS per la crittografia e la decriptazione:
Console
- Apri il browser Cloud Key Management Service Keys nella console Google Cloud.
Apri il browser Cloud KMS Keys Fai clic sul nome del keyring contenente la chiave desiderata.
Seleziona la casella di controllo relativa alla chiave che ti interessa.
La scheda Autorizzazioni nel riquadro della finestra a destra diventa disponibile.
Nella finestra di dialogo Aggiungi entità, specifica l'indirizzo email dell'agente di servizio Cloud Storage a cui concedi l'accesso.
Nel menu a discesa Seleziona un ruolo, seleziona Crittografia/decrittografia CryptoKey Cloud KMS.
Fai clic su Aggiungi.
Per scoprire di più su come ricevere informazioni dettagliate sugli errori delle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta la sezione Risoluzione dei problemi.
Riga di comando
gcloud
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 chiave Cloud KMS:
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Dove:
PROJECT_STORING_OBJECTS
è l'ID o il numero per il progetto contenente gli oggetti che vuoi criptare o decriptare. Ad esempio,my-pet-project
.KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
gsutil
Utilizza il comando gsutil kms authorize
per concedere all'agente di servizio associato al tuo bucket l'autorizzazione per criptare e decriptare gli oggetti utilizzando la chiave Cloud KMS:
gsutil kms authorize -p PROJECT_STORING_OBJECTS -k KEY_RESOURCE
Dove:
PROJECT_STORING_OBJECTS
è l'ID o il numero per il progetto contenente gli oggetti che vuoi criptare o decriptare. Ad esempio,my-pet-project
.KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
Se vuoi rimuovere l'autorizzazione concessa, devi utilizzare Google Cloud CLI o la console Google Cloud.
Librerie client
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
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 OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"
Dove:
JSON_FILE_NAME
è il percorso del file JSON creato nel passaggio 2.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
API XML
Non è possibile 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 bucket desiderato.
Nella pagina dei dettagli del 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 una chiave Cloud KMS, seleziona il pulsante di opzione Chiave gestita dal cliente, quindi scegli una delle chiavi disponibili nel menu a discesa associato.
Se al momento il bucket utilizza una chiave Cloud KMS, cambia la chiave di Cloud KMS nel menu a discesa o rimuovi la chiave di Cloud KMS selezionando il pulsante di opzione Chiave gestita da Google.
Fai clic su Salva.
Per scoprire di più su come ricevere informazioni dettagliate sugli errori delle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta la sezione Risoluzione dei problemi.
Riga di comando
gcloud
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. Ad esempio,--default-encryption-key=projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.--clear-default-encryption-key
, se vuoi rimuovere la chiave predefinita nel bucket.
Se l'operazione ha esito positivo, la risposta avrà il seguente aspetto:
Updating gs://my-bucket/... Completed 1
gsutil
Utilizza il comando gsutil kms encryption
:
gsutil kms encryption STATE
gs://BUCKET_NAME
Dove:
STATE
è lo stato desiderato della chiave predefinita nel bucket. Utilizza uno dei seguenti formati:-k
e una risorsa chiave Cloud KMS, se vuoi aggiungere o modificare una chiave predefinita. Ad esempio,-k projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.-d
, se vuoi rimuovere la chiave predefinita nel bucket.
BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
Se l'operazione ha esito positivo, la risposta avrà il seguente aspetto:
Setting default KMS key for bucket gs://my-bucket...
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene impostata una chiave di crittografia predefinita gestita dal cliente in un bucket:
Nell'esempio seguente la chiave di crittografia gestita dal cliente predefinita viene rimossa da un bucket:
API REST
API JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Crea un file JSON contenente le seguenti informazioni:
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Dove
KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.Per rimuovere la chiave Cloud KMS predefinita da un bucket, utilizza il seguente file nel file JSON:
{ "encryption": { "defaultKmsKeyName": null } }
Utilizza
cURL
per chiamare l'API JSON con una richiesta del bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_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 nel passaggio 2.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
API XML
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Crea un file XML contenente le seguenti informazioni:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Dove
KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.Per rimuovere la chiave Cloud KMS predefinita da un bucket, utilizza il seguente file nel file XML:
<EncryptionConfiguration></EncryptionConfiguration>
Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
del bucket e un paraparametro della stringa di queryencryption
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dove:
XML_FILE_NAME
è il percorso del file XML creato al passaggio 2.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.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 bucket:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul bucket desiderato.
Nella pagina dei dettagli del bucket, fai clic sulla scheda Configurazione.
La chiave predefinita corrente del tuo bucket viene visualizzata nel campo Chiave di crittografia.
Per scoprire di più su come ricevere informazioni dettagliate sugli errori delle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta la sezione Risoluzione dei problemi.
Riga di comando
gcloud
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'operazione ha esito positivo, la risposta avrà il seguente aspetto:
default_kms_key: KEY_RESOURCE
gsutil
Utilizza il comando gsutil kms encryption
:
gsutil kms encryption gs://BUCKET_NAME
Dove BUCKET_NAME
è il nome del bucket
di cui vuoi visualizzare la chiave. Ad esempio, my-bucket
.
Se l'operazione ha esito positivo, la risposta avrà il seguente aspetto:
Default encryption key for gs://my-bucket: KEY_RESOURCE
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 chiave KMS predefinita nella risposta.API REST
API JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Utilizza
cURL
per chiamare l'API JSON con una richiesta di BucketGET
che include lafields
desiderata:curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Dove:
OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.BUCKET_NAME
è il nome del bucket di cui vuoi visualizzare la chiave. Ad esempio,my-bucket
.
La risposta è simile all'esempio seguente:
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
API XML
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Utilizza
cURL
per chiamare l'API XML con una richiestaGET
del bucket che include il parametro di ricercaencryption
:curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dove:
OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.BUCKET_NAME
è il nome del bucket di cui vuoi visualizzare la chiave. Ad esempio,my-bucket
.
La risposta è simile all'esempio seguente:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Cripta un oggetto con una chiave Cloud KMS
Puoi criptare un singolo oggetto con una chiave Cloud KMS. Questo è utile se vuoi usare 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
La console Google Cloud non può essere utilizzata per specificare le chiavi Cloud KMS in base a ogni oggetto. Usa l'interfaccia a riga di comando gcloud o le librerie client.
Riga di comando
gcloud
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 posizione di origine dei dati che stai criptando. Può essere qualsiasi posizione di origine supportata dal comandocp
. Ad esempio:gs://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. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
gsutil
Aggiungi la seguente opzione alla sezione
[GSUtil]
del tuo file di configurazione.boto:encryption_key = KEY_RESOURCE
Dove
KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.Scrivi un oggetto nel bucket come faresti normalmente, ad esempio con
gsutil cp
ogsutil rewrite
.
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Aggiungi i dati dell'oggetto al corpo della richiesta.
Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
Object:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_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
.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.OBJECT_CONTENT_TYPE
è il tipo di contenuto dell'oggetto. Ad esempio:image/png
.BUCKET_NAME
è il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome codificato nell'URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
con codifica URL comepets%2Fdog.png
.KEY_RESOURCE
è la risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
API XML
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Aggiungi i dati dell'oggetto al corpo della richiesta.
Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
Object:curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_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
.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.OBJECT_CONTENT_TYPE
è il tipo di contenuto dell'oggetto. Ad esempio:image/png
.BUCKET_NAME
è il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome codificato nell'URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
con codifica URL comepets%2Fdog.png
.KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
Ruota da una chiave fornita dal cliente a una chiave Cloud KMS
Se i tuoi oggetti sono criptati con chiavi di crittografia fornite dal cliente, puoi ruotarle per utilizzare le chiavi Cloud KMS riscrivendo l'oggetto:
Console
La console Google Cloud non può essere utilizzata per modificare le chiavi di crittografia in base agli oggetti. Usa l'interfaccia a riga di comando gcloud o le librerie client.
Riga di comando
gcloud
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 la chiave è in rotazione. Ad esempio,pets/dog.png
.KMS_KEY
è la risorsa chiave per Cloud KMS che vuoi utilizzare per criptare l'oggetto. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.CSEK_KEY
è la chiave di crittografia fornita dal cliente corrente utilizzata sull'oggetto.
gsutil
Aggiungi le seguenti opzioni alla sezione
[GSUtil]
del tuo file di configurazione del bot:encryption_key = KEY_RESOURCE decryption_key1 = CUSTOMER_SUPPLIED_ENCRYPTION_KEY
Dove:
KEY_RESOURCE
è la tua risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.CUSTOMER_SUPPLIED_ENCRYPTION_KEY
è la chiave di crittografia attuale del tuo oggetto.
Utilizza il comando
gsutil rewrite
con il flag-k
:gsutil rewrite -k gs://BUCKET_NAME/OBJECT_NAME
Dove:
BUCKET_NAME
è il nome del bucket che contiene l'oggetto pertinente. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto pertinente. Ad esempio,pets/dog.png
.
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
Object:curl -X POST \ -H "Authorization: Bearer OAUTH2_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:
OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.OLD_ENCRYPTION_KEY
è l'attuale chiave AES-256 utilizzata per criptare l'oggetto.HASH_OF_OLD_KEY
è l'hash SHA-256 attuale per la chiave AES-256.BUCKET_NAME
è il nome del bucket che contiene l'oggetto pertinente. Ad esempio,my-bucket
.OBJECT_NAME
è il nome codificato nell'URL dell'oggetto di cui stai ruotando le chiavi. Ad esempio,pets/dog.png
ha la codifica URL comepets%2Fdog.png
.KEY_RESOURCE
è la risorsa chiave per Cloud KMS. Ad esempio,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
API XML
L'API XML non supporta la rotazione da una chiave di crittografia fornita dal cliente a una chiave Cloud KMS tramite l'oggetto di riscrittura. Per eseguire tale rotazione 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.
Si apre la pagina Dettagli bucket, con la scheda Oggetti selezionata.
Vai all'oggetto, che potrebbe essere posizionato in una cartella.
Nella colonna Crittografia, passa il mouse sopra la voce relativa all'oggetto desiderato.
Il nome e la versione della chiave vengono visualizzati nel formato:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Riga di comando
gcloud
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'operazione ha esito positivo, la risposta avrà il seguente aspetto:
kms_key: projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1
gsutil
Utilizza il comando gsutil stat
:
gsutil stat gs://BUCKET_NAME/OBJECT_NAME
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'operazione ha esito positivo, la risposta avrà il seguente aspetto:
gs://my-bucket/pets/dog.png: ... KMS key: projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1 ...
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per la visualizzazione dei metadati di un oggetto e cerca il campo Nome chiave KMS nella risposta.Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per la visualizzazione dei metadati di un oggetto e cerca il campo Nome chiave KMS nella risposta.Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per la visualizzazione dei metadati di un oggetto e cerca il campo Nome 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 in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per visualizzare la chiave KMS associata a un oggetto, segui le istruzioni per la visualizzazione dei metadati di un oggetto e cerca il campo Nome chiave KMS nella risposta.PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne