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 la page Configurer l'authentification pour les 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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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_DATAest 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.pngou un autre objet Cloud Storage tel quegs://my-bucket/pets/old-dog.png.BUCKET_NAMEest le nom du bucket de destination pour cette commande de copie. Par exemple,my-bucket.OBJECT_NAMEest le nom de l'objet chiffré final. Par exemple,pets/new-dog.png.YOUR_ENCRYPTION_KEYcorrespond à 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 la page Configurer l'authentification pour les 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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêtePOSTObject :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ù :
OBJECTcorrespond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dogs.pngOBJECT_CONTENT_TYPEcorrespond au type de contenu de l'objet. Exemple :image/png.YOUR_ENCRYPTION_KEYcorrespond à la clé AES-256 servant au chiffrement de l'objet importé.HASH_OF_YOUR_KEYcorrespond au hachage SHA-256 de la clé AES-256.BUCKET_NAMEcorrespond au nom du bucket dans lequel vous importez l'objet. Exemple :my-bucketOBJECT_NAMEcorrespond 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 CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API XML avec une requêtePUTOBJECT :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ù :
OBJECTcorrespond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dogs.pngOBJECT_CONTENT_TYPEcorrespond au type de contenu de l'objet. Exemple :image/png.YOUR_ENCRYPTION_KEYcorrespond à la clé AES-256 servant au chiffrement de l'objet importé.HASH_OF_YOUR_KEYcorrespond au hachage SHA-256 de la clé AES-256.BUCKET_NAMEcorrespond au nom du bucket dans lequel vous importez l'objet. Exemple :my-bucketOBJECT_NAMEcorrespond 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_NAMEcorrespond au nom du bucket contenant l'objet que vous téléchargez. Exemple :my-bucketOBJECT_NAMEcorrespond au nom de l'objet que vous téléchargez. Exemple :pets/dog.pngOBJECT_DESTINATIONcorrespond à l'emplacement où vous voulez enregistrer l'objet. Par exemple,Desktop.YOUR_ENCRYPTION_KEYcorrespond à 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 la page Configurer l'authentification pour les 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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêteGETObject :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_KEYcorrespond à la clé AES-256 utilisée pour chiffrer l'objet.HASH_OF_YOUR_KEYcorrespond au hachage SHA-256 de la clé AES-256.SAVE_TO_LOCATIONcorrespond à l'emplacement où vous voulez enregistrer l'objet. Exemple :Desktop/dog.pngBUCKET_NAMEcorrespond au nom du bucket à partir duquel vous téléchargez l'objet. Exemple :my-bucketOBJECT_NAMEcorrespond 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 CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API XML avec une requêteGETOBJECT :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_KEYcorrespond à la clé AES-256 utilisée pour chiffrer l'objet.HASH_OF_YOUR_KEYcorrespond au hachage SHA-256 de la clé AES-256.SAVE_TO_LOCATIONcorrespond à l'emplacement où vous voulez enregistrer l'objet. Exemple :Desktop/dog.pngBUCKET_NAMEcorrespond au nom du bucket à partir duquel vous téléchargez l'objet. Exemple :my-bucketOBJECT_NAMEcorrespond 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_NAMEcorrespond au nom du bucket contenant l'objet dont la clé fait l'objet d'une rotation. Exemple :my-bucket.OBJECT_NAMEcorrespond au nom de l'objet dont la clé fait l'objet d'une rotation. Par exemple,pets/dog.png.NEW_KEYcorrespond à la nouvelle clé de chiffrement fournie par le client que vous souhaitez utiliser pour chiffrer l'objet.OLD_KEYest 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 la page Configurer l'authentification pour les 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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
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 la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêtePOSTObject :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_KEYcorrespond à la nouvelle clé AES-256 servant au chiffrement de l'objet.HASH_OF_NEW_KEYcorrespond au hachage SHA-256 de la nouvelle clé AES-256.OLD_ENCRYPTION_KEYcorrespond à la clé AES-256 actuelle utilisée pour chiffrer l'objet.HASH_OF_OLD_KEYcorrespond au hachage SHA-256 actuel de la clé AES-256.BUCKET_NAMEcorrespond au nom du bucket contenant l'objet concerné. Exemple :my-bucketOBJECT_NAMEcorrespond 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.