Snowflake Row-Level Security
Dans le monde axé sur les données d’aujourd’hui, sécuriser les informations sensibles est crucial. À mesure que de plus en plus d’organisations migrent leurs données vers des entrepôts de données basés sur le cloud comme Snowflake, la mise en œuvre de mesures de sécurité robustes devient primordiale. Un outil puissant dans l’arsenal de sécurité de Snowflake est la sécurité au niveau des lignes (RLS). Dans cet article, nous explorerons les bases de la sécurité au niveau des lignes de Snowflake et comment elle permet de protéger vos données.
Qu’est-ce que la sécurité au niveau des lignes ?
La sécurité au niveau des lignes protège les données en n’autorisant l’accès qu’à des lignes spécifiques dans une table en fonction de certaines conditions. Cela signifie que les utilisateurs ne peuvent voir et interagir qu’avec les données auxquelles ils sont autorisés à accéder. Cela fournit une couche supplémentaire de sécurité en restreignant l’accès aux informations sensibles.
Cette fonctionnalité permet aux organisations de contrôler qui peut voir ou modifier les données dans leurs bases de données. Vous pouvez contrôler qui peut voir ou changer des lignes spécifiques, gardant ainsi les données sensibles en sécurité. RLS est utile lorsqu’il est nécessaire que différents utilisateurs ou groupes accèdent à des parties spécifiques des données dans une table.
Implémentation de la sécurité au niveau des lignes dans Snowflake
Snowflake, un entrepôt de données basé sur le cloud de premier plan, propose un ensemble complet de fonctionnalités de sécurité, y compris la sécurité au niveau des lignes. Plongeons dans le fonctionnement de RLS dans Snowflake et répondons à quelques questions courantes.
Y a-t-il des “lignes” dans Snowflake ?
Oui, Snowflake organise les données dans des tables composées de lignes et de colonnes. Chaque ligne représente un enregistrement ou une entrée unique dans la table. Lors de la mise en œuvre de RLS, vous définissez des politiques qui déterminent quelles lignes sont accessibles pour des utilisateurs ou des rôles spécifiques.
Par exemple, vous pouvez disposer de données structurées dans des fichiers CSV ou semi-structurés sur Amazon S3 et les mettre en scène avec Snowflake. Snowflake offre une méthode plus organisée et efficace pour rechercher et analyser les données avec des tables. Il vous permet de créer des tables pointant vers des données sur S3, afin que vous puissiez utiliser SQL et le moteur de requête de Snowflake efficacement.
Mise en scène des données sensibles
Pour tirer parti de la sécurité au niveau des lignes dans Snowflake, vous devez vous assurer que les données sensibles sont correctement mises en scène. Cela implique d’identifier les colonnes contenant des informations sensibles et d’appliquer des mesures de sécurité appropriées. Snowflake vous permet de masquer les données sensibles à l’aide de vues sécurisées ou de fonctions SQL en fonction des rôles ou des critères des utilisateurs.
Vous pouvez utiliser la sécurité au niveau des colonnes pour définir des règles qui filtrent les données sensibles lors de la configuration de votre base de données.
Exemple utilisant la commande COPY :
— Créer une table pour établir les données
CREATE TABLE employee_data ( id INT, name STRING, email STRING, salary DECIMAL );
Et la mise en scène peut ressembler à ceci :
-- Mettre en scène les données d'un fichier CSV, en excluant les lignes où le salaire dépasse un seuil COPY INTO employee_data (id, name, email) FROM 's3://your-bucket/path/to/file.csv' FILE_FORMAT = (TYPE = 'CSV') PATTERN = '.*' WHERE salary < 100000;
Dans cet exemple, nous transférons les données d’un fichier CSV vers la table employee_data. Seules les colonnes id, name et email sont transférées. La clause WHERE filtre les lignes où le salaire dépasse un certain seuil. Cela empêche la mise en scène des données sensibles.
Masquer les données dans des lignes spécifiques
Snowflake offre des capacités de masquage des données permettant de masquer les informations sensibles dans des lignes spécifiques. En utilisant les politiques de masquage, vous pouvez remplacer les données sensibles par des valeurs ou des caractères alternatifs, tels que des astérisques (*) ou des nombres aléatoires. De cette manière, les utilisateurs ayant un accès restreint verront des données masquées à la place des informations sensibles réelles.
Exemple :
CREATE MASKING POLICY mask_email AS (val STRING) RETURNS STRING -> CASE WHEN current_role() IN ('admin', 'manager') THEN val ELSE '*****' END;
Dans cet exemple, une politique de masquage nommée mask_email est créée. Elle vérifie le rôle de l’utilisateur actuel et masque les adresses e-mail avec des astérisques (*) pour les utilisateurs qui ne sont pas dans les rôles ‘admin’ ou ‘manager’.
Bloquer l’accès pour certains utilisateurs
Snowflake vous permet de contrôler l’accès à des lignes spécifiques en fonction des rôles des utilisateurs ou d’autres conditions. En créant des politiques d’accès aux lignes (RAP), vous pouvez définir des règles déterminant quels utilisateurs ou rôles peuvent accéder à certaines lignes. Les RAP sont créées à l’aide d’expressions SQL et peuvent être appliquées à des tables ou des vues.
Exemple :
CREATE ROW ACCESS POLICY rap_sales AS (department STRING) RETURNS BOOLEAN -> current_role() = 'sales_manager' OR (current_role() = 'sales_rep' AND department = 'sales');
Dans cet exemple, nous créons une politique d’accès aux lignes nommée rap_sales. Le directeur des ventes peut voir toutes les lignes. Le commercial ne peut voir que les lignes où le département est les ventes.
Lorsque vous utilisez RAP avec Snowflake, la sécurité au niveau des lignes est appliquée à toutes les tables et vues, même aux niveaux imbriqués. Vous n’avez pas besoin de répéter les conditions de la politique à chaque niveau.
Surveiller l’accès à certaines lignes
Snowflake fournit des capacités de journalisation des audits qui vous permettent de surveiller l’accès aux tables et aux vues. En activant la journalisation des accès pour une table ou une vue, vous pouvez suivre qui a accédé aux données et quand. Cependant, il est important de noter que la journalisation des accès n’est pas assez granulaire pour suivre l’accès à des lignes spécifiques dans une table ou une vue.
Exemple :
ALTER TABLE sensitive_data_table SET DATA_RETENTION_TIME_IN_DAYS = 30 ENABLE ACCESS_LOGGING = TRUE;
Dans cet exemple, nous avons activé la journalisation pour la table sensitive_data_table. Le système conserve les informations de journal pour 30 jours. Les journaux d’accès enregistrent qui a accédé à une table et quand, mais ne montrent pas quelles lignes spécifiques l’utilisateur a consultées.
Si vous souhaitez un audit plus détaillé pour chaque ligne, vous devrez peut-être ajouter des journaux supplémentaires à votre application. Vous pouvez également envisager d’utiliser des outils tiers comme DataSunrise. Ces outils peuvent suivre et analyser les modèles de requêtes et les accès aux données de manière plus détaillée.
Conclusion
La sécurité au niveau des lignes de Snowflake est un outil puissant pour sécuriser vos données basées sur le cloud. En mettant en œuvre RLS, vous pouvez vous assurer que les informations sensibles sont protégées et accessibles uniquement aux utilisateurs autorisés. Snowflake offre des outils comme le masquage des données et la journalisation des accès pour vous aider à contrôler les paramètres de sécurité de manière détaillée.
Bien que Snowflake offre des capacités de sécurité intégrées, la gestion et la configuration de ces fonctionnalités peuvent être complexes. DataSunrise, un fournisseur de solutions de sécurité des bases de données de premier plan, propose des outils conviviaux et flexibles pour la sécurité des bases de données, le masquage et la conformité. Avec DataSunrise, vous pouvez simplifier la mise en œuvre de la sécurité de votre entrepôt de données et assurer une protection complète de votre entrepôt de données Snowflake.
Contactez notre équipe pour une démonstration en ligne pour en savoir plus sur la façon dont DataSunrise peut protéger votre environnement Snowflake. Nos experts vous montreront comment DataSunrise fonctionne avec Snowflake pour améliorer les fonctionnalités et les avantages en matière de sécurité.
Ne compromettez pas la sécurité des données. Utilisez la sécurité au niveau des lignes de Snowflake et DataSunrise pour protéger les données sensibles et maintenir la confiance des clients et des parties prenantes.