Pour protéger les données au repos dans vos clusters et sauvegardes AlloyDB pour PostgreSQL avec des clés que vous contrôlez, vous pouvez créer, autoriser, appliquer et gérer des clés de chiffrement gérées par le client (CMEK) dans Cloud Key Management Service (Cloud KMS).
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 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-west1ne peut utiliser que des clés situées 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 beta services identity createcrée ou obtient l'agent de service qu'AlloyDB peut utiliser pour accéder à la clé Cloud KMS en votre nom.L'ID de l'agent de service ressemble à une adresse e-mail :
Service identity created: service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comAttribuez le rôle de chiffreur/déchiffreur de CryptoKeys Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) à l'agent de service :gcloud kms keys add-iam-policy-binding KEY \ --location=REGION \ --keyring=KEYRING \ --project=PROJECT \ --member=serviceAccount:service-PROJECT_NUMBER@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 exempleus-central1.KEYRING: ID du trousseau de clés Cloud KMS de la clé.PROJECT: ID du projet de la clé.PROJECT_NUMBER: numéro du projet de votre cluster AlloyDB.
Ce rôle accorde à l'agent de service l'autorisation de chiffrer et de déchiffrer à l'aide de la clé Cloud KMS. Pour en savoir plus sur les rôles et les autorisations Cloud KMS, consultez Autorisations et rôles Cloud KMS.
Créer un cluster chiffré par 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 à la place. 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 de la clé d'un cluster utilisant une 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=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).
Le résultat inclut un champ encryptionInfo avec un résumé du chiffrement du cluster.
Appliquer une 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 Configurer un plan de sauvegarde.
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 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 sur vos données AlloyDB existantes :
L'accès immédiat se poursuit : les données restent chiffrées avec leur version d'origine de la clé de chiffrement des données (DEK), tant que la version antérieure de la clé est toujours disponible dans Cloud 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 sur la dernière version de la 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 pendant le processus de restauration.
Pour en savoir plus, consultez Restauration de cluster.
La rotation fréquente des clés CMEK avec AlloyDB nécessite des coûts opérationnels importants. Étant donné que les données existantes ne sont pas automatiquement rechiffrées et que le rechiffrement manuel implique une sauvegarde complète et une restauration vers un nouveau cluster, des 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és CMEK dans Cloud KMS qu'après avoir vérifié 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 sauvegarde de votre projet utilise le chiffrement géré par Google ou Cloud KMS (CMEK).
Accéder à la page "Sauvegardes"
Pour afficher les détails de la clé d'une sauvegarde utilisant une 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 BACKUP_ID \
--project=PROJECT \
--region=REGIONRemplacez les éléments suivants :
BACKUP_ID: ID de la sauvegarde à décrire.PROJECT: ID du projet de la sauvegarde.REGION: région de la sauvegarde, par exempleus-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 l'accès à vos données sans attendre la propagation de la clé, procédez comme suit :
Supprimez l'instance principale de votre cluster. La suppression de l'instance principale 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 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 se produit.
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 de l'activation de la journalisation pour l'API Cloud KMS dans votre projet.
Accédez à la page 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 exempleus-central1.KEYRING: ID du trousseau de clés Cloud KMS de la clé.KEY: ID Cloud KMS de la clé.
En situation normale, les opérations de chiffrement et de déchiffrement sont consignées avec un niveau de gravité
INFO. Ces entrées sont consigné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 requête 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.