Par défaut, Datastream chiffre le contenu client au repos. Datastream gère le chiffrement sans aucune 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 Datastream. 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 de suivre l'utilisation des clés, de consulter 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 Datastream 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).
Cette page décrit le fonctionnement des clés de chiffrement gérées par le client (CMEK) avec Datastream.
Les CMEK sont-elles adaptées à vos besoins ?
Les CMEK sont destinées aux organisations qui disposent de données sensibles ou réglementées et qui doivent gérer leurs clés de chiffrement.
Chiffrement géré par Google et chiffrement géré par le client
La fonctionnalité CMEK vous permet d'utiliser vos propres clés cryptographiques pour les données au repos dans Datastream. Après avoir ajouté CMEK, chaque fois qu'un appel d'API est effectué, Datastream utilise votre clé pour accéder aux données.
Les clés de chiffrement des données (DEK, Data Encryption Key) et les clés de chiffrement de clé (KEK, Key Encryption Key) gérées par Google permettent de chiffrer Datastream. Il existe deux niveaux de chiffrement :
- La clé DEK chiffre les données.
- La clé KEK chiffre la clé DEK.
Datastream stocke la clé DEK chiffrée ainsi que les données chiffrées, et Google gère la clé KEK Google. Avec CMEK, vous créez une clé qui encapsule la clé KEK Google. CMEK vous permet de créer, de révoquer et de supprimer la clé KEK.
Les CMEK, y compris les logiciels, le matériel et les clés externes, sont toutes gérées via l'API Cloud Key Management Service (KMS).
Quels emplacements acceptent les flux Datastream utilisant CMEK ?
CMEK est disponible dans tous les emplacements Datastream locations.
Comprendre les comptes de service
Lorsque CMEK est activé sur vos flux Datastream, vous devez utiliser un compte de service pour demander un accès par clé à partir de Cloud Key Management Service.
Pour utiliser une CMEK sur un projet, vous devez disposer d'un compte de service et accorder à cette clé l'accès à ce compte. Le compte de service doit être créé dans le projet et visible dans toutes les régions.
Si vous utilisez la console pour créer un flux, Datastream crée automatiquement le compte de service lorsque vous choisissez l'option Clé gérée par le client (si un compte de service n'existe pas déjà). Lorsque Datastream crée automatiquement le compte de service, vous n'avez pas besoin d'autorisations particulières sur votre compte utilisateur.
Comprendre les clés
Dans Cloud Key Management Service, vous devez créer un trousseau avec une clé cryptographique, et y associer un emplacement. Lorsque vous créez un flux dans Datastream, vous sélectionnez cette clé pour chiffrer le flux.
Lorsque vous créez des flux qui utilisent CMEK, vous devez connaître l'ID et la région de ces clés. Vous devez placer les nouveaux flux dans la même région que la CMEK associée aux flux. Vous pouvez créer un projet pour les clés et les flux, ou des projets différents pour chacun.
CMEK utilise le format suivant :
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Si Datastream ne parvient pas à accéder à la clé (par exemple, si vous désactivez la version de clé), Datastream passe l'état du flux à FAILED et un message d'erreur associé s'affiche. Une fois que vous avez résolu les problèmes associés au message d'erreur afin que la clé redevienne accessible, Datastream reprend automatiquement le flux.
Gestionnaires de clés externes
Vous pouvez utiliser des clés stockées dans des gestionnaires de clés externes, tels que Fortinix, Ionic ou Thales, en tant que CMEK. Pour apprendre à utiliser des clés externes avec Cloud Key Management Service, consultez Cloud External Key Manager.
Comment rendre les données chiffrées avec CMEK définitivement inaccessibles ?
Vous pouvez être amené à détruire définitivement des données chiffrées avec CMEK. Pour ce faire, vous devez détruire la version CMEK. Vous ne pouvez pas détruire le trousseau ou la clé, mais vous pouvez supprimer les versions de la clé.
Restrictions
Les restrictions suivantes s'appliquent lorsque vous utilisez des clés CMEK :
Vous ne pouvez pas mettre à jour les CMEK sur un flux en cours d'exécution.
Bien que vous puissiez utiliser CMEK pour chiffrer les lignes de la base de données source, vous ne pouvez pas utiliser ces clés pour chiffrer les métadonnées de flux, telles que l'ID de flux, l'adresse IP de la base de données source ou les noms des tables de la base de données source.
Utiliser CMEK
Maintenant que vous comprenez CMEK, vous êtes prêt à configurer un compte de service et des clés pour CMEK. Vous apprendrez également à configurer Datastream pour qu'il utilise CMEK.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Installez et initialisez le SDK Cloud.
- Assurez-vous que le rôle "Administrateur Datastream" est attribué à votre compte utilisateur.
Activez l'API Cloud Key Management Service.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.- Activez l'API Datastream.
Procédure permettant de créer un flux dans Datastream avec CMEK
- Seulement pour les utilisateurs de gcloud et de l'API : assurez-vous de disposer d'un compte de service pour chaque projet nécessitant CMEK. Si ce n'est pas le cas, voici comment créer un compte de service.
- Créez un trousseau et une clé, puis définissez l'emplacement de chaque clé. L'emplacement est la Google Cloud région.
- Seulement pour les utilisateurs de gcloud et de l'API : accordez à la clé l'accès au compte de service.
- Copiez ou notez l'ID (
KMS_KEY_ID) et l'emplacement de la clé ainsi que l'ID du trousseau (KMS_KEYRING_ID). Vous avez besoin de ces informations lorsque vous accordez à la clé l'accès au compte de service. - Accédez à un projet et créez un flux dans Datastream avec les options suivantes :
- Le même emplacement que la CMEK
- La configuration CMEK
- L'ID CMEK
Votre flux dans Datastream est maintenant configuré pour utiliser les CMEK.
Créer un compte de service
Vous devez créer un compte de service pour chaque projet nécessitant CMEK.
Pour autoriser un utilisateur à gérer des comptes de service, attribuez-lui l'un des rôles suivants :
- Utilisateur de compte de service (
roles/iam.serviceAccountUser) : accorde les autorisations nécessaires pour obtenir ou répertorier un compte de service et emprunter son identité. - Administrateur de compte de service (
roles/iam.serviceAccountAdmin) : comprend les autorisations permettant de répertorier les comptes de service et d'obtenir des informations sur un compte de service. Il inclut également les autorisations nécessaires pour créer, mettre à jour et supprimer des comptes de service, ainsi que pour afficher ou modifier la stratégie Datastream sur un compte de service.
Vous ne pouvez utiliser que les commandes gcloud pour créer le type de compte de service dont vous avez besoin pour CMEK. Si vous utilisez la console, Datastream crée automatiquement ce compte de service.
Pour créer un compte de service avec gcloud, exécutez la commande suivante :
gcloud beta services identity create \ --service=datastream.googleapis.com \ --project=PROJECT_ID
La commande précédente renvoie un nom de compte de service. Ce nom de compte de service vous sera utile lors de la procédure décrite dans la section Accorder à la clé l'accès au compte de service.
Créer une clé
Vous pouvez créer la clé dans le même Google Cloud projet que le flux dans Datastream ou dans un projet d'utilisateur distinct. L'emplacement du trousseau de clés Cloud KMS doit correspondre à la région dans laquelle vous souhaitez créer le flux. Une clé d'une région mondiale ou d'un emplacement multirégional ne fonctionnera pas. Si les régions ne correspondent pas, vous ne pouvez pas créer le flux.
Pour créer une clé Cloud KMS, procédez comme suit :
Console
- Dans la Google Cloud console, accédez à la page Clés cryptographiques.
- Cliquez sur Créer un trousseau.
- Ajoutez un nom de trousseau de clés. Notez ce nom, car vous en aurez besoin pour accorder à la clé l'accès au compte de service.
- Ajoutez un emplacement de trousseau de clés.
- Cliquez sur Créer. La page Créer une clé s'ouvre.
- Ajoutez un nom de clé.
- Sélectionnez un objectif (symétrique ou asymétrique).
- Sélectionnez une période de rotation et une date de début.
- Cliquez sur Créer.
- Dans la table Clés, cliquez sur les trois points situés dans la dernière colonne, puis
sélectionnez Copier l'ID de ressource ou notez-le. Il s'agit du
KMS_KEY_ID. Vous aurez besoin deKMS_KEY_IDpour accorder à la clé l'accès au compte de service.
gcloud
- Créez un trousseau de clés.
Notez ce nom, car vous en aurez besoin pour accorder à la clé l'accès au compte de service.gcloud kms keyrings create KMS_KEYRING_ID \ --location=GCP_REGION
- Créez une clé sur le trousseau.
Notez ce nom, car vous en aurez besoin pour accorder à la clé l'accès au compte de service.gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Accorder à la clé l'accès au compte de service
Vous n'avez besoin d'effectuer cette procédure que si vous utilisez gcloud ou l'API.
Pour autoriser l'accès au compte de service, utilisez le code suivant :
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datastream.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Créer un flux dans Datastream avec CMEK
Lorsque vous créez un flux dans Datastream, vous pouvez utiliser votre CMEK pour gérer le chiffrement de vos données.
Étape suivante
- Pour savoir comment désactiver une version de clé, consultez Désactiver une version de clé activée.
- Pour savoir comment réactiver une version de clé, consultez Activer une version de clé désactivée.