Cette page explique comment utiliser une clé de chiffrement Cloud Key Management Service avec Cloud Storage, y compris la définition de clés par défaut sur des buckets et l'ajout de clés à des objets individuels. Une clé de chiffrement Cloud KMS est une clé de chiffrement gérée par le client (CMEK). Ces clés sont créées et gérées via Cloud KMS et stockées sous forme de clés logicielles, dans un cluster HSM ou en externe.
Création manuelle ou automatique de clés
Vous pouvez créer des CMEK manuellement ou utiliser la fonction de clé automatique Cloud KMS (bêta). Les clés automatiques simplifient la création et la gestion des CMEK en automatisant le provisionnement et l'attribution. Avec la fonction de clé automatique, vous n'avez pas besoin de provisionner des trousseaux de clés, des clés et des comptes de service à l'avance. Au lieu de cela, ils sont générés à la demande lors de la création de ressources Cloud Storage.
L'utilisation de clés générées par la fonction de clé automatique peut vous aider à vous conformer aux normes du secteur et aux bonnes pratiques en matière de sécurité des données, telles que le niveau de protection, la séparation des tâches, la rotation des clés, l'emplacement et le niveau de précision des clés. Pour en savoir plus, consultez la section Présentation de la clé automatique.
Avant de commencer
Avant d'utiliser cette fonctionnalité dans Cloud Storage, vous devez répondre aux critères suivants :
Avoir activé l'API Cloud KMS pour le projet qui stockera vos clés de chiffrement
Disposer des autorisations suffisantes pour le projet qui stockera vos clés de chiffrement :
Si vous êtes le propriétaire du projet qui stockera les clés, vous disposez probablement de l'autorisation nécessaire.
Si vous envisagez de créer des trousseaux de clés et des clés de chiffrement, vous devez disposer des autorisations
cloudkms.keyRings.create
etcloudkms.cryptoKeys.create
Que vous prévoyiez d'utiliser des clés et des trousseaux de clés nouveaux ou existants, vous devez disposer de l'autorisation
cloudkms.cryptoKeys.setIamPolicy
pour les clés qui serviront au chiffrement.Cette autorisation vous permet d'accorder aux agents de service Cloud Storage un accès aux clés Cloud KMS.
Les autorisations ci-dessus sont comprises dans le rôle Administrateur Cloud KMS.
Reportez-vous à la page Utiliser IAM avec Cloud KMS pour savoir comment obtenir ce rôle ou d'autres rôles de Cloud KMS.
Disposer d'un trousseau de clés Cloud KMS qui compte au moins une clé
Le trousseau de clés doit se trouver au même emplacement que les données que vous souhaitez chiffrer, mais il peut se trouver dans un projet différent. Pour connaître les emplacements Cloud KMS disponibles, consultez la section Emplacements Cloud KMS.
.Disposer des autorisations suffisantes pour utiliser des objets dans votre bucket Cloud Storage :
Si vous êtes propriétaire du projet contenant le bucket, vous disposez probablement de l'autorisation nécessaire.
Si vous utilisez IAM, vous devez disposer de l'autorisation
storage.objects.create
pour écrire des objets dans le bucket et de l'autorisationstorage.objects.get
pour lire des objets à partir de ce bucket. Consultez la page Utiliser des autorisations Cloud IAM pour savoir comment obtenir un rôle doté de ces autorisations, par exemple Administrateur des objets Storage.Si vous utilisez des LCA (Listes de contrôle des accès), vous devez disposer de l'autorisation
WRITER
(rédacteur) au niveau du bucket pour écrire des objets sur le bucket et de l'autorisationREADER
(lecteur) au niveau des objets pour lire des objets à partir de ce bucket. Pour savoir comment procéder, consultez la section Configurer des LCA.
-
Obtenir l'adresse e-mail de l'agent de service associé au projet contenant votre bucket Cloud Storage. En effectuant cette étape, vous créez automatiquement l'agent de service s'il n'existe pas.
Attribuer une clé Cloud KMS à un agent de service
Pour utiliser les CMEK, accordez à l'agent de service Cloud Storage associé à votre bucket l'autorisation d'utiliser votre clé Cloud KMS pour le chiffrement et le déchiffrement :
Console
- Ouvrez le navigateur Clés Cloud Key Management Service dans Google Cloud Console.
Ouvrir le navigateur de clés Cloud KMS Cliquez sur le nom du trousseau de clés contenant la clé que vous souhaitez utiliser.
Cochez la case correspondant à la clé souhaitée.
L'onglet Autorisations s'affiche dans le volet de droite.
Dans la boîte de dialogue Ajouter des entités principales, indiquez l'adresse e-mail de l'agent de service Cloud Storage auquel vous accordez l'accès.
Dans le menu déroulant Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
Cliquez sur Ajouter.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage service-agent
avec l'option --authorize-cmek
pour autoriser l'agent de service associé à votre bucket à chiffrer et déchiffrer des objets à l'aide de votre clé Cloud KMS :
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Où :
PROJECT_STORING_OBJECTS
correspond à l'ID ou au numéro du projet contenant les objets que vous souhaitez chiffrer ou déchiffrer. Exemple :my-pet-project
KEY_RESOURCE
correspond à votre ressource de clé Cloud KMS.
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.
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
.Créez un fichier JSON contenant les informations suivantes :
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS" }, } }
Où
SERVICE_AGENT_EMAIL_ADDRESS
correspond à l'adresse e-mail associée à votre agent de service. Exemple :service-7550275089395@gs-project-accounts.iam.gserviceaccount.com
.Utilisez
cURL
pour appeler l'API Cloud KMS avec une requêtePOST 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"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier JSON que vous avez créé à l'étape 2.KEY_RESOURCE
correspond à votre ressource de clé Cloud KMS.
API XML
L'API XML ne peut pas être utilisée pour affecter un Cloud KMS à un agent de service. Utilisez plutôt un autre outil Cloud Storage, tel que gcloud CLI.
Utiliser les clés de chiffrement par défaut
Définir la clé par défaut d'un bucket
Pour ajouter, changer ou supprimer la clé Cloud KMS utilisée par défaut lorsque des objets sont écrits sur un bucket, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket souhaité.
Sur la page Informations sur le bucket, cliquez sur l'onglet Configuration.
Cliquez sur l'icône en forme de crayon associée à l'entrée de type de chiffrement.
Définissez ou supprimez la clé Cloud KMS par défaut du bucket.
Si le bucket n'utilise pas actuellement de clé Cloud KMS, cochez la case d'option Clé gérée par le client, puis sélectionnez l'une des clés disponibles dans le menu déroulant associé.
Si le bucket utilise actuellement une clé Cloud KMS, modifiez-la dans le menu déroulant ou supprimez la clé Cloud KMS en sélectionnant la case d'optionClé gérée par Google.
Cliquez sur Enregistrer.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage buckets update
avec l'option appropriée :
gcloud storage buckets update gs://BUCKET_NAME FLAG
Où :
BUCKET_NAME
correspond au nom du bucket concerné. Par exemple,my-bucket
.FLAG
est le paramètre souhaité pour la clé par défaut sur le bucket. Utilisez l'un des formats suivants :--default-encryption-key=
et une ressource de clé Cloud KMS, si vous souhaitez ajouter ou modifier une clé par défaut.--clear-default-encryption-key
, si vous souhaitez supprimer la clé par défaut sur le bucket.
Si l'opération réussit, la réponse se présente comme suit :
Updating gs://my-bucket/... Completed 1
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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.
L'exemple suivant définit une clé de chiffrement par défaut gérée par le client sur un bucket :
L'exemple suivant supprime la clé de chiffrement par défaut gérée par le client d'un bucket :
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
.Créez un fichier JSON contenant les informations suivantes :
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Où
KEY_RESOURCE
correspond à votre ressource de clé Cloud KMS.Pour supprimer la clé Cloud KMS par défaut d'un bucket, utilisez le code suivant dans le fichier JSON :
{ "encryption": { "defaultKmsKeyName": null } }
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier JSON que vous avez créé à l'étape 2.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
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
.Créez un fichier XML contenant les informations suivantes :
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Où
KEY_RESOURCE
correspond à votre ressource de clé Cloud KMS.Pour supprimer la clé Cloud KMS par défaut d'un bucket, utilisez le code suivant dans le fichier XML :
<EncryptionConfiguration></EncryptionConfiguration>
Utilisez
cURL
pour appeler l'API XML avec une requête de bucketPUT
et un paramètre de chaîne de requêteencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Où :
XML_FILE_NAME
correspond au chemin d'accès au fichier XML que vous avez créé à l'étape 2.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
Définir la clé par défaut d'un bucket
Pour afficher la clé Cloud KMS actuellement définie comme clé par défaut de votre bucket, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket souhaité.
Sur la page Informations sur le bucket, cliquez sur l'onglet Configuration.
La clé par défaut actuelle de votre bucket apparaît dans le champ Clé de chiffrement.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage buckets describe
avec l'option --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_kms_key)"
Où BUCKET_NAME
correspond au nom du bucket dont vous souhaitez afficher la clé. Par exemple, my-bucket
.
Si l'opération réussit, la réponse se présente comme suit :
default_kms_key: KEY_RESOURCE
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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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.
Pour afficher la clé KMS par défaut, suivez les instructions permettant d'afficher les métadonnées d'un bucket et recherchez le champ de clé KMS par défaut dans la réponse.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
cURL
pour appeler l'API JSON avec une requête de bucketGET
incluant l'élémentfields
souhaité :curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Où
BUCKET_NAME
correspond au nom du bucket dont vous souhaitez afficher la clé. Exemple :my-bucket
La réponse est semblable à ceci :
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
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ête de bucketGET
incluant l'élémentencryption
souhaité :curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Où
BUCKET_NAME
correspond au nom du bucket dont vous souhaitez afficher la clé. Exemple :my-bucket
La réponse est semblable à ceci :
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Chiffrer un objet avec une clé Cloud KMS
Vous pouvez chiffrer un objet individuel avec une clé Cloud KMS. Ceci est utile si vous souhaitez utiliser une clé différente de celle définie par défaut sur le bucket ou si aucune clé par défaut n'est définie sur le bucket. Le nom de ressource de la clé utilisée pour chiffrer l'objet est stocké dans ses métadonnées.
Console
La console Google Cloud ne peut pas être utilisée pour spécifier des clés Cloud KMS en fonction de chaque objet. Utilisez plutôt gcloud 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=KEY_RESOURCE
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 :gs://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. Exemple :pets/new-dog.png
KEY_RESOURCE
est la ressource de clé Cloud KMS que vous souhaitez utiliser 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
.Ajoutez les données de l'objet au corps de la requête.
Exécutez
cURL
pour 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" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
Où :
OBJECT
correspond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dog.png
OBJECT_CONTENT_TYPE
correspond au type de contenu de l'objet. Exemple :image/png
BUCKET_NAME
correspond au nom du bucket dans lequel vous importez votre 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
.KEY_RESOURCE
correspond à la ressource de clé Cloud KMS.
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
.Ajoutez les données de l'objet au corps de la requête.
Exécutez
cURL
pour appeler l'API XML avec une requête d'objetPUT
: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.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Où :
OBJECT
correspond au chemin d'accès à l'objet que vous importez. Exemple :Desktop/dog.png
OBJECT_CONTENT_TYPE
correspond au type de contenu de l'objet. Exemple :image/png
BUCKET_NAME
correspond au nom du bucket dans lequel vous importez votre 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
.KEY_RESOURCE
correspond à votre ressource de clé Cloud KMS.
Effectuer la rotation d'une clé fournie par le client en clé Cloud KMS
Si vos objets sont chiffrés avec des clés de chiffrement fournies par le client, vous pouvez effectuer une rotation de ces clés pour utiliser les clés Cloud KMS en réécrivant l'objet :
Console
La console Google Cloud ne peut pas être utilisée pour modifier les clés de chiffrement en fonction de chaque objet. Utilisez plutôt gcloud 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=KMS_KEY --decryption-keys=CSEK_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
.KMS_KEY
est la ressource de clé Cloud KMS que vous souhaitez utiliser pour chiffrer l'objet.CSEK_KEY
est la clé de chiffrement actuelle fournie par le client et utilisée sur 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
cURL
pour 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-copy-source-encryption-algorithm: AES256" \ -H "x-goog-copy-source-encryption-key: OLD_ENCRYPTION_KEY" \ -H "x-goog-copy-source-encryption-key-sha256: HASH_OF_OLD_KEY" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
Où :
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
.KEY_RESOURCE
correspond à la ressource de clé Cloud KMS.
API XML
L'API XML ne permet pas la rotation d'une clé de chiffrement fournie par le client vers une clé Cloud KMS via la réécriture de l'objet. Pour effectuer une telle rotation à l'aide de l'API XML, procédez comme suit :
.
Identifier la clé utilisée pour chiffrer un objet
Pour trouver la clé Cloud KMS utilisée pour chiffrer un objet, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket contenant l'objet recherché.
La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Accédez à l'objet, qui peut se trouver dans un dossier.
Dans la colonne Chiffrement, passez la souris sur l'entrée de l'objet souhaité.
Le nom et la version de la clé apparaissent au format suivant :
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Ligne de commande
Exécutez la commande gcloud storage objects describe
avec l'option --format
:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(kms_key)"
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet chiffré. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de l'objet chiffré. Par exemple,pets/dog.png
.
Si l'opération réussit, la réponse se présente comme suit :
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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.
Pour afficher la clé KMS associée à un objet, suivez les instructions permettant d'afficher les métadonnées d'un objet et recherchez le champ de nom de clé KMS dans la réponse.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
cURL
pour appeler l'API JSON avec une requête d'objetGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet chiffré. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet chiffré. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
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ête d'objetGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet chiffré. Exemple :my-bucket
OBJECT_NAME
correspond au nom encodé au format URL de l'objet chiffré. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Déchiffrer un objet
Le déchiffrement d'un objet chiffré avec une clé Cloud KMS est effectué automatiquement tant que l'agent de service concerné a accès à la clé. Pour en savoir plus, consultez Agents de service avec des CMEK.
Étapes suivantes
- En savoir plus sur les CMEK dans Cloud Storage.
- Découvrez les autres options de chiffrement disponibles dans Cloud Storage.
- Effectuez une rotation de vos clés Cloud KMS.
- Découvrez les autres produits compatibles avec Cloud KMS.
- Apprenez-en plus sur les contraintes de règle d'administration
restrictNonCmekServices
etrestrictCmekCryptoKeyProjects
afin de mieux contrôler l'utilisation des clés Cloud KMS.