Cette page décrit le fonctionnement des clés de chiffrement gérées par le client (CMEK) avec les jobs de migration de Database Migration Service.
Par défaut, Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL) chiffre le contenu client au repos. Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL) gère ce 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 Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL). 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 clés CMEK, l'accès à vos ressources Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL) 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).
Régions dans lesquelles Database Migration Service est compatible avec les clés CMEK
Les clés CMEK sont disponibles dans tous les emplacements de Database Migration Service locations.
CMEK avec Cloud KMS Autokey
Pour protéger vos ressources Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL) , vous pouvez créer des clés CMEK manuellement ou utiliser Cloud KMS Autokey. Avec Autokey, les trousseaux de clés et les clés sont générés à la demande pour prendre en charge la création ou la mise à jour de ressources dans Database Migration Service (pour Oracle vers Cloud SQL pour PostgreSQL). Les agents de service qui utilisent les clés pour les opérations de chiffrement et de déchiffrement sont créés s'ils n'existent pas déjà et s'ils disposent des rôles IAM (Identity and Access Management) requis. Pour en savoir plus, consultez la présentation d'Autokey.
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 un job de migration dans Database Migration Service, vous sélectionnez cette clé pour chiffrer le job de migration.
Lorsque vous créez des jobs de migration qui utilisent des clés CMEK, vous devez connaître l'ID et la région de ces clés. Vous devez placer les bases de données de destination dans la même région que la clé CMEK associée au job 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.
Les clés CMEK utilisent le format suivant :
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
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 de la clé 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 clés CMEK sur un job de migration en cours d'exécution.
Bien que vous puissiez utiliser des clés CMEK pour chiffrer les données de la base de données source, vous ne pouvez pas les utiliser pour chiffrer les métadonnées des jobs de migration, telles que l'ID du job de migration, l'adresse IP de la base de données source, etc.
Utiliser CMEK
Maintenant que vous comprenez le fonctionnement des clés CMEK, vous êtes prêt à configurer un compte de service et des clés pour les clés CMEK. Vous apprendrez également à configurer un job de migration pour utiliser des clés 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 Cloud SDK.
- Assurez-vous que le rôle "Administrateur de migration de bases de données" est bien 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 Database Migration Service.
Workflow de création de jobs de migration dans Database Migration Service avec des clés 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 des clés CMEK. Pour en savoir plus, consultez 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.
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, créez un job de migration dans Database Migration Service, et utilisez votre clé CMEK dans la section Options de chiffrement avancées.
Votre job de migration dans Database Migration Service est désormais activé avec des clés CMEK.
Créer un compte de service
Vous devez créer un compte de service pour chaque projet nécessitant des clés 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 Cloud SQL 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 les clés 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 Google Cloud projet que le job 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 au job de migration. Une clé multirégionale ou régionale globale n'est pas acceptée. Si les régions ne correspondent pas, vous ne pouvez pas créer le job de migration.
Pour créer une clé Cloud KMS, procédez comme suit :
Console
- Dans la Google Cloud console, accédez à la page Jobs de migration.
- 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=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
Vous n'avez besoin d'effectuer cette procédure 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@datamigrationiam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Créer un job de migration dans Database Migration Service avec des clés CMEK
Lorsque vous créez un job de migration, vous pouvez utiliser votre clé CMEK pour gérer le chiffrement de vos données.
Désactiver et réactiver des versions de clé
Consultez les articles suivants :