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 la page À propos de 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 endroit, 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=PROJECT
La commande gcloud services identity crée ou récupère 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 garantit que le compte de service est autorisé à chiffrer et à déchiffrer avec la clé Cloud KMS. Pour en savoir plus, consultez la page Autorisations et rôles Cloud KMS.
Créer un cluster chiffré 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 informations clés 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 suivante 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
)
La sortie inclut un champ encryptionInfo
avec un résumé du chiffrement du cluster.
Appliquer CMEK aux sauvegardes
Lorsque vous créez une sauvegarde, vous pouvez choisir de la 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 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 la section Restaurer un cluster.
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 informations clés d'une sauvegarde avec CMEK, cliquez sur Restore (Restaurer). Le champ Clé de chiffrement du panneau d'informations qui s'affiche ensuite 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ésumé du chiffrement de la sauvegarde.
Désactiver une clé
Si vous désactivez la clé CMEK d'un cluster, les données de ce cluster deviennent inaccessibles jusqu'à ce que vous réactiviez la clé.
Toutefois, la désactivation d'une clé peut prendre jusqu'à trois heures pour se propager dans 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 une instance principale.
L'activation d'une clé peut prendre jusqu'à trois heures pour se propager dans 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 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 enregistrées avec une gravité
INFO
. Ces entrées sont enregistrées lorsque les instances de votre cluster AlloyDB valident la clé {kms_name_short}, ce qui se produit environ toutes les cinq minutes.Si AlloyDB ne parvient pas à accéder à la clé, les opérations sont journalisé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 la section Afficher et traiter les justifications.