DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Mascheramento dei Dati per Amazon Athena

Mascheramento dei Dati per Amazon Athena

Introduzione

Ad aprile 2024, Mandiant ha riportato una minaccia significativa per gli utenti del Data Warehouse di Snowflake. L’attacco ha sfruttato credenziali rubate per accedere e compromettere dati preziosi. Questo incidente evidenzia l’importanza crescente di misure robuste di sicurezza nel Cloud nell’attuale panorama digitale. Il mascheramento dei dati aiuta a proteggere le informazioni sensibili riducendo il rischio di esposizione in scenari come questo. Amazon Athena, un potente servizio di query serverless, gestisce grandi quantità di dati. Esploriamo le basi del mascheramento dei dati per Amazon Athena e come può salvaguardare i tuoi dati sensibili.

Comprendere il Mascheramento dei Dati in Amazon Athena

Il mascheramento dei dati è una tecnica utilizzata per creare una versione strutturalmente simile ma non autentica dei dati di un’organizzazione. Questo processo mira a proteggere le informazioni sensibili mantenendo l’utilità dei dati per scopi di test o analisi.

Perché il Mascheramento dei Dati è Importante?

  1. Conformità: Molte regolamentazioni richiedono la protezione di dati personali e sensibili.
  2. Riduzione del Rischio: I dati mascherati minimizzano il rischio di violazioni dei dati.
  3. Test e Sviluppo: Permette l’uso sicuro di dati simili a quelli di produzione.

Tecniche di Mascheramento Native in Amazon Athena

Amazon Athena offre diverse tecniche native di mascheramento utilizzando funzioni del linguaggio SQL, viste, procedure memorizzate e AWS CLI. Esploriamo questi metodi.

Funzioni del Linguaggio SQL

Athena supporta varie funzioni SQL che possono essere utilizzate per il mascheramento dei dati:

  1. SUBSTR(): Estrae una parte di una stringa.
  2. CONCAT(): Combina stringhe.
  3. REGEXP_REPLACE(): Sostituisce testo utilizzando espressioni regolari.

Viste per il Mascheramento dei Dati

Le viste possono fornire un livello di astrazione, permettendoti di mascherare i dati senza modificare la tabella originale.

Esempio:

CREATE OR REPLACE VIEW masked_users AS
SELECT 
    id,
    first_name,
    last_name,
    -- Maschera l'email
    CONCAT(SUBSTR(email, 1, 3), '***', SUBSTR(email, -4)) AS email,
    -- Maschera l'indirizzo IP
    REGEXP_REPLACE(ip_address, '(\d+\.\d+\.\d+\.)\d+', '$1***') AS ip_address
FROM 
    danielarticletable;
SELECT * FROM "danielarticledatabase"."masked_users" limit 10;

L’output potrebbe essere il seguente:

Procedure Memorizzate e Controllo Accessi

È importante capire che Amazon Athena non è un database tradizionale, ma piuttosto un servizio di query. Di conseguenza, non memorizza procedure né gestisce gli utenti nello stesso modo in cui lo farebbe un database convenzionale. Per questo motivo abbiamo esplorato approcci alternativi di mascheramento, come le viste e le funzioni SQL integrate.

La gestione utenti e il controllo degli accessi di Athena sono gestiti tramite AWS Identity and Access Management (IAM), fornendo un modello di sicurezza nativo del Cloud robusto. Tuttavia, questo significa che le regole di mascheramento dei dati devono essere tipicamente implementate a livello dell’applicazione, dove il controllo degli accessi è applicato.

Per le organizzazioni che cercano un approccio più centralizzato e uniforme al controllo degli accessi e al mascheramento dei dati, soluzioni come DataSunrise possono essere preziose. Quando utilizzato in modalità proxy, DataSunrise consente agli amministratori di database di implementare regole di mascheramento e controllo accessi coerenti attraverso diverse sorgenti dati, incluse Athena. Questo approccio può migliorare significativamente la robustezza e la gestibilità delle misure di protezione dei dati, specialmente in ambienti complessi e multi-servizio.

AWS CLI per il Mascheramento dei Dati

L’AWS Command Line Interface (CLI) offre un modo potente per automatizzare il mascheramento dei dati in Amazon Athena. Per un esempio pratico di questo approccio, consulta il nostro articolo sul mascheramento dinamico, che dimostra come implementare e gestire efficacemente la protezione dei dati utilizzando comandi CLI.

Python e Boto3 per il Mascheramento Nativo in Athena

Esploriamo come utilizzare Python e Boto3 per connettersi ad Athena, copiare dati e mascherare email.

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

# Connect to Athena
athena_client = boto3.client('athena')

# 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())

    # Mask emails (assuming 'email' column exists)
    if 'email' in df.columns:
        df['email'] = df['email'].apply(lambda x: x[:3] + '***' + x[-4:] if x else x)

    # Save masked data
    df.to_csv('danielarticletable_masked.csv', index=False)
    print("Masked data saved to danielarticletable_masked.csv")
else:
    print("Failed to retrieve query results")

Questo script recupera dati da Athena, maschera la colonna email e salva il risultato nel file danielarticletable_masked.csv. Il file di output è il seguente:

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
…

Le credenziali AWS sono state impostate nell’ambiente virtuale Python. L’output dello script di mascheramento per Jupyter Notebook nel nostro caso era:

Mascheramento con DataSunrise

Pur essendo utile il mascheramento nativo, il mascheramento con DataSunrise offre maggiore flessibilità. Fornisce sia mascheramento dinamico che statico per Amazon Athena.

Creazione di una Regola di Mascheramento Dinamico con DataSunrise

  1. Vai su ‘Mascheramento e Mascheramento Dinamico’ nel menu principale.
  2. Crea una nuova regola di mascheramento.
  3. Seleziona l’istanza ‘Amazon Athena’ come Istanza della Regola.
  4. Configura la regola di mascheramento specificando quali colonne mascherare.
  5. Salva la regola. Si attiverà automaticamente dopo il salvataggio.

Nell’immagine sopra, puoi vedere due colonne contrassegnate per il mascheramento. Tuttavia, selezionando più colonne in una singola regola potrebbe limitare i metodi di mascheramento disponibili. Se hai bisogno di tecniche di mascheramento diverse per ogni campo, considera di creare regole separate per ciascuna colonna. Questo approccio offre maggiore flessibilità nella scelta dei metodi di mascheramento appropriati per singoli tipi di dati.

Vantaggi di DataSunrise per il Mascheramento Centralizzato

  1. Controllo Unificato: Gestisci le regole di mascheramento tra più sorgenti dati.
  2. Protezione in Tempo Reale: Applica il mascheramento dinamicamente mentre vengono eseguite le query.
  3. Regole Flessibili: Crea pattern complessi di mascheramento basati su ruoli utente o sensibilità dei dati.
  4. Traccia di Audit: Tieni traccia di tutti gli accessi ai dati e delle attività di mascheramento.

Mascheramento Statico dei Dati in Athena con DataSunrise

Amazon Athena è un servizio di query anziché un database tradizionale, il che significa che il mascheramento statico diretto in DataSunrise non è supportato per Athena. Tuttavia, sono disponibili soluzioni alternative efficaci. Per informazioni dettagliate su questi approcci alternativi, per favore consulta il nostro articolo dedicato sulle strategie di mascheramento statico dei dati in Athena.

Migliori Pratiche per il Mascheramento dei Dati in Amazon Athena

  1. Identifica i Dati Sensibili: Effettua audit regolari sui tuoi dati per identificare informazioni sensibili.
  2. Usa Tecniche Multiple: Combina le funzionalità native di Athena con strumenti di terze parti come DataSunrise.
  3. Testa a Fondo: Assicurati che il mascheramento non interrompa la funzionalità dell’applicazione.
  4. Aggiorna Regolarmente: Rivedi e aggiorna le regole di mascheramento man mano che i dati evolvono.
  5. Monitora e Audita: Tieni traccia di chi accede ai dati mascherati e quando.

Conclusione

Il mascheramento dei dati per Amazon Athena è un aspetto cruciale della sicurezza dei dati. Sfruttando le funzionalità native di Athena e strumenti potenti come DataSunrise, le organizzazioni possono proteggere le informazioni sensibili mantenendo l’utilità dei dati. Ricorda, un mascheramento efficace dei dati è un processo continuo che richiede vigilanza e aggiornamenti regolari.

Poiché le violazioni dei dati diventano più comuni, investire in tecniche di mascheramento robuste non è solo una buona pratica—è una necessità per una gestione responsabile dei dati.

DataSunrise offre strumenti flessibili e all’avanguardia per la sicurezza del database, inclusi strumenti completi di audit e conformità. Per un’esperienza diretta della nostra potente suite di protezione dei dati, ti invitiamo a visitare il nostro sito e programmare una demo online.

Successivo

Mascheramento Dinamico dei Dati per Amazon Athena

Mascheramento Dinamico dei Dati per Amazon Athena

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]