DataSunrise sponsert AWS re:Invent 2024 in Las Vegas, bitte besuchen Sie uns am Stand #2158 von DataSunrise

Dynamische Datenmaskierung für Amazon Athena

Dynamische Datenmaskierung für Amazon Athena

Einführung

Amazon Athena, ein leistungsstarker Abfrageservice, verarbeitet enorme Datenmengen. Aber wie stellen wir sicher, dass diese Daten sicher bleiben? Hier kommt die dynamische Datenmaskierung für Amazon Athena ins Spiel. Diese Technik bietet eine robuste Lösung zum Schutz sensibler Daten bei gleichzeitiger Erhaltung ihrer Nützlichkeit.

Große Unternehmen sind aufgrund ihrer umfangreichen Dateninfrastruktur und Belegschaft primäre Ziele für Cyberkriminelle. Diese Faktoren führen oft zu mehr Schwachstellen im Vergleich zu kleineren Unternehmen. Beispielsweise erlitt AT&T im Juli 2024 eine erhebliche Verletzung der Cloud-Infrastruktur. Dieser alarmierende Trend unterstreicht die dringende Notwendigkeit robuster Datenschutzmaßnahmen wie der dynamischen Maskierung.

Tauchen wir ein in die Welt der dynamischen Datenmaskierung für Amazon Athena und erfahren, wie sie Ihre Datensicherheitsstrategie verbessern kann.

Verständnis der dynamischen Datenmaskierung

Dynamische Datenmaskierung ist eine Sicherheitsfunktion, die die Exposition sensibler Daten durch On-the-Fly-Maskierung begrenzt. Im Gegensatz zur statischen Maskierung, die Daten dauerhaft verändert, bewahrt die dynamische Maskierung die ursprünglichen Informationen, während der Zugriff kontrolliert wird.

Für Amazon Athena-Benutzer bedeutet dies:

  1. Erhöhter Datenschutz
  2. Vereinfachte Compliance mit Datenschutzvorschriften
  3. Flexible Zugriffskontrollen basierend auf Benutzerrollen

Untersuchen wir nun die verschiedenen Methoden zur Implementierung der dynamischen Datenmaskierung in Athena.

Native Maskierung mit SQL-Sprachfunktionen

Athena unterstützt die native Maskierung mithilfe von SQL-Sprachfunktionen. Dieser Ansatz nutzt eingebaute Funktionen, um sensible Daten direkt in Abfragen zu maskieren.

Hier ein einfaches Beispiel:

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

Diese Abfrage maskiert die E-Mail-Adressen und zeigt nur die ersten beiden und letzten vier Zeichen.

Verwendung von Ansichten zur Datenmaskierung

Ansichten bieten eine weitere native Methode zur Maskierung von Daten in Athena. Durch das Erstellen einer Ansicht mit maskierten Spalten können Sie den Datenzugriff ohne Änderung der zugrunde liegenden Tabelle steuern.

Beispiel:

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 für maskierte Daten

Der Zugriff auf die maskierte Ansicht von Athena über die CLI ist unkompliziert, erfordert jedoch einige Vorbereitungen. Stellen Sie zunächst sicher, dass Sie die AWS CLI mit Ihren Anmeldeinformationen konfiguriert haben:

aws configure

Um den Prozess zu vereinfachen, haben wir die erforderlichen Befehle in einem Skript zusammengefasst. Dieser Ansatz vereinfacht die Interaktion mit Athena, da das Ausführen einzelner CLI-Befehle mühsam und fehleranfällig sein kann. Machen Sie die Datei mit dem Befehl chmod +x ausführbar.

#!/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 "Abfrageausführungs-ID: $EXECUTION_ID"

# Warten Sie, bis die Abfrage abgeschlossen ist
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 "Ergebnisse in results.json gespeichert"
else
    echo "Abfrage ist fehlgeschlagen mit Status: $STATUS"
fi

Die Ausgabedatei json kann Daten wie diese enthalten:

Implementierung der dynamischen Datenmaskierung mit Python und Boto3

Für fortgeschrittenere Maskierungsszenarien bietet Python mit der Boto3-Bibliothek größere Flexibilität und Kontrolle. Dieser leistungsstarke Ansatz, den wir in unserem vorherigen Artikel zu Maskierungstechniken in Athena erkundet haben, ermöglicht maßgeschneiderte und dynamische Datenschutzlösungen.

DataSunrise: Fortschrittliche dynamische Datenmaskierung

Während Athena native Maskierungsfunktionen bietet, liefern Tools wie DataSunrise umfassendere Lösungen zur dynamischen Datenmaskierung. DataSunrise unterstützt keine statische Maskierung für Athena, aber seine dynamischen Maskierungsfunktionen bieten einen leistungsstarken Schutz.

Um DataSunrise für dynamische Maskierung mit Athena zu verwenden:

  1. Verbinden Sie DataSunrise mit Ihrer Athena-Datenbank
  2. Definieren Sie eine Maskierungsregel in der DataSunrise-Oberfläche und wählen Sie die zu maskierenden Objekte aus:

Die erstellte Regel sieht wie folgt aus:

  1. Abfragen Sie Ihre Daten über DataSunrise, um die dynamische Maskierung anzuwenden

DataSunrise bietet eine zentrale Kontrolle über Maskierungsregeln in Ihrem gesamten Daten-Setup und stellt so einen konsistenten Schutz sicher.

Zugriff auf den DataSunrise Athena Proxy

Sie sollten die folgenden Variablen in der Python-Umgebung (activate.bat Skript) gesetzt haben:

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

Um auf Athena über den DataSunrise Proxy zuzugreifen, folgen Sie diesen Schritten:

  • Gehen Sie zur Seite „Konfiguration – SSL-Schlüsselgruppen“ in DataSunrise.
  • Wählen Sie die entsprechende Instanz aus, für die Sie das Zertifikat benötigen.
  • Laden Sie die Datei certificate-key.txt für diese Instanz herunter und speichern Sie sie im Verzeichnis, das in der Variable AWS_CA_BUNDLE angegeben ist.

Sobald Sie das Zertifikat haben, können Sie den folgenden Code verwenden, um sich über den DataSunrise Proxy mit Athena zu verbinden unter 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"Abfrage ist fehlgeschlagen oder wurde abgebrochen. Endstatus: {state}")
            return False

        time.sleep(sleep_time)

    print("Abfrage hat das Zeitlimit überschritten")
    return False

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

# Verbindung zu Athena mit Proxy-Konfiguration herstellen
athena_client = boto3.client('athena', config=connection_config)

# Abfrage ausführen
query = "SELECT * FROM danielArticleDatabase.danielArticleTable"
response = athena_client.start_query_execution(
    QueryString=query,
    ResultConfiguration={'OutputLocation': 's3://danielarticlebucket/AthenaArticleTableResults/'}
)

query_execution_id = response['QueryExecutionId']

# Warten Sie, bis die Abfrage abgeschlossen ist
if wait_for_query_to_complete(athena_client, query_execution_id):
    # Ergebnisse abrufen
    result_response = athena_client.get_query_results(
        QueryExecutionId=query_execution_id
    )

    # Spaltennamen extrahieren
    columns = [col['Label'] for col in result_response['ResultSet']['ResultSetMetadata']['ColumnInfo']]

    # Daten extrahieren
    data = []
    for row in result_response['ResultSet']['Rows'][1:]:  # Kopfzeile überspringen
        data.append([field.get('VarCharValue', '') for field in row['Data']])

    # DataFrame erstellen
    df = pd.DataFrame(data, columns=columns)

    print("\nDataFrame Head:")
    print(df.head())
else:
    print("Fehler beim Abrufen der Abfrageergebnisse")

Mögliche Ausgabe (für Jupyter Notebook):

Vorteile der Verwendung von DataSunrise für die dynamische Datenmaskierung

Das Sicherheitspaket von DataSunrise bietet mehrere Vorteile für Athena-Benutzer:

  1. Zentrale Verwaltung von Maskierungsregeln
  2. Einheitliche Kontrolle über mehrere Datenquellen hinweg
  3. Erweiterte Maskierungstechniken über die nativen Athena-Funktionen hinaus
  4. Echtzeitüberwachung und Alarmierung
  5. Compliance-Reporting-Tools

Diese Funktionen machen DataSunrise zu einem leistungsstarken Verbündeten beim Schutz sensibler Daten in Amazon Athena.

Fazit

Dynamische Datenmaskierung für Amazon Athena ist ein wichtiges Werkzeug in der heutigen Datensicherheitslandschaft. Von nativen SQL-Funktionen bis hin zu fortschrittlichen Lösungen wie DataSunrise gibt es mehrere Möglichkeiten, diesen Schutz zu implementieren.

Durch die Maskierung sensibler Daten können Sie:

  • Datensicherheit verbessern
  • Compliance-Bemühungen vereinfachen
  • Die Nützlichkeit der Daten erhalten und gleichzeitig die Privatsphäre schützen

Da Datenverstöße weiterhin erhebliche Risiken darstellen, ist die Implementierung robuster Maskierungsstrategien wichtiger denn je.

Denken Sie daran, dass der Schlüssel zu effektivem Datenschutz in der Wahl der richtigen Tools und Strategien für Ihre spezifischen Bedürfnisse liegt. Ob Sie sich für native Athena-Funktionen oder umfassendere Lösungen entscheiden, die Priorisierung der Datenmaskierung ist ein Schritt zu einer sichereren Datenumgebung.

DataSunrise bietet eine umfassende Suite von Datenbanksicherheitstools, einschließlich Audit und Compliance-Funktionen. Diese benutzerfreundlichen Lösungen bieten flexiblen und leistungsstarken Schutz für Ihre sensiblen Daten. Um diese Tools in Aktion zu sehen und zu erfahren, wie sie Ihre Datensicherheitsstrategie verbessern können, besuchen Sie unsere Website, um eine Online-Demo zu vereinbaren.

Nächste

Data Masking in Elasticsearch

Data Masking in Elasticsearch

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]