
Masquage de données pour Apache Impala

id | SSN masqué | nom |
---|---|---|
1 | XXX-9012 | Charlie |
2 | XXX-1098 | Diana |
Les vues offrent un moyen facile de masquer les informations sensibles tout en gardant les données lisibles pour l’analyse.
2. Masquage de données pour Apache Impala via des jobs ETL
Pour les organisations nécessitant des données pré-masquées avant stockage, les jobs ETL (Extract, Transform, Load) peuvent traiter et masquer les données sensibles avant de les insérer dans les tables.
Voici le résultat lors de l’exécution de l’instruction INSERT INTO
sur la table users
à partir des données de la table raw_users
:
Données d’entrée de la table raw_users
:
id | ssn | nom |
---|---|---|
1 | 123-45-9012 | Charlie |
2 | 987-65-1098 | Diana |
Données de sortie dans la table users
:
id | SSN masqué | nom |
---|---|---|
1 | XXX-9012 | Charlie |
2 | XXX-1098 | Diana |
Les valeurs de ssn
ont été masquées pour n’afficher que les quatre derniers chiffres, précédés de XXX-
.
Bien que cette approche améliore la sécurité, elle réduit également la flexibilité, rendant plus difficile la récupération des données originales sans un jeu de données non masqué séparé.
3. Masquage avec des fonctions définies par l’utilisateur (UDF)
Impala ne dispose pas de fonctions UDF de masquage intégrées comme Hive. D’après la documentation, Impala prend en charge l’écriture de fonctions UDF personnalisées en C++ et Java pour la transformation de données, mais n’inclut pas de fonctions de masquage préconstruites. Vous devriez écrire vos propres UDF pour implémenter la fonctionnalité de masquage, similaire à ce que Hive offre avec ses fonctions de masquage intégrées.
Si vous avez besoin de capacités de masquage, vous pourriez :
- Écrire des UDF en C++ personnalisées pour implémenter la logique de masquage dont vous avez besoin
- Utiliser les UDF Java existantes de Hive pour le masquage en les important dans Impala
- Gérer le masquage au niveau de l’application avant de charger les données dans Impala
Supposons que vous ayez écrit une UDF personnalisée dans Impala en utilisant C++ ou Java pour masquer les numéros de sécurité sociale (SSN) dans la colonne ssn
. Nous appellerons cette UDF personnalisée mask_ssn
par simplicité.
Voici un exemple de requête utilisant cette UDF et le résultat attendu :
SELECT id, mask_ssn(ssn) AS masked_ssn, name
FROM users;
Résultat attendu :
id | SSN masqué | nom |
---|---|---|
1 | XXX-9012 | Charlie |
2 | XXX-1098 | Diana |
Explication :
- La UDF
mask_ssn
transformerait les SSN en remplaçant les cinq premiers caractères parXXX-
, laissant les quatre derniers chiffres visibles. - Le résultat attendu est similaire à l’effet de l’utilisation de
CONCAT('XXX-', RIGHT(ssn, 4))
, mais l’utilisation d’une UDF personnalisée offre plus de flexibilité si vous souhaitez implémenter une logique de masquage plus complexe.
Masquage avancé des données pour Impala avec DataSunrise
DataSunrise offre un masquage dynamique et statique sans modifier les données originales. Il garantit :
- Le masquage des données basé sur les rôles.
- Une intégration transparente avec Impala.
- Un impact minimal sur les performances.
Étapes à suivre :
- Connectez votre instance Impala à DataSunrise.

- Définissez les règles de masquage via l’interface DataSunrise.

- Validez le masquage des données en exécutant des requêtes de test.

Conclusion
Le masquage de données est crucial pour protéger les données sensibles dans Impala et garantir la conformité aux réglementations. Alors que les vues et les UDF offrent des solutions de base, le masquage via ETL procure une approche plus pérenne. DataSunrise renforce davantage la sécurité en proposant des solutions de masquage de données flexibles, évolutives et à impact minimal.
Planifiez une démonstration de DataSunrise pour explorer une sécurité avancée des données pour votre environnement Impala.