Questa pagina descrive come utilizzare una chiave di crittografia Cloud Key Management Service con Cloud Storage, inclusa l'impostazione delle chiavi predefinite sui bucket e l'aggiunta di chiavi a singoli oggetti. Una chiave di crittografia Cloud KMS è una chiave di crittografia gestita dal cliente (CMEK). Queste chiavi vengono create e gestite tramite Cloud KMS e archiviate come chiavi software o esternamente.
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 che memorizzerà le chiavi di crittografia:
Se sei proprietario del progetto in cui verranno archiviate le chiavi, molto probabilmente disponi dell'autorizzazione necessaria.
Se prevedi di creare nuovi keyring e chiavi di crittografia, devi disporre dell'autorizzazione
cloudkms.keyRings.create
ecloudkms.cryptoKeys.create
.Indipendentemente dal fatto che tu preveda di utilizzare portachiavi e chiavi nuovi o esistenti, devi disporre dell'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 riportate sopra sono contenute nel ruolo Amministratore Cloud KMS.
Consulta Utilizzo di IAM con Cloud KMS per istruzioni su come ottenere questo o altri ruoli Cloud KMS.
Avere un keyring Cloud KMS e almeno una chiave all'interno del keyring.
Disporre dell'autorizzazione sufficiente per lavorare con gli oggetti nel bucket Cloud Storage:
Se sei proprietario del progetto che contiene il bucket, molto probabilmente disponi dell'autorizzazione necessaria.
Se utilizzi IAM, devi disporre dell'
storage.objects.create
autorizzazione per scrivere oggetti nel bucket e dell'autorizzazionestorage.objects.get
per leggere oggetti dal bucket. Consulta Utilizzo delle autorizzazioni IAM per istruzioni su come ottenere un ruolo, ad esempio Amministratore oggetti Storage, che disponga di queste autorizzazioni.Se utilizzi gli ACL, devi disporre dell'autorizzazione
WRITER
con ambito bucket per scrivere oggetti nel bucket e dell'autorizzazioneREADER
con ambito oggetto per leggere gli oggetti dal bucket. Per le istruzioni su come fare, vedi Impostazione delle ACL.
-
Recupera l'indirizzo email dell'agente di servizio associato al progetto che contiene il bucket Cloud Storage. Se esegui questo passaggio, crei automaticamente l'agente di servizio se non esiste.
Assegna una chiave Cloud KMS a un service agent
Per utilizzare le chiavi CMEK, concedi all'agente di servizio Cloud Storage associato al tuo bucket l'autorizzazione a utilizzare la tua chiave Cloud KMS per la crittografia e la decrittografia:
Console
- Nella console Trusted Cloud , vai alla pagina Gestione chiavi.
Fai clic sul nome del keyring che contiene la chiave che vuoi utilizzare.
Seleziona la casella di controllo relativa al tasto che ti interessa.
La scheda Autorizzazioni nel riquadro di destra della finestra diventa disponibile.
Nella finestra di dialogo Aggiungi entità, specifica l'indirizzo email dell'agente di servizio Cloud Storage a cui stai concedendo l'accesso.
Nel menu a discesa Seleziona un ruolo, seleziona Cloud KMS CryptoKey Encrypter/Decrypter.
Fai clic su Aggiungi.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Trusted Cloud , consulta 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 a 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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'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.s3ns-system.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 che hai creato nel passaggio 2.KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.
API XML
L'API XML non può essere utilizzata per assegnare un Cloud KMS a un service agent. Utilizza invece uno degli altri strumenti di Cloud Storage, ad esempio gcloud CLI.
Utilizzare le chiavi di crittografia predefinite
Impostare 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 Trusted Cloud , vai alla pagina Bucket in 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 il bucket utilizza attualmente una chiave Cloud KMS, modifica la chiave Cloud KMS nel menu a discesa o rimuovila selezionando il pulsante di opzione Google Cloud-powered encryption key.
Fai clic su Salva.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Trusted Cloud , consulta 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 del 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 nel bucket.
In caso di esito positivo, la risposta è simile alla seguente:
Updating gs://my-bucket/... Completed 1
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
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
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'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 } }
Utilizza
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.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=encryption"
Dove:
JSON_FILE_NAME
è il percorso del file JSON che hai creato nel passaggio 2.BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
API XML
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'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>
Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
Bucket e il parametro della stringa di queryencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?encryptionConfig"
Dove:
XML_FILE_NAME
è il percorso del file XML che hai creato nel passaggio 2.BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
Visualizzare la chiave predefinita per un bucket
Per visualizzare la chiave Cloud KMS attualmente impostata come predefinita per il tuo bucket:
Console
- Nella console Trusted Cloud , vai alla pagina Bucket in 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 corrente per il bucket viene visualizzata nel campo Chiave di crittografia.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Trusted Cloud , consulta 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
.
In caso di esito positivo, la risposta è simile alla seguente:
default_kms_key: KEY_RESOURCE
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiestaGET
Bucket che includa ilfields
desiderato:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API XML con una richiestaGET
Bucket che includa il parametro di queryencryption
:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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>
Criptare un oggetto con una chiave Cloud KMS
Puoi criptare un singolo oggetto con una chiave Cloud KMS. Ciò è utile se vuoi utilizzare una chiave diversa da quella predefinita impostata nel bucket o se non hai impostato una chiave predefinita nel bucket. Il nome della risorsa chiave utilizzata per criptare l'oggetto è memorizzato nei metadati dell'oggetto.
Console
La Trusted Cloud console non può essere utilizzata per specificare le chiavi Cloud KMS in base al singolo oggetto. Utilizza 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 posizione di origine dei dati che stai criptando. Può essere qualsiasi posizione 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 saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Aggiungi i dati dell'oggetto al corpo della richiesta.
Utilizza
cURL
per chiamare l'API JSON con una richiesta diPOST
oggetto:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.s3nsapis.fr/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 codificato in URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
, codificato come URLpets%2Fdog.png
.KEY_RESOURCE
è la risorsa chiave Cloud KMS.
API XML
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.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 $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-kms-key-name: KEY_RESOURCE" \ "https://storage.s3nsapis.fr/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 codificato in URL dell'oggetto che stai caricando. Ad esempio,pets/dog.png
, codificato come URLpets%2Fdog.png
.KEY_RESOURCE
è la tua risorsa chiave Cloud KMS.
Esegui la rotazione 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 Trusted Cloud non può essere utilizzata per modificare le chiavi di crittografia in base al singolo oggetto. Utilizza 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 eseguendo la rotazione della chiave. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto la cui chiave stai ruotando. Ad esempio,pets/dog.png
.KMS_KEY
è la risorsa chiave Cloud KMS che vuoi utilizzare per criptare l'oggetto.CSEK_KEY
è la chiave di crittografia fornita dal cliente attualmente utilizzata nell'oggetto.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiesta diPOST
oggetto: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.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
Dove:
OLD_ENCRYPTION_KEY
è la chiave AES-256 corrente utilizzata per criptare l'oggetto.HASH_OF_OLD_KEY
è l'hash SHA-256 corrente per la tua chiave AES-256.BUCKET_NAME
è il nome del bucket contenente 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
, codificato come 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 tramite la riscrittura dell'oggetto. Per eseguire una rotazione di questo tipo utilizzando l'API XML, devi:
Identificare la chiave utilizzata per criptare un oggetto
Per trovare la chiave Cloud KMS utilizzata per criptare un oggetto:
Console
- Nella console Trusted Cloud , vai alla pagina Bucket in 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.
Vai all'oggetto, che potrebbe trovarsi in una cartella.
Nella colonna Crittografia, passa il mouse sopra la voce relativa all'oggetto che ti interessa.
Il nome e la versione della chiave vengono visualizzati nel 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
.
In caso di esito positivo, la risposta è simile alla seguente:
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiesta diGET
oggetto:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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
, codificato come URLpets%2Fdog.png
.
API XML
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API XML con una richiestaGET
Object:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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
, codificato come URLpets%2Fdog.png
.
Decriptare un oggetto
La decrittografia di un oggetto criptato con una chiave Cloud KMS viene eseguita automaticamente, a condizione che l'agente di servizio pertinente abbia accesso alla chiave. Per ulteriori informazioni, vedi Service agent con CMEK.
Passaggi successivi
- Scopri di più sulle CMEK in Cloud Storage.
- Scopri di più sulle altre opzioni di crittografia disponibili in Cloud Storage.
- Ruota le chiavi Cloud KMS.
- Esplora altri prodotti che possono funzionare 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.