Masquage des données pour Amazon Athena
Introduction
En avril 2024, Mandiant a signalé une menace importante pour les utilisateurs de Snowflake Data Warehouse. L’attaque a exploité des informations d’identification volées pour accéder et compromettre des données précieuses. Cet incident souligne l’importance croissante de mesures de sécurité en cloud robustes dans le paysage numérique actuel. Le masquage des données aide à protéger les informations sensibles en réduisant le risque d’exposition dans des scénarios comme celui-ci. Amazon Athena, un puissant service de requête sans serveur, gère de vastes quantités de données. Explorons les bases du masquage des données pour Amazon Athena et comment il peut protéger vos données sensibles.
Comprendre le masquage des données dans Amazon Athena
Le masquage des données est une technique utilisée pour créer une version structurellement similaire mais non authentique des données d’une organisation. Ce processus vise à protéger les informations sensibles tout en maintenant l’utilité des données à des fins de test ou d’analyse.
Pourquoi le masquage des données est-il important ?
- Conformité : De nombreuses réglementations exigent la protection des données personnelles et sensibles.
- Réduction des risques : Les données masquées minimisent le risque de violations de données.
- Test et développement : Il permet une utilisation sécurisée des données similaires à la production.
Techniques de masquage natives dans Amazon Athena
Amazon Athena propose plusieurs techniques de masquage natives utilisant les fonctionnalités du langage SQL, les vues, les procédures stockées et AWS CLI. Explorons ces méthodes.
Fonctionnalités du langage SQL
Athena prend en charge diverses fonctions SQL qui peuvent être utilisées pour le masquage des données :
- SUBSTR() : Extrait une partie d’une chaîne de caractères.
- CONCAT() : Combine des chaînes de caractères.
- REGEXP_REPLACE() : Remplace du texte en utilisant des expressions régulières.
Vues pour le masquage des données
Les vues peuvent fournir une couche d’abstraction, vous permettant de masquer les données sans modifier la table d’origine.
Exemple :
CREATE OR REPLACE VIEW masked_users AS SELECT id, first_name, last_name, -- Masquer email CONCAT(SUBSTR(email, 1, 3), '***', SUBSTR(email, -4)) AS email, -- Masquer adresse IP REGEXP_REPLACE(ip_address, '(\d+\.\d+\.\d+\.)\d+', '$1***') AS ip_address FROM danielarticletable;
SELECT * FROM "danielarticledatabase"."masked_users" limit 10;
Le résultat peut être comme suit :
Procédures stockées et contrôle d’accès
Il est important de comprendre qu’Amazon Athena n’est pas une base de données traditionnelle, mais plutôt un service de requête. En tant que tel, il ne stocke pas de procédures ni ne gère les utilisateurs de la même manière qu’une base de données conventionnelle. C’est pourquoi nous avons exploré des approches de masquage alternatives, telles que les vues et les fonctions SQL intégrées.
La gestion des utilisateurs et le contrôle d’accès d’Athena sont gérés via AWS Identity and Access Management (IAM), fournissant un modèle de sécurité robuste et natif du cloud. Cependant, cela signifie que les règles de masquage des données doivent généralement être implémentées au niveau de l’application, où le contrôle d’accès est appliqué.
Pour les organisations recherchant une approche plus centralisée et cohérente du contrôle d’accès et du masquage des données, des solutions comme DataSunrise peuvent être précieuses. Utilisé en mode proxy, DataSunrise permet aux administrateurs de bases de données de mettre en œuvre des règles de masquage et des contrôles d’accès cohérents sur différentes sources de données, y compris Athena. Cette approche peut considérablement améliorer la robustesse et la gestion des mesures de protection des données, en particulier dans les environnements complexes et multi-services.
AWS CLI pour le masquage des données
L’interface de ligne de commande AWS (CLI) offre un moyen puissant d’automatiser le masquage des données dans Amazon Athena. Pour un exemple pratique de cette approche, consultez notre article sur le masquage dynamique, qui montre comment implémenter et gérer efficacement la protection des données en utilisant des commandes CLI.
Python et Boto3 pour le masquage natif dans Athena
Explorons comment utiliser Python et Boto3 pour se connecter à Athena, copier des données et masquer les courriels.
import boto3 import time import pandas as pd def wait_for_query_to_complete(athena_client, query_execution_id): max_attempts = 50 sleep_time = 2 for attempt in range(max_attempts): response = athena_client.get_query_execution(QueryExecutionId=query_execution_id) state = response['QueryExecution']['Status']['State'] if state == 'SUCCEEDED': return True elif state in ['FAILED', 'CANCELLED']: print(f"Query failed or was cancelled. Final state: {state}") return False time.sleep(sleep_time) print("Query timed out") return False # Connexion à Athena athena_client = boto3.client('athena') # Exécuter la requête query = "SELECT * FROM danielArticleDatabase.danielArticleTable" response = athena_client.start_query_execution( QueryString=query, ResultConfiguration={'OutputLocation': 's3://danielarticlebucket/AthenaArticleTableResults/'} ) query_execution_id = response['QueryExecutionId'] # Attendre la fin de la requête if wait_for_query_to_complete(athena_client, query_execution_id): # Obtenir les résultats result_response = athena_client.get_query_results( QueryExecutionId=query_execution_id ) # Extraire les noms de colonnes columns = [col['Label'] for col in result_response['ResultSet']['ResultSetMetadata']['ColumnInfo']] # Extraire les données data = [] for row in result_response['ResultSet']['Rows'][1:]: # Skip header row data.append([field.get('VarCharValue', '') for field in row['Data']]) # Créer DataFrame df = pd.DataFrame(data, columns=columns) print("\nAperçu du DataFrame :") print(df.head()) # Masquer les courriels (en supposant que 'email' soit une colonne existante) if 'email' in df.columns: df['email'] = df['email'].apply(lambda x: x[:3] + '***' + x[-4:] if x else x) # Enregistrer les données masquées df.to_csv('danielarticletable_masked.csv', index=False) print("Données masquées enregistrées dans danielarticletable_masked.csv") else: print("Récupération des résultats de la requête échouée")
Ce script récupère les données d’Athena, masque la colonne email et enregistre le résultat dans le fichier danielarticletable_masked.csv. Le fichier de sortie est le suivant :
id,first_name,last_name,email,gender,ip_address 1,Calida,Bulstrode,cbu***.com,Female,42.239.162.240 2,Stephanie,Arndt,sar***.com,Female,41.69.11.161 …
Les informations d’identification AWS ont été définies dans l’environnement virtuel Python. La sortie du script de masquage pour Jupyter Notebook dans notre cas était :
Masquage avec DataSunrise
Bien que le masquage natif soit utile, le masquage DataSunrise offre plus de flexibilité. Il offre des capacités de masquage dynamiques et statiques pour Amazon Athena.
Création d’une règle de masquage dynamique avec DataSunrise
- Accédez à ‘Masquage et Masquage Dynamique’ dans le menu principal.
- Créez une nouvelle règle de masquage.
- Sélectionnez l’instance ‘Amazon Athena’ en tant qu’instance de la règle.
- Configurez la règle de masquage en spécifiant les colonnes à masquer.
- Enregistrez la règle. Elle s’activera automatiquement après l’enregistrement.
Dans l’image ci-dessus, vous pouvez voir deux colonnes marquées pour le masquage. Cependant, la sélection de plusieurs colonnes dans une seule règle peut limiter vos méthodes de masquage disponibles. Si vous avez besoin de différentes techniques de masquage pour chaque champ, envisagez de créer des règles distinctes pour chaque colonne. Cette approche offre plus de flexibilité dans le choix des méthodes de masquage appropriées pour chaque type de données.
Avantages de DataSunrise pour le masquage centralisé
- Contrôle unifié : Gérer les règles de masquage sur plusieurs sources de données.
- Protection en temps réel : Appliquer le masquage dynamiquement lors de l’exécution des requêtes.
- Règles flexibles : Créer des modèles de masquage complexes basés sur les rôles des utilisateurs ou la sensibilité des données.
- Journal d’audit : Suivre toutes les activités d’accès aux données et de masquage.
Masquage statique des données Athena avec DataSunrise
Amazon Athena est un service de requête plutôt qu’une base de données traditionnelle, ce qui signifie que le masquage statique direct dans DataSunrise n’est pas supporté pour Athena. Cependant, des solutions de contournement efficaces sont disponibles. Pour plus de détails sur ces approches alternatives, veuillez consulter notre article dédié sur les stratégies de masquage statique des données Athena.
Meilleures pratiques pour le masquage des données dans Amazon Athena
- Identifier les données sensibles : Auditez régulièrement vos données pour identifier les informations sensibles.
- Utiliser plusieurs techniques : Combinez les fonctionnalités natives d’Athena avec des outils tiers comme DataSunrise.
- Tester minutieusement : Assurez-vous que le masquage ne perturbe pas la fonctionnalité de vos applications.
- Mettre à jour régulièrement : Passez en revue et mettez à jour les règles de masquage au fur et à mesure de l’évolution des données.
- Surveiller et auditer : Suivez qui accède aux données masquées et quand.
Conclusion
Le masquage des données pour Amazon Athena est un aspect crucial de la sécurité des données. En tirant parti des fonctionnalités natives d’Athena et des outils puissants comme DataSunrise, les organisations peuvent protéger les informations sensibles tout en maintenant l’utilité des données. N’oubliez pas, un masquage des données efficace est un processus continu qui nécessite de la vigilance et des mises à jour régulières.
Alors que les violations de données deviennent de plus en plus courantes, investir dans des techniques de masquage des données robustes n’est pas seulement une bonne pratique—c’est une nécessité pour une gestion responsable des données.
DataSunrise offre des outils flexibles et à la pointe de la technologie pour la sécurité des bases de données, y compris des outils complets d’audit et de conformité. Pour une expérience directe de notre suite de protection des données puissante, nous vous invitons à visiter notre site web et à programmer notre démo en ligne.