Comprendre la gestion des clés de chiffrement dans Snowflake¶
Cette rubrique présente les concepts relatifs aux clés gérées par Snowflake et aux clés gérées par les clients.
Dans ce chapitre :
Vue d’ensemble¶
Snowflake gère les clés de chiffrement des données pour protéger les données des clients. Cette gestion peut se faire automatiquement sans que le client n’ait à intervenir.
Les clients peuvent également utiliser le service de gestion des clés de la plateforme Cloud qui héberge leur compte Snowflake pour maintenir leur propre clé de chiffrement supplémentaire.
Lorsqu’elle est activée, la combinaison d’une clé gérée par Snowflake et d’une clé gérée par le client crée une clé maîtresse composite pour protéger les données du client dans Snowflake. C’est ce qu’on appelle le Tri-Secret Secure.
Clés gérées par Snowflake¶
Toutes les données clients de Snowflake sont chiffrées par défaut. Snowflake utilise un chiffrement AES puissant avec un modèle de clé hiérarchique racine dans un module de sécurité matériel hébergé par le fournisseur Cloud.
Le service Snowflake effectue automatiquement une rotation régulière des clés, et les données du client peuvent être automatiquement de nouveau chiffrées régulièrement. Le chiffrement des données du client et la gestion des clés ne nécessitent aucune configuration ni gestion.
Modèle de clé hiérarchique¶
Un modèle de clé hiérarchique fournit une structure de gestion de clé de chiffrement de Snowflake. La hiérarchie est composée de plusieurs couches de clés dans lesquelles chaque couche de clés supérieure (clés parent) chiffre la couche inférieure (clés enfant). Dans le langage de la sécurité, une clé parent chiffrant l’ensemble des clés enfant est ce qu’on appelle un « wrapping ».
Le modèle de clé hiérarchique de Snowflake se compose de quatre niveaux de clé :
La clé racine.
Les clés de compte maîtresses.
Les clés de table maîtresses.
Les clés de fichier.
Chaque compte client possède une hiérarchie de clés distincte composée de clés de niveau compte, de niveau table et de niveau fichier, comme le montre l’image suivante :

Dans un service Cloud à plusieurs locataires comme Snowflake, le modèle de clé hiérarchique isole chaque compte à l’aide de clés master de compte séparées. Outre le modèle de contrôle d’accès qui sépare le stockage des données client, le modèle de clé hiérarchique fournit une autre couche d’isolation de compte.
Un modèle de clé hiérarchique réduit le périmètre de chaque couche de clés. Par exemple, une clé de table maîtresse chiffre une seule table. Une clé de fichier chiffre un seul fichier. Un modèle de clé hiérarchique limite la quantité de données client que chaque clé protège et la durée pendant laquelle elle est utilisable.
Rotation de clé de chiffrement¶
Les clés de la hiérarchie gérée par Snowflake font l’objet d’une rotation automatique par Snowflake lorsqu’elles ont plus de 30 jours. Les clés actives expirent, et de nouvelles clés sont créées. Lorsque Snowflake détermine que la clé retirée n’est plus nécessaire, la clé est automatiquement détruite. Lorsqu’elle est active, une clé est utilisée pour chiffrer les données du client et peut être utilisée par le client. Lorsqu’elle est retirée, la clé sert uniquement à déchiffrer les données du client et n’est disponible que pour accéder aux données.
Lors de l’enveloppement des clés enfants dans la hiérarchie des clés, ou lors de l’insertion de données clients dans une table, seule la clé active actuelle est utilisée pour chiffrer les données. Lorsqu’une clé est détruite, elle n’est utilisée ni pour le chiffrement ni pour le déchiffrement. La rotation régulière des clés limite le cycle de vie des clés à une période de temps limitée.
L’image suivante illustre la rotation des clés pour une clé master de table (TMK) sur une période de trois mois :

La rotation TMK fonctionne comme suit :
La version 1 de la TMK est active en avril. Les données clients insérées dans cette table en avril sont protégées par TMK v1.
En mai, cette TMK fait l’objet d’une rotation : TMK v1 expire et une nouvelle clé complètement aléatoire, TMK v2, est créée. TMK v1 n’est plus utilisé que pour déchiffrer les données clients d’avril. Les nouvelles données clients insérées dans la table sont chiffrées à l’aide de TMK v2.
En juin, la TMK fait de nouveau l’objet d’une rotation : TMK V2 expire et une nouvelle TMK, v3, est créée. TMK v1 est utilisé pour déchiffrer les données clients du mois d’avril, TMK v2 est utilisé pour déchiffrer les données clients du mois de mai, et TMK v3 est utilisé pour chiffrer et déchiffrer les nouvelles données clients insérées dans la table au mois de juin.
Comme indiqué précédemment, la rotation de la clé limite la durée pendant laquelle une clé est activement utilisée pour chiffrer des données clients. En conjonction avec le modèle de clé hiérarchique, la rotation de la clé limite davantage la quantité de données clients qu’une version de clé protège. La limitation de la durée de vie d’une clé est recommandée par le National Institute of Standards and Technology (NIST) afin de renforcer la sécurité.
Periodic Rekeying¶
Cette section poursuit l’explication du cycle de vie de la clé de compte et de table maîtresse. Rotation de clé de chiffrement décrit la rotation de clé, qui remplace périodiquement les clés actives par de nouvelles clés et retire les anciennes clés. La re-saisie périodique des données complète le cycle de vie.
Tandis que la rotation de clé garantit qu’une clé est transférée de son état actif à un état retiré, la re-saisie garantit qu’une clé est transférée de son état retiré à un état détruit.
Si la re-saisie périodique est activée, alors lorsque la clé de chiffrement retirée d’une table date de plus d’un an, Snowflake crée automatiquement une nouvelle clé de chiffrement et chiffre à nouveau toutes les données clients précédemment protégées par la clé retirée en utilisant la nouvelle clé. La nouvelle clé est utilisée pour déchiffrer ultérieurement les données de la table.
Note
Pour les comptes Enterprise Edition, les utilisateurs ayant le ACCOUNTADMIN rôle (c’est-à-dire vos administrateurs de compte) peuvent activer la re-saisie en utilisant ALTER ACCOUNT et le paramètre PERIODIC_DATA_REKEYING :
ALTER ACCOUNT SET ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORY=True; ALTER ACCOUNT SET PERIODIC_DATA_REKEYING = true;
Cela permet d’accéder à Tri-Secret Secure mais n’applique pas de sécurité supplémentaire aux images stockées dans votre dépôt d’images Snowpark.
L’image suivante illustre la re-saisie périodique pour un TMK pour une seule table :

La re-saisie périodique fonctionne comme suit :
En avril de l’année suivante, après que TMK v1 a été retirée pendant une année entière, elle est re-saisie (génération 2) en utilisant une clé aléatoire entièrement nouvelle.
Les fichiers de données clients protégés par TMK v1 génération 1 sont déchiffrés et à nouveau chiffrés avec TMK v1 génération 2. N’ayant plus d’autre utilité, TMK v1 génération 1 est détruite.
En mai, Snowflake effectue le même processus de re-saisie sur les données de table protégées par TMK v2.
Et ainsi de suite.
Dans cet exemple, le cycle de vie d’une clé est limité à une durée totale d’un an.
La nouvelle saisie limite la durée totale d’utilisation d’une clé par le destinataire, selon les recommandations du NIST. De plus, lorsque vous re-saisissez des données clients, Snowflake peut augmenter la taille des clés de chiffrement et utiliser de meilleurs algorithmes de chiffrement qui peuvent avoir été normalisés depuis la création de la génération de clés précédente.
Snowflake re-saisit les fichiers de données clients en ligne, en arrière-plan, sans aucun impact sur les charges de travail client en cours d’exécution. Les données clients en cours de re-saisie sont toujours à votre disposition. Aucune interruption de service n’est nécessaire pour re-saisir les données, et la performance de votre charge de travail n’est pas affectée. Cet avantage est le résultat direct de l’architecture de Snowflake qui sépare les ressources de stockage et de calcul.
Note
Vous ne pouvez pas utiliser de tables hybrides si votre compte Snowflake est activé de sorte à utiliser la re-saisie périodique. Si la re-saisie périodique est activée dans votre compte et que vous souhaitez utiliser des tables hybrides, vous devez utiliser une commande ALTER ACCOUNT pour définir le paramètre PERIODIC_DATA_REKEYING sur FALSE
.
Conséquences de la re-saisie sur Time Travel et Fail-safe¶
Les périodes de conservation Time Travel et Fail-safe ne sont pas touchées par la re-saisie. Toutefois, des frais de stockage supplémentaires sont associés à la re-saisie des données clients en mode Fail-safe (voir la section suivante).
Conséquences de la re-saisie sur l’utilisation de stockage¶
Les clients Snowflake se voient facturer du stockage supplémentaire pour la protection Fail-safe des fichiers de données clients qui ont été re-saisis. Pour ces fichiers, 7 jours de protection Fail-safe sont facturés.
C’est-à-dire, par exemple, que les fichiers de données clients avec l’ancienne clé sur Amazon S3 sont déjà protégés par Fail-safe, et les fichiers de données clients avec la nouvelle clé sur Amazon S3 sont également ajoutés à Fail-safe, ce qui entraîne une deuxième facturation, mais seulement pour la période de 7 jours.
Module de sécurité matérielle¶
Snowflake s’appuie sur des HSMs (Hardware Security Module) hébergés dans le Cloud pour garantir la sécurité du stockage et de l’utilisation des clés. Chaque plateforme Cloud a des HSM services différents, et cela affecte la façon dont Snowflake utilise le HSM service sur chaque plateforme :
Sur AWS et Azure, Snowflake utilise le HSM pour créer et stocker la clé racine.
Sur Google Cloud, le service HSM est mis à disposition par l’intermédiaire de l’API Cloud KMS (Key Management Service) de Google. Snowflake utilise Cloud KMS de Google pour créer et stocker la clé racine dans des partitions HSM à plusieurs locataires.
Pour toutes les plateformes dans le Cloud et toutes les clés dans la hiérarchie des clés, une clé qui est stockée dans le HSM est utilisée pour désencapsuler une clé dans la hiérarchie. Par exemple, pour déchiffrer la clé principale de la table, la clé du HSM désencapsule la clé principale du compte. Ce processus se déroule dans leHSM. À l’issue de ce processus, une opération logicielle permet de déchiffrer la clé maître de la table avec la clé maître du compte.
L’image suivante montre la relation entre HSM, les clés de base de compte, celles de table et de fichier :

Clés gérées par le client¶
Une clé gérée par le client (CMK) est une clé de chiffrement principale que le client conserve dans le service de gestion des clés du fournisseur Cloud qui héberge le compte Snowflake du client. Les services de gestion des clés pour chaque plate-forme sont les suivants :
Google Cloud : Cloud Key Management Service (Cloud KMS)
Microsoft Azure : Azure Key Vault
La CMK peut ensuite être combinée à une clé gérée par Snowflake pour créer une clé principale composite. Lorsque cela se produit, Snowflake parle de Tri-Secret Secure.
Vous pouvez appeler ces fonctions du système dans votre compte Snowflake pour obtenir des informations sur vos clés :
Microsoft Azure : SYSTEM$GET_CMK_AKV_CONSENT_URL
Google Cloud : SYSTEM$GET_GCP_KMS_CMK_GRANT_ACCESS_CMD
Important
Snowflake ne prend pas en charge la rotation des clés pour les clés gérées par le client et ne recommande pas la mise en œuvre d’une politique de rotation automatique des clés sur la clé gérée par le client.
La raison de cette recommandation est que la rotation des clés peut entraîner une perte de données clients si la clé tournée est supprimée, car Snowflake ne sera pas en mesure de déchiffrer les données. Pour plus d’informations, voir Tri-Secret Secure.
Snowflake prend en charge ce qui suit :
Configuration de la rotation automatique des clés chez votre fournisseur de services Cloud. La configuration de la rotation des clés crée une nouvelle version de la même CMK qui inclut le matériel de chiffrement mis à jour. Vous pouvez activer la rotation automatique des clés à l’aide de la fonction de rotation des clés propre à votre fournisseur de Cloud sans aucune action dans Snowflake. Après une rotation de la CMK, Snowflake protège les données existantes en utilisant les versions de clés existantes.
Important
Ne supprimez pas ou ne modifiez pas et ne révoquez pas les autorisations sur les anciennes versions CMK pour tout fournisseur de services Cloud. La suppression d’une clé rotative peut entraîner la perte de données. Snowflake ne peut pas déchiffrer les données chiffrées avec une clé supprimée.
Pour plus d’informations sur la configuration de la rotation automatique des clés gérées par le client dans la plateforme Cloud qui prend en charge votre ou vos compte(s) Snowflake, voir :
Modifier manuellement la CMK utilisée par Tri-Secret Secure (TSS). Pour remplacer CMK par TSS, il faut créer et enregistrer une nouvelle CMK, puis mettre à jour TSS pour l’utiliser. Suivez la procédure d’auto-enregistrement dans Tri-Secret Secure et contactez le support Snowflake pour coordonner le changement de clé.
Important
Ne révoquez pas l’accès à CMK et ne la supprimez pas tant que le personnel du support Snowflake n’a pas confirmé que vous pouviez le faire en toute sécurité.
Avantages des clés gérées par le client¶
Les avantages des clés gérées par le client incluent :
- Contrôle de l’accès aux données clients:
Vous avez un contrôle total sur votre clé de base dans le service de gestion des clés et, par conséquent, sur vos données clients dans Snowflake. Vous devez valider cette clé pour déchiffrer les données stockées dans votre compte Snowflake.
- Désactiver l’accès en raison d’une violation des données client:
Si vous subissez une atteinte à la sécurité, vous pouvez désactiver l’accès à votre clé et arrêter toutes les opérations de données en cours dans votre compte Snowflake.
- Propriété du cycle de vie des données clients:
À l’aide de clés gérées par le client, vous pouvez aligner vos exigences en matière de protection des données sur vos processus métier. Le contrôle explicite de votre clé offre des garanties tout au long du cycle de vie des données clients, de la création à la suppression.
Exigences importantes pour les clés gérées par le client¶
Les clés gérées par le client offrent d’importants avantages sur le plan de la sécurité, mais elles ont aussi des exigences fondamentales et cruciales que vous devez respecter en permanence pour protéger votre clé maîtresse :
- Confidentialité:
Vous devez garder votre clé sécurisée et confidentielle en tout temps.
- Intégrité:
Vous devez vous assurer que votre clé est protégée contre toute modification ou suppression inappropriée.
- Disponibilité:
Pour exécuter des requêtes et accéder à vos données, vous devez vous assurer que votre clé est accessible en permanence par Snowflake.
De par sa conception, une clé invalide ou non disponible entraînera une interruption de vos opérations de données Snowflake jusqu’à ce qu’une clé valide soit de nouveau disponible pour Snowflake.
Snowflake est conçu pour gérer les problèmes de disponibilité temporaires (jusqu’à 10 minutes) causés par des problèmes courants, tels que les pannes de communication réseau. Après 10 minutes, si la clé reste indisponible, toutes les opérations de données dans votre compte Snowflake cessent complètement. Une fois l’accès à la clé restauré, les opérations de données peuvent être relancées.
Le non-respect de ces exigences peut compromettre considérablement l’intégrité de vos données, de l’inaccessibilité temporaire de vos données jusqu’à leur désactivation permanente. De plus, Snowflake ne peut être tenu responsable des problèmes tiers qui surviennent ou des incidents administratifs causés par votre organisation dans le cadre de l’entretien de votre clé.
Par exemple, si un problème avec le service de gestion de clés entraîne l’indisponibilité de votre clé, vos opérations de données seront affectées. Ces problèmes doivent être résolus entre vous et l’équipe de support du service de gestion de clés. De même, si votre clé est modifiée ou détruite, toutes les données existantes dans votre compte Snowflake deviendront illisibles jusqu’à ce que la clé soit restaurée.