Pour contrôler et gérer les clés de chiffrement qui protègent vos données au repos dans les clusters et les sauvegardes AlloyDB pour PostgreSQL, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud Key Management Service (Cloud KMS).
Pour plus d'informations sur les CMEK en général, y compris quand et pourquoi activer cette fonctionnalité, consultez la documentation Cloud KMS.
Par défaut, AlloyDB pour PostgreSQL chiffre le contenu client au repos. AlloyDB gère le 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 AlloyDB. 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. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et 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 CMEK, l'accès à vos ressources AlloyDB 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).
Pour apprendre à utiliser des CMEK créées manuellement afin de protéger vos ressources AlloyDB, consultez Utiliser des CMEK.
CMEK avec Cloud KMS Autokey
Pour protéger vos ressources AlloyDB, 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 permettre la création de ressources dans AlloyDB. 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 section Présentation de la clé automatique.
Fonctionnalités
Contrôle des accès aux données : les administrateurs peuvent effectuer une rotation, gérer l'accès, et désactiver ou détruire la clé que vous avez utilisée pour protéger les données au repos dans AlloyDB.
La gestion des clés est assurée par Cloud KMS. Les clusters ne se rechiffrent pas automatiquement avec la nouvelle version de la clé après la rotation. Les clusters sont chiffrés par la version principale de la CMEK au moment de leur création. Pour effectuer une rotation du chiffrement du cluster, créez une sauvegarde et restaurez le cluster avec une version de clé plus récente. Pour en savoir plus sur les sauvegardes et la récupération, consultez Présentation de la sauvegarde et de la récupération de données.
Possibilité de réaliser des audits : si vous activez la journalisation d'audit pour l'API Cloud KMS dans votre projet, toutes les actions effectuées sur la clé, y compris celles effectuées par AlloyDB, sont consignées et visibles dans Cloud Logging.
Performances : l'utilisation de CMEK n'apporte aucune modification aux performances d'AlloyDB.
Tarifs
AlloyDB facture un cluster avec CMEK activée de la même manière que n'importe quel autre cluster, sans frais AlloyDB supplémentaires. Pour en savoir plus, consultez la page Tarifs d'AlloyDB pour PostgreSQL.
Cloud KMS vous facture le coût de la clé, ainsi que les opérations de chiffrement et de déchiffrement lorsque AlloyDB utilise la clé. Pour en savoir plus, consultez les tarifs de Cloud Key Management Service.
Éléments protégés par CMEK
AlloyDB utilise votre clé Cloud KMS pour protéger les données au repos de la manière suivante :
- Si vous activez les CMEK sur un cluster, AlloyDB utilise votre clé pour chiffrer toutes les données de votre cluster dans l'espace de stockage.
- Si vous spécifiez une configuration CMEK lors de la création d'une sauvegarde à la demande, AlloyDB utilise votre clé pour chiffrer cette sauvegarde.
Si vous activez les CMEK avec la configuration de sauvegarde continue ou automatisée de votre cluster, AlloyDB utilise votre clé pour chiffrer vos sauvegardes en cours.
Que vous utilisiez Google-owned and Google-managed encryption keys ou des CMEK, AlloyDB dispose de trois couches de chiffrement :
AlloyDB divise les données au repos en fragments pour le stockage et chiffre chaque fragment avec une clé de chiffrement individuelle. La clé utilisée pour chiffrer les données contenues dans un fragment est appelée "clé de chiffrement des données" (DEK, Data Encryption Key).
En raison de la nécessité d'une faible latence et d'haute disponibilité, ainsi que du grand nombre de clés chez Google, AlloyDB stocke chaque DEK à proximité des données qu'elle chiffre.
AlloyDB chiffre chaque DEK avec une clé de chiffrement de clé (KEK) détenue par le cluster.
Enfin, AlloyDB chiffre la KEK avec la clé de chiffrement basée sur Cloud KMS de votre cluster, qui est une cléGoogle-owned and Google-managed encryption key ou une clé CMEK.
Vous pouvez également afficher les versions de clé utilisées pour protéger un cluster.
Activer les CMEK
Pour permettre à un cluster AlloyDB d'utiliser une CMEK, vous devez spécifier la clé Cloud KMS au moment de la création du cluster.
AlloyDB peut accéder à la clé en votre nom une fois que vous avez attribué le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) à l'agent de service AlloyDB.
Pour obtenir des instructions détaillées, consultez la page Utiliser des clés de chiffrement gérées par le client (CMEK).
Gérer les clés
Utilisez Cloud KMS pour toutes les opérations de gestion des clés. AlloyDB ne peut pas détecter les modifications de clé ni agir en conséquence tant qu'elles n'ont pas été propagées par Cloud KMS. La propagation de certaines opérations, telles que la désactivation ou la destruction d'une clé, peut prendre jusqu'à trois heures. Les modifications apportées aux autorisations se propagent généralement beaucoup plus rapidement.
Une fois le cluster créé, AlloyDB appelle Cloud KMS toutes les cinq minutes environ pour s'assurer que la clé est toujours valide.
Si AlloyDB détecte que votre clé Cloud KMS a été désactivée ou détruite, il lance une opération pour rendre les données de votre cluster inaccessibles. Si les appels d'AlloyDB à Cloud KMS détectent qu'une clé précédemment désactivée a été réactivée, l'accès est automatiquement restauré.
Utiliser et gérer des clés externes
Au lieu d'utiliser des clés résidant sur Cloud KMS, vous pouvez utiliser des clés résidant chez un partenaire de gestion de clés externes compatible. Pour ce faire, utilisez Cloud External Key Manager (Cloud EKM) afin de créer et de gérer des clés externes, qui sont des pointeurs vers des clés résidant en dehors de Google Cloud. Pour en savoir plus, consultez la page Cloud External Key Manager.
Après avoir créé une clé externe avec Cloud EKM, vous pouvez l'appliquer à un nouveau cluster AlloyDB en fournissant l'ID de cette clé lors de la création du cluster. Cette procédure est identique à l'application d'une clé Cloud KMS à un nouveau cluster.
Vous pouvez utiliser Key Access Justifications dans Cloud EKM. Key Access Justifications vous permet d'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 présentation.
Google ne contrôle pas la disponibilité des clés dans un système partenaire de gestion de clés externes.
Indisponibilité de la clé
Si vous désactivez la clé Cloud KMS utilisée pour chiffrer un cluster AlloyDB, les instances AlloyDB appartenant à ce cluster subissent un temps d'arrêt dans les 30 minutes. La réactivation de la clé permet de restaurer les instances.
Dans de rares cas, par exemple lorsque Cloud KMS n'est pas disponible, AlloyDB peut ne pas être en mesure de récupérer l'état de votre clé à partir de Cloud KMS. Dans ce scénario, AlloyDB continue de prendre en charge les opérations complètes du cluster au mieux pendant une période maximale de 30 minutes afin de minimiser l'impact de toute panne temporaire sur votre charge de travail.
Au bout de 30 minutes, si AlloyDB ne parvient toujours pas à se connecter à Cloud KMS, il commence à mettre le cluster hors connexion par mesure de protection. Les données de votre cluster AlloyDB restent inaccessibles jusqu'à ce que votre cluster puisse se reconnecter à Cloud KMS et que Cloud KMS réponde en signalant que la clé est bien active.
Sauvegardes et restauration
AlloyDB protège également les sauvegardes avec une CMEK ou le chiffrement par défaut géré par Google. Si une sauvegarde est activée pour CMEK, elle est chiffrée à l'aide de la version principale de la clé Cloud KMS au moment de la création de la sauvegarde. Une fois qu'une sauvegarde est créée, sa clé et sa version de clé ne peuvent pas être modifiées, même si la clé Cloud KMS est alternée. Pour en savoir plus sur le chiffrement des sauvegardes avec CMEK, consultez Sauvegarder un cluster.
Lorsque vous restaurez un cluster à partir d'une sauvegarde, le cluster restauré utilise par défaut le chiffrement géré par Google, mais vous pouvez spécifier une clé CMEK à utiliser à la place. Pour restaurer une sauvegarde pour laquelle CMEK est activée, la clé et la version de clé utilisées pour chiffrer la sauvegarde doivent être disponibles.
Réplication interrégionale
Étant donné que les clés Cloud KMS sont des ressources régionales, un cluster principal et un cluster secondaire interrégional doivent utiliser des clés Cloud KMS différentes situées dans leurs régions respectives. Les configurations de chiffrement d'un cluster principal et de son cluster secondaire sont indépendantes les unes des autres. Pour protéger les deux clusters avec des CMEK, créez une clé Cloud KMS dans la région du cluster principal et une clé Cloud KMS distincte dans la région du cluster secondaire.
Journalisation
Vous pouvez auditer les requêtes qu'AlloyDB envoie à Cloud KMS en votre nom dans Cloud Logging, si vous avez activé la journalisation d'audit pour l'API Cloud KMS dans votre projet. Ces entrées de journal Cloud KMS sont visibles dans Cloud Logging. Pour en savoir plus, consultez Afficher les journaux d'audit d'une clé Cloud KMS.