Cette page explique comment utiliser votre propre clé de chiffrement, appelée clé de chiffrement fournie par le client, avec Cloud Storage. Pour connaître les autres options de chiffrement dans Cloud Storage, consultez la page Options de chiffrement des données.
Générer votre propre clé de chiffrement
Il existe de nombreuses façons de générer une clé de chiffrement AES-256 codée en Base64. Voici quelques exemples :
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Importer avec votre clé de chiffrement
Pour importer un objet en utilisant les clés de chiffrement fournies par le client, procédez comme suit :
Console
La console Google Cloud ne peut pas être utilisée pour importer un objet avec une clé de chiffrement fournie par le client. Utilisez plutôt Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage cp
avec l'option --encryption-key
:
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=YOUR_ENCRYPTION_KEY
Où :
SOURCE_DATA
est l'emplacement source des données que vous chiffrez. Il peut s'agir de n'importe quel emplacement source compatible avec la commandecp
, par exemple, un fichier local tel queDesktop/dogs.png
ou un autre objet Cloud Storage tel quegs://my-bucket/pets/old-dog.png
.BUCKET_NAME
est le nom du bucket de destination pour cette commande de copie. Par exemple,my-bucket
.OBJECT_NAME
est le nom de l'objet chiffré final. Par exemple,pets/new-dog.png
.YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 que vous souhaitez utiliser pour chiffrer l'objet importé.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez la commande
cURL
pour appeler l'API JSON avec une requêtePOST
Object :curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
Où :
OBJECT
correspond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dogs.png
OBJECT_CONTENT_TYPE
correspond au type de contenu de l'objet. Exemple :image/png
YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 servant au chiffrement de l'objet importé.HASH_OF_YOUR_KEY
correspond au hachage SHA-256 de la clé AES-256.BUCKET_NAME
correspond au nom du bucket dans lequel vous importez l'objet. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous importez. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Pour en savoir plus sur les en-têtes spécifiques au chiffrement, consultez la page En-têtes de requêtes de chiffrement.
API XML
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API XML avec une requêtePUT
OBJECT :curl -X -i PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Où :
OBJECT
correspond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dogs.png
OBJECT_CONTENT_TYPE
correspond au type de contenu de l'objet. Exemple :image/png
YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 servant au chiffrement de l'objet importé.HASH_OF_YOUR_KEY
correspond au hachage SHA-256 de la clé AES-256.BUCKET_NAME
correspond au nom du bucket dans lequel vous importez l'objet. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous importez. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Pour en savoir plus sur les en-têtes spécifiques au chiffrement, consultez la page En-têtes de requêtes de chiffrement.
Télécharger les objets que vous avez chiffrés
Pour télécharger un objet stocké dans Cloud Storage et chiffré avec une clé de chiffrement fournie par le client, procédez comme suit :
Console
La console Google Cloud ne peut pas être utilisée pour télécharger des objets chiffrés avec des clés de chiffrement fournies par le client. Utilisez plutôt Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage cp
avec l'option --decryption-keys
:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME OBJECT_DESTINATION --decryption-keys=YOUR_ENCRYPTION_KEY
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous téléchargez. Exemple :my-bucket
OBJECT_NAME
correspond au nom de l'objet que vous téléchargez. Exemple :pets/dog.png
OBJECT_DESTINATION
correspond à l'emplacement où vous voulez enregistrer l'objet. Par exemple,Desktop
.YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 utilisée pour chiffrer l'objet lors de son importation.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez la commande
cURL
pour appeler l'API JSON avec une requêteGET
Object :curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
Où :
YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 utilisée pour chiffrer l'objet.HASH_OF_YOUR_KEY
correspond au hachage SHA-256 de la clé AES-256.SAVE_TO_LOCATION
correspond à l'emplacement où vous voulez enregistrer l'objet. Exemple :Desktop/dog.png
BUCKET_NAME
correspond au nom du bucket à partir duquel vous téléchargez l'objet. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous téléchargez. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Pour en savoir plus sur les en-têtes spécifiques au chiffrement, consultez la page En-têtes de requêtes de chiffrement.
API XML
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API XML avec une requêteGET
OBJECT :curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Où :
YOUR_ENCRYPTION_KEY
correspond à la clé AES-256 utilisée pour chiffrer l'objet.HASH_OF_YOUR_KEY
correspond au hachage SHA-256 de la clé AES-256.SAVE_TO_LOCATION
correspond à l'emplacement où vous voulez enregistrer l'objet. Exemple :Desktop/dog.png
BUCKET_NAME
correspond au nom du bucket à partir duquel vous téléchargez l'objet. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous téléchargez. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Pour en savoir plus sur les en-têtes spécifiques au chiffrement, consultez la page En-têtes de requêtes de chiffrement.
Effectuer une rotation de vos clés de chiffrement
Pour effectuer la rotation d'une clé de chiffrement fournie par le client, procédez comme suit :
Console
La console Google Cloud ne peut pas être utilisée pour effectuer la rotation des clés de chiffrement fournies par le client. Utilisez plutôt Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage objects update
avec les options appropriées :
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=NEW_KEY --decryption-keys=OLD_KEY
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet dont la clé fait l'objet d'une rotation. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de l'objet dont la clé fait l'objet d'une rotation. Par exemple,pets/dog.png
.NEW_KEY
correspond à la nouvelle clé de chiffrement fournie par le client que vous souhaitez utiliser pour chiffrer l'objet.OLD_KEY
est la clé de chiffrement fournie par le client actuelle utilisée pour chiffrer l'objet.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez la commande
cURL
pour appeler l'API JSON avec une requêtePOST
Object :curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: NEW_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_NEW_KEY" \ -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"
Où :
NEW_ENCRYPTION_KEY
correspond à la nouvelle clé AES-256 servant au chiffrement de l'objet.HASH_OF_NEW_KEY
correspond au hachage SHA-256 de la nouvelle clé AES-256.OLD_ENCRYPTION_KEY
correspond à la clé AES-256 actuelle utilisée pour chiffrer l'objet.HASH_OF_OLD_KEY
correspond au hachage SHA-256 actuel de la clé AES-256.BUCKET_NAME
correspond au nom du bucket contenant l'objet concerné. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet dont les clés font l'objet d'une rotation. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Pour en savoir plus sur les en-têtes spécifiques au chiffrement, consultez la page En-têtes de requêtes de chiffrement.
API XML
L'API XML n'accepte pas la rotation d'une clé de chiffrement fournie par le client via la réécriture d'objets. Pour appliquer une nouvelle clé fournie par le client à un objet à l'aide de l'API XML, procédez comme suit :
Étapes suivantes
En savoir plus sur les clés de chiffrement fournies par le client.
Découvrez comment effectuer la rotation de votre clé de chiffrement fournie par le client vers une clé Cloud KMS.