DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Masquage de données pour Apache Impala

Masquage de données pour Apache Impala

Introduction

Le masquage de données pour Impala est crucial lorsqu’il s’agit de protéger les informations sensibles stockées dans Apache Impala, comme le font de nombreuses organisations pour les requêtes SQL en temps réel et distribuées. Impala traite des données structurées qui incluent souvent des informations sensibles, telles que des informations personnellement identifiables (PII) et des dossiers financiers. La mise en œuvre du masquage de données dans Impala renforce la sécurité, assure la conformité et atténue les risques d’accès non autorisé.

Qu’est-ce que le masquage de données ?

Le masquage de données protège les informations sensibles en remplaçant les valeurs originales par des données obscurcies, permettant aux organisations de conserver l’utilisabilité des données pour l’analyse et le développement tout en préservant la confidentialité.

Types courants de masquage de données :

Mesures de sécurité complémentaires :

  • Tokenisation : Remplace les données sensibles par des tokens tout en préservant l’intégrité référentielle.
  • Chiffrement : Convertit les données en formats non lisibles, réversibles avec des clés de déchiffrement.

Mise en œuvre du masquage de données pour Apache Impala avec les capacités natives

Table d’exemple

Avant de plonger dans différentes techniques de masquage, créons une table d’exemple pour travailler :

CREATE TABLE users (
    id INT,
    ssn STRING,
    name STRING
);

INSERT INTO users VALUES (1, '123-45-6789', 'Alice'), (2, '987-65-4321', 'Bob');

Maintenant, explorons différentes stratégies de masquage.

1. Masquage de données pour Apache Impala basé sur les vues

Une manière simple d’implémenter le masquage dans Impala est d’utiliser des vues, qui restreignent l’accès direct aux tables et appliquent des transformations prédéfinies.

Exemple : Masquage des numéros de sécurité sociale (SSN)

CREATE VIEW masked_users AS
SELECT
    id,
    CONCAT('XXX-', RIGHT(ssn, 4)) AS masked_ssn,
    name
FROM users;

SELECT * FROM masked_users;

Résultat attendu :

idSSN masquénom
1XXX-9012Charlie
2XXX-1098Diana

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 :

idssnnom
1123-45-9012Charlie
2987-65-1098Diana

Données de sortie dans la table users :

idSSN masquénom
1XXX-9012Charlie
2XXX-1098Diana

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 :

  1. Écrire des UDF en C++ personnalisées pour implémenter la logique de masquage dont vous avez besoin
  2. Utiliser les UDF Java existantes de Hive pour le masquage en les important dans Impala
  3. 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 :

idSSN masquénom
1XXX-9012Charlie
2XXX-1098Diana

Explication :

  • La UDF mask_ssn transformerait les SSN en remplaçant les cinq premiers caractères par XXX-, 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 :

  1. Connectez votre instance Impala à DataSunrise.
Masquage de données pour Apache Impala - Instance Apache Impala connectée avec succès affichée dans le panneau de configuration de la base de données DataSunrise
Instance Apache Impala connectée avec succès affichée dans le panneau de configuration de la base de données DataSunrise
  1. Définissez les règles de masquage via l’interface DataSunrise.
Masquage de données pour Apache Impala - Utilisateur sélectionnant les colonnes à masquer depuis la base de données Impala en utilisant l'interface DataSunrise
Utilisateur sélectionnant les colonnes à masquer depuis la base de données Impala en utilisant l’interface DataSunrise
  1. Validez le masquage des données en exécutant des requêtes de test.
Masquage de données pour Apache Impala - Résultat de la requête SQL SELECT affichant les valeurs masquées de la colonne dans Apache Impala
Résultat de la requête SQL SELECT affichant les valeurs masquées de la colonne dans Apache Impala

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.

Suivant

Percona Server pour MySQL Data Activity History

Percona Server pour MySQL Data Activity History

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]