Présentation
Cette page décrit le fonctionnement des clés de chiffrement gérées par le client (CMEK) avec les tâches de migration de Database Migration Service.
La fonctionnalité CMEK est-elle adaptée à vos besoins ?
La fonctionnalité CMEK est destinée aux organisations qui traitent des données sensibles ou réglementées pour lesquelles elles doivent gérer leurs propres 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 transportées par Database Migration Service. Après avoir ajouté CMEK, chaque fois qu'un appel d'API est effectué, Database Migration Service utilise votre clé pour accéder aux données.
Le chiffrement CMEK, y compris les logiciels, le matériel et les clés externes, est entièrement géré via l'API Cloud Key Management Service (KMS).
Quels emplacements acceptent les tâches de migration de Database Migration Service compatibles avec CMEK ?
CMEK est disponible dans tous les emplacements de Database Migration Service.
Comprendre les comptes de service
Lorsque CMEK est activé sur vos jobs de migration Database Migration Service, vous devez utiliser un compte de service pour demander un accès par clé à partir de Cloud Key Management Service.
Pour utiliser une clé 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. Le compte de service est visible dans toutes les régions.
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 une tâche de migration dans Database Migration Service, vous sélectionnez cette clé pour la chiffrer.
Lorsque vous créez des tâches de migration qui utilisent CMEK, vous devez connaître l'ID et la région de la clé. Vous devez placer les bases de données de destination dans la même région que la clé CMEK associée à la tâche de migration. Vous pouvez créer un projet unique pour les clés et les bases de données de destination, ou un projet distinct pour chaque élément.
CMEK utilise le format suivant:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Comment rendre les données chiffrées par CMEK définitivement inaccessibles ?
Vous pouvez être amené à détruire définitivement des données chiffrées avec CMEK. Pour ce faire, vous devez supprimer la version CMEK. Vous ne pouvez pas détruire le trousseau ni la clé, mais vous pouvez supprimer les versions de la clé.
Restrictions
Les restrictions suivantes s'appliquent lorsque vous utilisez CMEK:
Vous ne pouvez pas mettre à jour CMEK sur une tâche de migration en cours d'exécution.
Bien que vous puissiez utiliser CMEK pour chiffrer les données de la base de données source, vous ne pouvez pas utiliser ces clés pour chiffrer les métadonnées des tâches de migration, telles que l'ID de la tâche de migration, l'adresse IP de la base de données source, etc.
Utiliser CMEK
Maintenant que vous comprenez le chiffrement CMEK, vous êtes prêt à configurer un compte de service et des clés pour CMEK. Vous apprendrez également à configurer une tâche de migration pour utiliser CMEK. Pour en savoir plus sur les clés CMEK, consultez la section Présentation.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
- Installez et initialisez le SDK Cloud.
- Assurez-vous que le rôle "Administrateur de migration de bases de données" est bien attribué à votre compte utilisateur.
-
Enable the Cloud Key Management Service API.
- Activez Database Migration Service.
Workflow pour créer des tâches de migration dans Database Migration Service 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. Pour en savoir plus, consultez la section Créer un compte de service.
Créez un trousseau et une clé, puis définissez l'emplacement de chaque clé. L'emplacement correspond à la région Google Cloud .
Copiez ou notez l'ID de clé (
KMS_KEY_ID
) et l'emplacement de la clé, ainsi que l'ID (KMS_KEYRING_ID
) du trousseau. Vous avez besoin de ces informations lorsque vous accordez à la clé l'accès au compte de service.Accédez à un projet, créez un job de migration dans Database Migration Service, puis utilisez votre CMEK dans la section Options de chiffrement avancées.
Votre tâche de migration dans Database Migration Service est désormais configurée pour utiliser les CMEK.
Créer un compte de service
Vous devez créer un compte de service pour chaque projet nécessitant une 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. Ce rôle inclut également les autorisations nécessaires pour créer, mettre à jour et supprimer des comptes de service, ainsi que pour afficher ou modifier les règles Database Migration Service pour Oracle vers AlloyDB pour PostgreSQL sur un compte de service.
Actuellement, vous ne pouvez utiliser que les commandes gcloud
pour créer le type de compte de service dont vous avez besoin pour CMEK.
Pour créer un compte de service avec gcloud
, exécutez la commande suivante :
gcloud beta services identity create \ --service=datamigration.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 projet Google Cloud que la tâche de migration dans Database Migration Service, ou dans un projet utilisateur distinct. L'emplacement du trousseau de clés Cloud KMS doit correspondre à la région de votre base de données de destination associée à la tâche de migration. Les clés associées à un emplacement multirégional ou mondial ne sont pas compatibles. Si les régions ne correspondent pas, vous ne pouvez pas créer la tâche de migration.
Pour créer une clé Cloud KMS, procédez comme suit :
Console
- Dans la console Google Cloud , 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 de
KMS_KEY_ID
. Vous avez besoin deKMS_KEY_ID
pour 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=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=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Accorder à la clé l'accès au compte de service
Cette procédure ne doit être effectuée que si vous utilisez gcloud
ou l'API.
Pour accorder l'accès au compte de service, utilisez le code suivant:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Créer une tâche de migration dans Database Migration Service avec CMEK
Lorsque vous créez un job de migration dans Database Migration Service, vous pouvez utiliser votre CMEK pour gérer le chiffrement de vos données.
Désactiver et réactiver des versions de clé
Consultez les articles suivants :