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 CMEK, consultez À propos des 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. Par exemple, un cluster AlloyDB situé dans
us-west1
ne 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.
Accorder l'accès à AlloyDB pour la clé.
- À l'aide de 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=PROJECT
La 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
- Attribuez le rôle
cloudkms.cryptoKeyEncrypterDecrypter
au 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.cryptoKeyEncrypterDecrypter
Remplacez 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 des données à l'aide de la clé Cloud KMS. Pour en savoir plus, consultez Autorisations et rôles Cloud KMS.
Créer un cluster chiffré avec 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 CMEK.
Pour afficher les détails d'un cluster utilisant CMEK, cliquez sur son nom dans la colonne Nom de la ressource. Le champ Clé de chiffrement de la page d'informations qui s'affiche contient une description de la clé, y compris un lien vers sa propre page d'informations Cloud KMS.
gcloud
Appelez la commande gcloud alloydb clusters
describe
:
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION
Remplacez 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
Le résultat inclut un champ encryptionInfo
avec un récapitulatif du chiffrement du cluster.
Appliquer 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 faites pivoter une clé CMEK, les données AlloyDB existantes sont affectées comme suit :
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 l'ancienne version 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 utilisent 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 Restaurer un cluster.
La rotation fréquente des clés CMEK avec AlloyDB nécessite une charge opérationnelle importante. Étant donné que les données existantes ne sont pas automatiquement réencryptées et que la réencryption manuelle implique une sauvegarde complète et une restauration vers 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 les anciennes versions de clés CMEK dans Cloud KMS qu'après avoir confirmé que toutes les données AlloyDB concernées ont été 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 CMEK.
Accéder à la page "Sauvegardes"
Pour afficher les détails clés d'une sauvegarde utilisant CMEK, cliquez sur Restaurer. Le champ Clé de chiffrement du panneau d'informations suivant contient une description de la clé, y compris un lien vers sa propre page d'informations Cloud KMS.
gcloud
Appelez la commande gcloud alloydb backups describe
:
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION
Remplacez 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écapitulatif 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'a aucune incidence sur 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-en une autre.
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 spécifique, 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 console Google Cloud .
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 consigné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 consignées en tant que
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, selon la justification fournie, vous pouvez approuver ou refuser automatiquement une requête. Pour en savoir plus, consultez Afficher les justifications et agir en conséquence.