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 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 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 les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de 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 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 la Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage cp avec le flag --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_KEYest 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 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 les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
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.Utilisez
cURLpour appeler l'API JSON avec une requête d'objetPOST: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. Par exemple,Desktop/dogs.png.OBJECT_CONTENT_TYPEest le 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. Par exemple,my-bucket.OBJECT_NAMEest le 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 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.Utilisez
cURLpour appeler l'API XML avec une requête d'OBJETPUT: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. Par exemple,Desktop/dogs.png.OBJECT_CONTENT_TYPEest le 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. Par exemple,my-bucket.OBJECT_NAMEest le 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 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 une clé de chiffrement fournie par le client. Utilisez plutôt la Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage cp avec le flag --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-bucket.OBJECT_NAMEcorrespond au nom de l'objet que vous téléchargez. Exemple :pets/dog.png.OBJECT_DESTINATIONcorrespond à l'emplacement où vous voulez enregistrer l'objet. Par exemple :Desktop.YOUR_ENCRYPTION_KEYest 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 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 les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
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.Utilisez
cURLpour appeler l'API JSON avec une requête d'objetGET: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_KEYest 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.png.BUCKET_NAMEcorrespond au nom du bucket à partir duquel vous téléchargez l'objet. Par exemple,my-bucket.OBJECT_NAMEest le 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 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.Utilisez
cURLpour appeler l'API XML avec une requête d'OBJETGET: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_KEYest 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.png.BUCKET_NAMEcorrespond au nom du bucket à partir duquel vous téléchargez l'objet. Par exemple,my-bucket.OBJECT_NAMEest le 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 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 la Google Cloud CLI ou les bibliothèques clientes.
Ligne de commande
Exécutez la commande gcloud storage objects update avec les flags appropriés :
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=NEW_KEY --decryption-keys=OLD_KEY
Où :
BUCKET_NAMEest le nom du bucket contenant l'objet dont la clé fait l'objet d'une rotation. Par exemple :my-bucket.OBJECT_NAMEest le nom de l'objet dont la clé fait l'objet d'une rotation. Par exemple,pets/dog.png.NEW_KEYest 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 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 les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de 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 les bibliothèques clientes.
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.Utilisez
cURLpour appeler l'API JSON avec une requête d'objetPOST: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_KEYest 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é. Par exemple,my-bucket.OBJECT_NAMEest le 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 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
Apprenez-en davantage 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.