Cette page explique comment créer, configurer et appliquer des clés de chiffrement gérées par le client (CMEK) pour AlloyDB pour PostgreSQL.
Pour en savoir plus sur les clés CMEK, consultez À propos des clés CMEK.
Créer et autoriser une clé CMEK pour AlloyDB
Créez une clé dans Cloud Key Management Service (Cloud KMS). AlloyDB est compatible avec les types de clés suivants :
La clé doit se trouver au même emplacement que votre cluster AlloyDB cluster. Par exemple, un cluster AlloyDB situé dans
us-west1ne peut utiliser que des clés dansus-west1.Si vous disposez déjà d'une clé Cloud KMS au bon emplacement, vous pouvez ignorer cette étape.
Accordez à AlloyDB l'accès à la clé.
- À l'aide de la Google Cloud CLI, créez et affichez l'agent de service, ou affichez-le si le compte existe déjà :
gcloud beta services identity create --service=alloydb.googleapis.com \ --project=PROJECTLa commande gcloud services identity crée ou obtient l'agent de service qu' AlloyDB peut utiliser pour accéder à la clé Cloud KMS en votre nom.
L'ID de compte de service ressemble à une adresse e-mail :
Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com- Accordez le rôle
cloudkms.cryptoKeyEncrypterDecrypterau compte de service :
gcloud kms keys add-iam-policy-binding KEY \ --location REGION \ --keyring KEYRING \ --project=PROJECT \ --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterRemplacez les éléments suivants :
- KEY : ID Cloud KMS de la clé
- REGION : région de la clé (par exemple,
us-central1) - PROJECT : ID du projet de la clé
- KEYRING : ID du trousseau de clés Cloud KMS de la clé
Ce rôle accorde au compte de service l'autorisation de chiffrer et de déchiffrer à l'aide de la clé Cloud KMS. Pour en savoir plus, consultez Autorisations et Rôles Cloud KMS.
Créer un cluster chiffré avec une clé CMEK
Lorsque vous créez un cluster, vous pouvez choisir de le chiffrer avec le chiffrement par défaut géré par Google ou d'utiliser une clé CMEK. Pour en savoir plus, consultez Créer un cluster et son instance principale.
Afficher la méthode de chiffrement et la clé CMEK d'un cluster
Console
La colonne Chiffrement de la page Clusters indique si chaque cluster de votre projet utilise le chiffrement géré par Google ou une clé CMEK.
Pour afficher les détails de la clé d'un cluster utilisant une clé CMEK, cliquez sur son nom dans la colonne Nom de la ressource. Le champ Clé de chiffrement de la page de détails qui s'affiche contient une description de la clé, y compris un lien vers sa propre page de détails Cloud KMS.
gcloud
Appelez la gcloud alloydb clusters
describe commande :
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGIONRemplacez les éléments suivants :
- CLUSTER : ID du cluster à décrire
- PROJECT: ID du projet du cluster
- REGION : région du cluster (par exemple,
us-central1)
La sortie inclut un champ encryptionInfo avec un résumé du chiffrement du cluster.
Appliquer une clé CMEK aux sauvegardes
Lorsque vous créez une sauvegarde, vous pouvez choisir de la chiffrer à l'aide du chiffrement par défaut géré par Google ou d'une clé CMEK. Pour en savoir plus, consultez Créer une sauvegarde à la demande ou Planifier des sauvegardes automatiques.
Vous pouvez également appliquer une clé CMEK au cluster créé lors de la restauration à partir d'une sauvegarde, quelle que soit la méthode de chiffrement de cette sauvegarde. Pour en savoir plus, consultez Restaurer un cluster.
Effectuer une rotation des clés à l'aide du chiffrement CMEK
Il est important de comprendre les implications de la rotation de vos clés de chiffrement gérées par le client (CMEK) dans Cloud Key Management Service (Cloud KMS) lorsqu'elles sont utilisées avec des clusters AlloyDB.
Lorsque vous effectuez une rotation d'une clé CMEK, les événements suivants se produisent pour vos données AlloyDB existantes :
L'accès immédiat est maintenu : les données restent chiffrées avec leur version d'origine de la clé de chiffrement des données (DEK) tant que la version précédente de la clé est toujours disponible dans KMS, et qu'elle n'est ni désactivée ni supprimée.
Le rechiffrement complet des données est manuel : pour que toutes vos données AlloyDB soient associées à la dernière version de clé primaire, vous devez les rechiffrer.
Pour rechiffrer votre cluster existant avec une nouvelle version de clé CMEK, vous devez effectuer une opération de sauvegarde et de restauration :
Créez une sauvegarde de votre cluster existant.
Restaurez la sauvegarde dans un nouveau cluster, en spécifiant la nouvelle version de clé primaire CMEK lors du processus de restauration.
Pour en savoir plus, consultez Restauration de cluster.
La rotation fréquente des clés CMEK avec AlloyDB nécessite une surcharge opérationnelle importante. Étant donné que les données existantes ne sont pas rechiffrées automatiquement et que le rechiffrement manuel implique une sauvegarde complète et une restauration dans un nouveau cluster, les rotations fréquentes peuvent être fastidieuses et avoir un impact sur la disponibilité ou la complexité de la gestion.
Vous ne pouvez supprimer en toute sécurité les anciennes versions de clé CMEK dans Cloud KMS qu'après avoir confirmé que toutes les données AlloyDB pertinentes sont rechiffrées manuellement et qu'elles utilisent une version de clé plus récente.
Afficher la méthode de chiffrement et la clé CMEK d'une sauvegarde
Console
La colonne Chiffrement de la page Sauvegardes indique si chaque cluster de votre projet utilise le chiffrement géré par Google ou une clé CMEK.
Accéder à la page "Sauvegardes"
Pour afficher les détails de la clé d'une sauvegarde utilisant une clé CMEK, cliquez sur Restaurer. Le champ Clé de chiffrement du panneau de détails qui s'affiche contient une description de la clé, y compris un lien vers sa propre page de détails Cloud KMS.
gcloud
Appelez la gcloud alloydb backups describe commande :
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGIONRemplacez les éléments suivants :
- CLUSTER : ID de la sauvegarde à décrire
- PROJECT : ID du projet de la sauvegarde
- REGION : région de la sauvegarde (par exemple,
us-central1)
La sortie inclut un champ encryptionInfo avec un résumé du chiffrement de la sauvegarde.
Désactiver une clé
La désactivation de la clé CMEK d'un cluster rend les données de ce cluster inaccessibles jusqu'à ce que vous réactiviez la clé.
Toutefois, la désactivation d'une clé peut prendre jusqu'à trois heures pour se propager à votre cluster AlloyDB. Pour désactiver une clé tout en empêchant immédiatement l'accès à vos données, procédez comme suit :
Supprimez l'instance principale de votre cluster. Cela n'affecte pas les données de votre cluster. Vous pouvez créer une instance principale après avoir réactivé la clé, comme décrit dans la section suivante.
Activer une clé
Pour activer une clé, procédez comme suit :
Si vous avez supprimé l'instance principale de votre cluster avant de désactiver votre clé, créez une instance principale.
L'activation d'une clé peut prendre jusqu'à trois heures pour se propager à votre cluster. Les données du cluster deviennent accessibles dès que cette propagation a lieu.
Afficher les journaux d'audit d'une clé Cloud KMS
Pour afficher les journaux d'audit associés à une clé CMEK particulière, procédez comme suit :
Assurez-vous que la journalisation est activée pour l'API Cloud KMS dans votre projet.
Accédez à l'explorateur de journaux dans la Google Cloud console.
Limitez les entrées de journal à votre clé Cloud KMS en ajoutant les lignes suivantes au générateur de requêtes :
resource.type="cloudkms_cryptokey" resource.labels.location="REGION" resource.labels.key_ring_id="KEYRING" resource.labels.crypto_key_id="KEY"Remplacez les éléments suivants :
- REGION : région de la clé (par exemple,
us-central1) - KEYRING : ID du trousseau de clés Cloud KMS de la clé
- KEY : ID Cloud KMS de la clé
- REGION : région de la clé (par exemple,
En fonctionnement normal, les opérations de chiffrement et de déchiffrement sont enregistrées avec le niveau de gravité
INFO. Ces entrées sont enregistrées lorsque les instances de votre cluster AlloyDB valident la clé Cloud KMS, ce qui se produit environ toutes les cinq minutes.Si AlloyDB ne parvient pas à accéder à la clé, les opérations sont enregistrées en tant qu'
ERROR.
Afficher les justifications d'accès pour une clé Cloud EKM
Si vous utilisez une clé Cloud EKM, vous pouvez utiliser Key Access Justifications pour afficher le motif de chaque demande Cloud EKM. De plus, en fonction de la justification fournie, vous pouvez approuver ou refuser automatiquement une demande. Pour en savoir plus, consultez Afficher les justifications et agir en conséquence .