Masquage Dynamique des Données pour Amazon Athena : Sécuriser les Données Sans Compromettre l’Utilisabilité

Introduction
Amazon Athena, un service de requête puissant, traite d’énormes quantités de données. Mais comment s’assurer que ces données restent sécurisées ? Voici le masquage dynamique des données pour Amazon Athena. Cette technique offre une solution robuste pour protéger les données sensibles tout en maintenant leur utilité.
Les grandes entreprises sont des cibles de choix pour les cybercriminels en raison de leur infrastructure de données étendue et de leur personnel important. Cela conduit souvent à plus de vulnérabilités comparées à des structures plus petites. Par exemple, en juillet 2024, AT&T a subi une brèche significative de son infrastructure cloud. Cette tendance alarmante souligne la nécessité critique de mesures de protection des données robustes telles que le masquage dynamique.
Plongeons dans le monde du masquage dynamique des données pour Amazon Athena et explorons comment il peut améliorer votre stratégie de sécurité des données.
Comprendre le Masquage Dynamique des Données
Le masquage dynamique des données est une fonctionnalité de sécurité qui limite l’exposition des données sensibles en les masquant à la volée. Contrairement au masquage statique qui altère de manière permanente les données, le masquage dynamique préserve l’information originale tout en contrôlant l’accès.
Pour les utilisateurs d’Amazon Athena, cela signifie :
- Protection renforcée des données
- Conformité simplifiée avec les réglementations sur la confidentialité des données
- Contrôle d’accès flexible basé sur les rôles des utilisateurs
Maintenant, examinons les différentes méthodes pour implémenter le masquage dynamique des données dans Athena.
Masquage Natif avec les Fonctionnalités du Langage SQL
Athena prend en charge le masquage natif en utilisant les fonctionnalités du langage SQL. Cette approche utilise des fonctions intégrées pour masquer les données sensibles directement dans les requêtes.
Voici un exemple simple :
SELECT id, first_name, last_name, CONCAT(SUBSTR(email, 1, 2), '****', SUBSTR(email, -4)) AS masked_email, regexp_replace(ip_address, '(\d+)\.(\d+)\.(\d+)\.(\d+)', '$1.$2.XXX.XXX') AS masked_ip FROM danielarticletable

Cette requête masque les adresses e-mail, ne montrant que les deux premiers et les quatre derniers caractères.
Utilisation des Vues pour le Masquage des Données
Les vues offrent une autre méthode native pour masquer les données dans Athena. En créant une vue avec des colonnes masquées, vous pouvez contrôler l’accès aux données sans modifier la table sous-jacente.
Exemple:
CREATE VIEW masked_user_data AS SELECT id, first_name, last_name, CONCAT(SUBSTR(email, 1, 2), '****', SUBSTR(email, -4)) AS email, regexp_replace(ip_address, '(\d+)\.(\d+)\.(\d+)\.(\d+)', '$1.$2.XXX.XXX') AS ip_address FROM danielarticletable;
SELECT * FROM masked_user_data;

Utilisation de l’AWS CLI pour les Données Masquées
Accéder à la vue masquée d’Athena via CLI est simple, mais nécessite quelques préparations. Tout d’abord, assurez-vous d’avoir configuré l’AWS CLI avec vos identifiants :
aws configure
Pour simplifier le processus, nous avons compilé les commandes nécessaires dans un script. Cette approche simplifie l’interaction avec Athena, car l’exécution des commandes CLI individuellement peut être fastidieuse et sujette aux erreurs. Rendez le fichier exécutable en utilisant la commande chmod +x.
#!/bin/bash QUERY="SELECT * FROM masked_user_data LIMIT 10" DATABASE="danielarticledatabase" S3_OUTPUT="s3://danielarticlebucket/AthenaArticleTableResults/" EXECUTION_ID=$(aws athena start-query-execution \ --query-string "$QUERY" \ --query-execution-context "Database=$DATABASE" \ --result-configuration "OutputLocation=$S3_OUTPUT" \ --output text --query 'QueryExecutionId') echo "Query execution ID: $EXECUTION_ID" # Wait for query to complete while true; do STATUS=$(aws athena get-query-execution --query-execution-id $EXECUTION_ID --output text --query 'QueryExecution.Status.State') if [ $STATUS != "RUNNING" ]; then break fi sleep 5 done if [ $STATUS = "SUCCEEDED" ]; then aws athena get-query-results --query-execution-id $EXECUTION_ID > results.json echo "Results saved to results.json" else echo "Query failed with status: $STATUS" fi
Le fichier json de sortie peut contenir des données comme ceci :

Mettre en Œuvre le Masquage Dynamique des Données avec Python et Boto3
Pour des scénarios de masquage plus avancés, Python avec la bibliothèque Boto3 offre une plus grande flexibilité et contrôle. Cette approche puissante, que nous avons explorée dans notre article précédent sur les techniques de masquage pour Athena, permet des solutions de protection des données personnalisées et dynamiques.
DataSunrise : Masquage Dynamique des Données Avancé
Bien qu’Athena offre des capacités de masquage natif, des outils comme DataSunrise fournissent des solutions de masquage dynamique plus complètes. DataSunrise ne prend pas en charge le masquage statique pour Athena, mais ses fonctionnalités de masquage dynamique offrent une protection puissante.
Pour utiliser DataSunrise pour le masquage dynamique avec Athena :
- Connectez DataSunrise à votre base de données Athena.
- Définissez une règle de masquage dans l’interface DataSunrise et choisissez les objets à masquer :

La règle créée ressemble à ceci :

- Interrogez vos données via DataSunrise pour appliquer le masquage dynamique.
DataSunrise offre un contrôle centralisé sur les règles de masquage sur l’ensemble de votre configuration de données, garantissant une protection cohérente.
Accéder au Proxy Athena de DataSunrise
Vous devez avoir les variables suivantes définies dans un environnement virtuel Python (script activate.bat) :
set AWS_ACCESS_KEY_ID=your_id_key... set AWS_SECRET_ACCESS_KEY=... set AWS_DEFAULT_REGION=... set AWS_CA_BUNDLE=C:/<YourPath>/certificate-key.txt
Pour accéder à Athena via le proxy DataSunrise, suivez ces étapes :
- Accédez à la page Configuration – Groupes de Clés SSL dans DataSunrise.
- Sélectionnez l’instance appropriée pour laquelle vous avez besoin du certificat.
- Téléchargez le fichier certificate-key.txt pour cette instance et enregistrez-le dans le répertoire spécifié dans la variable AWS_CA_BUNDLE.
Une fois que vous avez le certificat, vous pouvez utiliser le code suivant pour vous connecter à Athena via le proxy DataSunrise à 192.168.10.230 :
import boto3
import time
import pandas as pd
import botocore.config
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
# Configure the proxy
connection_config = botocore.config.Config(
proxies={'https': 'http://192.168.10.230:1025'},
)
# Connect to Athena with proxy configuration
athena_client = boto3.client('athena', config=connection_config)
# Execute query
query = "SELECT * FROM danielArticleDatabase.danielArticleTable"
response = athena_client.start_query_execution(
QueryString=query,
ResultConfiguration={'OutputLocation': 's3://danielarticlebucket/AthenaArticleTableResults/'}
)
query_execution_id = response['QueryExecutionId']
# Wait for the query to complete
if wait_for_query_to_complete(athena_client, query_execution_id):
# Get results
result_response = athena_client.get_query_results(
QueryExecutionId=query_execution_id
)
# Extract column names
columns = [col['Label'] for col in result_response['ResultSet']['ResultSetMetadata']['ColumnInfo']]
# Extract data
data = []
for row in result_response['ResultSet']['Rows'][1:]: # Skip header row
data.append([field.get('VarCharValue', '') for field in row['Data']])
# Create DataFrame
df = pd.DataFrame(data, columns=columns)
print("\nDataFrame head:")
print(df.head())
else:
print("Failed to retrieve query results")Sortie possible (pour Jupyter Notebook) :

Avantages de l’Utilisation de DataSunrise pour le Masquage Dynamique des Données
La suite de sécurité de DataSunrise offre plusieurs avantages pour les utilisateurs d’Athena :
- Gestion centralisée des règles de masquage
- Contrôle uniforme sur plusieurs sources de données
- Techniques de masquage avancées au-delà des capacités natives d’Athena
- Surveillance et alertes en temps réel
- Outils de reporting de conformité
Ces fonctionnalités font de DataSunrise un allié puissant pour protéger les données sensibles dans Amazon Athena.
Conclusion
Le masquage dynamique des données pour Amazon Athena est un outil crucial dans le paysage de la sécurité des données d’aujourd’hui. Des fonctionnalités SQL natives aux solutions avancées comme DataSunrise, il existe plusieurs façons de mettre en œuvre cette protection.
En masquant les données sensibles, vous pouvez :
- Améliorer la sécurité des données
- Simplifier les efforts de conformité
- Maintenir l’utilité des données tout en protégeant la confidentialité
Alors que les violations de données continuent de poser des risques significatifs, l’implémentation de stratégies de masquage robustes est plus importante que jamais.
Rappelez-vous, la clé d’une protection efficace des données réside dans le choix des bons outils et stratégies pour vos besoins spécifiques. Que vous optiez pour les fonctionnalités natives d’Athena ou des solutions plus complètes, prioriser le masquage des données est une étape vers un environnement de données plus sécurisé.
DataSunrise offre une suite complète d’outils de sécurité des bases de données, y compris des fonctionnalités d’ audit et de conformité. Ces solutions conviviales fournissent une protection flexible et puissante pour vos données sensibles. Pour voir ces outils en action et explorer comment ils peuvent améliorer votre stratégie de sécurité des données, visitez notre site web pour planifier une démo en ligne.
Suivant
