Ce document explique comment configurer les méthodes de chiffrement autorisées ou restreintes pour les nouveaux objets d'un bucket Cloud Storage. Vous pouvez configurer un bucket pour appliquer ou limiter l'utilisation du chiffrement standard (chiffrement par défaut de Google), des clés de chiffrement gérées par le client (CMEK) ou des clés de chiffrement fournies par le client (CSEK) pour tous les nouveaux objets créés dans le bucket.
Par exemple, pour vous protéger contre les attaques par rançongiciel, vous pouvez exiger que tous les nouveaux objets soient chiffrés avec le chiffrement standard ou CMEK, et limiter l'utilisation des clés de chiffrement fournies par le client.
Pour en savoir plus sur les méthodes de chiffrement disponibles, consultez Options de chiffrement des données.
Cloud Storage applique la configuration de chiffrement à toutes les actions qui créent un objet, comme l'importation, la copie ou la composition d'objets, ou la restauration d'un objet supprimé de façon réversible.
Avant de commencer
Pour obtenir les autorisations nécessaires pour configurer l'application du chiffrement pour un bucket, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le bucket.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour configurer l'application du chiffrement pour un bucket. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour configurer l'application du chiffrement pour un bucket :
-
Définissez la configuration lorsque vous créez un bucket :
storage.buckets.create -
Mettez à jour la configuration d'un bucket existant :
storage.buckets.update
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un bucket qui applique des types de chiffrement
Vous pouvez spécifier les méthodes de chiffrement autorisées ou restreintes pour les objets d'un bucket lorsque vous créez un bucket.
Si vous définissez une clé Cloud KMS par défaut pour le bucket, vous devez également autoriser le chiffrement à l'aide de clés CMEK ou de clés de chiffrement fournies par le client.
gcloud
Créez un fichier JSON contenant les informations suivantes :
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Remplacez les éléments suivants :
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement. Si vous omettez la configuration de l'application pour un type de chiffrement spécifique, ce type de chiffrement est autorisé par défaut.
-
Exécutez la commande
gcloud storage buckets createavec l'option--encryption-enforcement-file:gcloud storage buckets create gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Remplacez les éléments suivants :
BUCKET_NAME: nom du bucket.ENCRYPTION_ENFORCEMENT_FILE: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.
API REST
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les paramètres du bucket. Pour obtenir la liste complète des paramètres, consultez la documentation Buckets: Insert. Les paramètres suivants ne définissent que le nom du bucket et le chiffrement :
{ "name": "BUCKET_NAME", "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Remplacez les éléments suivants :
BUCKET_NAME: nom du bucket.-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement. Si vous omettez la configuration de l'application pour un type de chiffrement spécifique, ce type de chiffrement est autorisé par défaut.
Utilisez
cURLpour appeler l'API JSON avec une requête de bucketPOST:curl -X POST --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?project=PROJECT_ID"
Remplacez les éléments suivants :
JSON_FILE_NAME: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.PROJECT_ID: ID ou numéro du projet pour votre bucket.
API XML
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier XML contenant les paramètres du bucket. Pour obtenir la liste complète des paramètres, consultez la documentation XML : Créer un bucket. Les paramètres suivants ne définissent que l'application du chiffrement :
<CreateBucketConfiguration> <EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration> </CreateBucketConfiguration>
Remplacez les éléments suivants :
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement. Si vous omettez la configuration de l'application pour un type de chiffrement spécifique, ce type de chiffrement est autorisé par défaut.
-
Utilisez
cURLpour appeler l'API XML avec une requête de bucketPUT:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
Remplacez les éléments suivants :
XML_FILE_NAME: chemin d'accès au fichier XML que vous avez créé à l'étape précédente.PROJECT_ID: ID ou numéro du projet pour votre bucket.BUCKET_NAME: nom du bucket.
Mettre à jour les types de chiffrement autorisés pour un bucket
Pour mettre à jour les méthodes de chiffrement autorisées pour les nouveaux objets d'un bucket existant, procédez comme suit.
Si une clé KMS par défaut est définie pour le bucket, vous ne pouvez pas restreindre à la fois les clés de chiffrement CMEK et celles fournies par le client, car cela empêcherait la création de nouveaux objets. Autorisez CMEK ou CSEK sur un tel bucket, ou supprimez la clé Cloud KMS par défaut du bucket.
gcloud
Créez un fichier JSON contenant les informations suivantes :
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Remplacez les éléments suivants :
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement. Si vous omettez un type de chiffrement, la configuration existante est conservée.
-
Exécutez la commande
gcloud storage buckets updateavec l'option--encryption-enforcement-file:gcloud storage buckets update gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Remplacez les éléments suivants :
BUCKET_NAME: nom du bucket.ENCRYPTION_ENFORCEMENT_FILE: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.
L'application de la configuration mise à jour peut prendre jusqu'à deux minutes.
API REST
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les informations suivantes :
{ "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Remplacez les éléments suivants :
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement. Si vous omettez un type de chiffrement, la configuration existante est conservée.
-
Utilisez
cURLpour 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"
Remplacez les éléments suivants :
JSON_FILE_NAME: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.BUCKET_NAME: nom du bucket.
L'application de la configuration mise à jour peut prendre jusqu'à deux minutes.
API XML
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier XML contenant les paramètres de chiffrement du bucket. Les paramètres suivants ne définissent que la configuration de l'application du chiffrement.
<EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration>
Remplacez les éléments suivants :
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: indique si le chiffrement à l'aide du chiffrement standard (chiffrement par défaut de Google) est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser le chiffrement standard.FullyRestricted: les nouveaux objets ne peuvent pas utiliser le chiffrement standard.
-
CMEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés CMEK est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des CMEK.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de CMEK.
-
CSEK_RESTRICTION_MODE: indique si le chiffrement à l'aide de clés de chiffrement fournies par le client est autorisé lors de la création d'objets dans ce bucket. Les valeurs suivantes sont acceptées :NotRestricted: les nouveaux objets peuvent utiliser des clés de chiffrement fournies par le client.FullyRestricted: les nouveaux objets ne peuvent pas utiliser de clés de chiffrement fournies par le client.
Vous devez autoriser au moins un type de chiffrement.
-
Utilisez
cURLpour appeler l'API XML avec une requêtePUTBucket limitée à?encryptionConfig:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Remplacez les éléments suivants :
XML_FILE_NAME: chemin d'accès au fichier XML que vous avez créé à l'étape précédente.BUCKET_NAME: nom du bucket.
L'application de la configuration mise à jour peut prendre jusqu'à deux minutes.
Afficher les paramètres de chiffrement d'un bucket
Pour savoir comment afficher les méthodes de chiffrement autorisées pour un bucket, consultez Obtenir les métadonnées d'un bucket.
Étapes suivantes
- Définissez une clé Cloud KMS par défaut sur un bucket.
- Découvrez comment utiliser des contraintes personnalisées pour appliquer des types de chiffrement.