DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Masquage Dynamique des Données pour Amazon Athena

Masquage Dynamique des Données pour Amazon Athena

Introduction

Amazon Athena, un service de requêtes puissant, gère des quantités énormes de données. Mais comment assurer la sécurité de ces données ? C’est là qu’intervient 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 privilégiées pour les cybercriminels en raison de leur vaste infrastructure de données et de leur main-d’œuvre importante. Ces facteurs entraînent souvent plus de vulnérabilités par rapport aux petites structures. Par exemple, en juillet 2024, AT&T a subi une brèche significative dans son infrastructure cloud. Cette tendance alarmante souligne le besoin critique de mesures robustes de protection des données comme le masquage dynamique.

Plongeons dans le monde du masquage dynamique des données pour Amazon Athena et explorons comment il peut renforcer 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 modifie définitivement les données, le masquage dynamique préserve les informations originales tout en contrôlant l’accès.

Pour les utilisateurs d’Amazon Athena, cela signifie :

  1. Protection des données améliorée
  2. Conformité simplifiée avec les réglementations sur la vie privée des données
  3. Contrôle d’accès flexible basé sur les rôles des utilisateurs

Voyons maintenant 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 email, en montrant seulement 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;

AWS CLI pour les Données Masquées

Accéder à la vue masquée d’Athena via CLI est simple mais nécessite une certaine préparation. 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 facilite l’interaction avec Athena, car exécuter des commandes CLI individuellement peut être fastidieux et sujet aux erreurs. Rendez le fichier exécutable avec 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 "ID d'exécution de la requête : $EXECUTION_ID"

# Attendre que la requête soit terminée
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 "Résultats enregistrés dans results.json"
else
    echo "La requête a échoué avec le statut : $STATUS"
fi

Le fichier json de sortie pourrait contenir des données comme celles-ci :

Implémentation du Masquage Dynamique des Données avec Python et Boto3

Pour des scénarios de masquage plus avancés, l’utilisation de Python avec la bibliothèque Boto3 offre plus de flexibilité et de 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 :

  1. Connectez DataSunrise à votre base de données Athena
  2. Définissez une règle de masquage dans l’interface de DataSunrise et sélectionnez les objets à masquer :

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

  1. 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 l’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 – SSL Key Groups 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"La requête a échoué ou a été annulée. État final : {state}")
            return False

        time.sleep(sleep_time)

    print("La requête a expiré")
    return False

# Configurer le proxy
connection_config = botocore.config.Config(
    proxies={'https': 'http://192.168.10.230:1025'},
)

# Connecter à Athena avec la configuration du proxy
athena_client = boto3.client('athena', config=connection_config)

# 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 que la requête se termine
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:]:  # Sauter la ligne d'en-tête
        data.append([field.get('VarCharValue', '') for field in row['Data']])

    # Créer DataFrame
    df = pd.DataFrame(data, columns=columns)

    print("\nEn-tête du DataFrame :")
    print(df.head())
else:
    print("Échec de la récupération des résultats de la requête")

Résultat 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 :

  1. Gestion centralisée des règles de masquage
  2. Contrôle uniforme sur plusieurs sources de données
  3. Techniques de masquage avancées au-delà des capacités natives d’Athena
  4. Supervision et alertes en temps réel
  5. Outils de reporting de conformité

Ces fonctionnalités font de DataSunrise un allié puissant dans la protection des données sensibles d’Amazon Athena.

Conclusion

Le masquage dynamique des données pour Amazon Athena est un outil crucial dans le paysage actuel de la sécurité des données. 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 :

  • Renforcer la sécurité des données
  • Simplifier les efforts de conformité
  • Maintenir l’utilité des données tout en protégeant la vie privée

Alors que les violations de données continuent de poser des risques significatifs, mettre en œuvre des stratégies de masquage robustes est plus important que jamais.

Souvenez-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 des fonctionnalités natives d’Athena ou des solutions plus complètes, prioriser le masquage des données est un pas vers un environnement de données plus sécurisé.

DataSunrise propose une suite complète d’outils de sécurité des bases de données, incluant des fonctionnalités d’audit et de conformité. Ces solutions conviviales offrent 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

Masquage des données dans Elasticsearch

Masquage des données dans Elasticsearch

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]