Par défaut, Dataproc Metastore chiffre le contenu client au repos. Dataproc Metastore gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.
Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Dataproc Metastore. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Cloud KMS vous permet également d'afficher les journaux d'audit et de contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.
Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Dataproc Metastore est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).
Avant de commencer
Remarques
Tenez compte des points suivants lorsque vous utilisez Dataproc Metastore avec CMEK.
Le chiffrement CMEK est compatible avec les services Dataproc Metastore à une seule région et multirégionaux (bêta).
La base de données Cloud Monitoring n'est pas compatible avec le chiffrement CMEK. À la place,Google Cloud utilise des clés de chiffrement Google pour protéger les noms et les configurations de service de vos services Dataproc Metastore.
Si vous souhaitez que votre service Dataproc Metastore s'exécute dans un périmètre VPC Service Controls, vous devez ajouter l'API Cloud Key Management Service (Cloud KMS) au périmètre.
Lorsque vous utilisez une clé Cloud External Key Manager, Google n'a aucun contrôle sur la disponibilité de votre clé gérée en externe. Si la clé n'est plus disponible pendant la période de création du service Dataproc Metastore, la création du service échoue. Une fois un service Dataproc Metastore créé, si la clé devient indisponible, le service devient indisponible jusqu'à ce que la clé soit à nouveau disponible. Pour en savoir plus sur l'utilisation des clés externes, consultez la section Considérations concernant Cloud EKM.
Limites
Tenez compte des limites suivantes lorsque vous utilisez Dataproc Metastore avec CMEK.
Vous ne pouvez pas activer CMEK sur un service existant.
Vous ne pouvez pas alterner les CMEK utilisées par un service compatible CMEK.
Vous ne pouvez pas utiliser de clés CMEK pour chiffrer les données utilisateur en transit, telles que les requêtes utilisateur et les réponses à ces requêtes.
Configurer CMEK pour Dataproc Metastore
Si vous ne possédez pas encore de clé Cloud KMS, vous pouvez en créer une pour votre service Dataproc Metastore. Sinon, vous pouvez ignorer cette étape et utiliser une clé existante.
Facultatif: Créer une clé Cloud KMS
Pour créer une clé Cloud KMS, vous devez d'abord créer un trousseau de clés, puis une clé qui est stockée dans le trousseau.
Pour créer un trousseau de clés :
Pour créer un trousseau, exécutez la commande gcloud kms keyrings create
suivante.
gcloud kms keyrings create KEY_RING \ --project=PROJECT_ID \ --location=LOCATION
Remplacez les éléments suivants :
KEY_RING
: nom de votre trousseau de clés.PROJECT_ID
: ID du Google Cloud projet dans lequel vous souhaitez créer le trousseau de clés.LOCATION
: région dans laquelle vous souhaitez créer le trousseau de clés.
Pour créer une clé
Pour créer une clé stockée dans votre trousseau, exécutez la commande gcloud kms keys create
suivante.
gcloud kms keys create KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEY_RING \ --purpose=encryption
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés que vous avez créé à l'étape précédente.
Accorder des autorisations de clé Cloud KMS
Utilisez les commandes suivantes pour accorder des autorisations de clé Cloud KMS pour Dataproc Metastore:
Accordez les autorisations au compte de service de l'agent de service Dataproc Metastore:
Si vous allez configurer CMEK pour un service Dataproc Metastore multirégional, vous devez accorder à chaque clé les autorisations Cloud KMS nécessaires pour les comptes de service Dataproc Metastore et Cloud Storage.
gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member=serviceAccount:$(gcloud beta services identity create \ --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Accordez des autorisations au compte de service Cloud Storage.
gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Créer un service à région unique avec une clé CMEK
Procédez comme suit pour configurer le chiffrement CMEK pour un service Dataproc Metastore à une seule région.
Console
Dans la console Google Cloud , accédez à la page Dataproc Metastore:
En haut de la page Dataproc Metastore, cliquez sur Créer.
La page Créer un service s'ouvre.
Configurez votre service selon vos besoins.
Sous Chiffrement, cliquez sur Clé de chiffrement gérée par le client (CMEK).
Sélectionnez la clé gérée par le client.
Cliquez sur Envoyer.
Vérifiez la configuration du chiffrement du service:
Dans la console Google Cloud , accédez à la page Dataproc Metastore:
Sur la page Dataproc Metastore, cliquez sur le nom du service que vous souhaitez afficher.
La page Informations sur le service s'ouvre.
Sous l'onglet Configuration, vérifiez que les détails indiquent que CMEK est activé.
gcloud
Pour créer un service monorégional avec chiffrement CMEK, exécutez la commandeGoogle Cloud
gcloud metastore services create
:gcloud metastore services create SERVICE \ --encryption-kms-key=KMS_KEY
Remplacez les éléments suivants :
SERVICE
: nom du nouveau service.KMS_KEY
: ID de la ressource de clé.
Créer un service multirégional avec une clé CMEK
Pour les services CMEK Dataproc Metastore multirégionaux, plusieurs clés de chiffrement doivent être fournies. Cela inclut une clé pour chaque région constituante du service Dataproc Metastore multirégional (une clé pour la région témoin Spanner et une clé pour le continent).
Pour obtenir des informations sur votre service multirégional et les régions avec lesquelles il est configuré, vous pouvez exécuter la commande suivante.
gcloud metastore locations describe LOCATION
- Remplacez LOCATION par la région multirégionale dans laquelle vous avez créé votre service Dataproc Metastore.
Créer un service multirégional avec une clé CMEK
Procédez comme suit pour configurer le chiffrement CMEK pour un service Dataproc Metastore multirégional.
Console
Dans la console Google Cloud , accédez à la page "Dataproc Metastore" :
En haut de la page Dataproc Metastore, cliquez sur Créer.
La page Créer un service s'ouvre.
Sélectionnez Dataproc Metastore 2.
Dans la section "Tarifs et capacité", sélectionnez Enterprise Plus – Birégional.
Pour Protocole de point de terminaison, sélectionnez le point de terminaison approprié.
Sous Chiffrement, sélectionnez Clé Cloud KMS.
Sélectionnez les clés à utiliser pour chaque région, par exemple la région témoin Spanner et le continent.
Configurez les options de service restantes si nécessaire.
Cliquez sur Envoyer.
Vérifiez la configuration du chiffrement du service:
Dans la console Google Cloud , accédez à la page "Dataproc Metastore" :
Sur la page Dataproc Metastore, cliquez sur le nom du service que vous souhaitez afficher.
La page Informations sur le service s'ouvre.
Dans l'onglet Configuration, vérifiez que CMEK est activé.
gcloud
- Pour créer un service multirégional avec chiffrement CMEK, exécutez la commande
gcloud beta metastore services create
:
gcloud beta metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT
Remplacez les éléments suivants :
SERVICE
: nom de votre nouveau service Dataproc Metastore.LOCATION
: région multirégionale dans laquelle vous souhaitez créer votre service Dataproc Metastore. Google Cloud Vous pouvez également définir un emplacement par défaut.INSTANCE_SIZE
: taille de l'instance de votre service Dataproc Metastore multirégional. Par exemple, "petit", "moyen" ou "grand".KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT
: ID de ressource de clé pour chacune des clés requises, y compris une clé dans le continent et une clé dans la région de témoin Spanner. Les noms de clé sont listés au format suivant dans votre projet:projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
.
Importer des données dans un service compatible avec les CMEK et en exporter
Si vous souhaitez que vos données restent chiffrées avec une clé gérée par le client lors d'une importation, vous devez définir le chiffrement CMEK sur le bucket Cloud Storage avant d'importer des données à partir de ce bucket.
Vous pouvez importer des données à partir d'un bucket Cloud Storage non protégé par CMEK. Après l'importation, les données stockées dans Dataproc Metastore sont protégées en fonction des paramètres CMEK du service de destination.
Lors de l'exportation, le vidage de la base de données exportée est protégé en fonction des paramètres CMEK du bucket de stockage de destination.