DataSunrise está patrocinando AWS re:Invent 2024 en Las Vegas, por favor visítenos en el stand #2158 de DataSunrise

Enmascaramiento de Datos para Amazon Athena

Enmascaramiento de Datos para Amazon Athena

Introducción

En abril de 2024, Mandiant reportó una amenaza significativa para los usuarios de Snowflake Data Warehouse. El ataque explotó credenciales robadas para acceder y comprometer datos valiosos. Este incidente destaca la creciente importancia de medidas de seguridad robustas en la nube en el paisaje digital actual. El enmascaramiento de datos ayuda a proteger información sensible al reducir el riesgo de exposición en escenarios como este. Amazon Athena, un poderoso servicio de consultas sin servidor, maneja enormes cantidades de datos. Vamos a explorar los fundamentos del enmascaramiento de datos para Amazon Athena y cómo puede proteger tus datos sensibles.

Entendiendo el Enmascaramiento de Datos en Amazon Athena

El enmascaramiento de datos es una técnica utilizada para crear una versión estructuralmente similar pero inauténtica de los datos de una organización. Este proceso tiene como objetivo proteger la información sensible mientras se mantiene la utilidad de los datos para pruebas o análisis.

¿Por qué es Importante el Enmascaramiento de Datos?

  1. Cumplimiento: Muchas regulaciones requieren proteger datos personales y sensibles.
  2. Reducción de Riesgos: Los datos enmascarados minimizan el riesgo de brechas de datos.
  3. Pruebas y Desarrollo: Permite el uso seguro de datos similares a los de producción.

Técnicas de Enmascaramiento Nativas en Amazon Athena

Amazon Athena ofrece varias técnicas nativas de enmascaramiento utilizando características del lenguaje SQL, vistas, procedimientos almacenados y AWS CLI. Vamos a explorar estos métodos.

Características del Lenguaje SQL

Athena soporta varias funciones SQL que pueden ser usadas para el enmascaramiento de datos:

  1. SUBSTR(): Extrae parte de una cadena.
  2. CONCAT(): Combina cadenas.
  3. REGEXP_REPLACE(): Reemplaza texto utilizando expresiones regulares.

Vistas para el Enmascaramiento de Datos

Las vistas pueden proporcionar una capa de abstracción, permitiendo enmascarar datos sin modificar la tabla original.

Ejemplo:

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

La salida puede ser la siguiente:

Procedimientos Almacenados y control de acceso

Es importante entender que Amazon Athena no es una base de datos tradicional, sino un servicio de consulta. Como tal, no almacena procedimientos ni gestiona usuarios de la misma manera que una base de datos convencional. Por esta razón, hemos explorado enfoques alternativos de enmascaramiento, como vistas y funciones SQL integradas.

La gestión de usuarios y el control de acceso de Athena se manejan a través de AWS Identity and Access Management (IAM), proporcionando un modelo de seguridad robusto y nativo en la nube. Sin embargo, esto significa que las reglas de enmascaramiento de datos generalmente deben ser implementadas a nivel de aplicación, donde se hace cumplir el control de acceso.

Para las organizaciones que buscan un enfoque más centralizado y uniforme para el control de acceso y el enmascaramiento de datos, soluciones como DataSunrise pueden ser valiosas. Cuando se utiliza en modo proxy, DataSunrise permite a los administradores de bases de datos implementar reglas de enmascaramiento y controles de acceso consistentes en diferentes fuentes de datos, incluyendo Athena. Este enfoque puede mejorar significativamente la robustez y la manejabilidad de las medidas de protección de datos, especialmente en entornos complejos y de múltiples servicios.

AWS CLI para el Enmascaramiento de Datos

La Interfaz de Línea de Comandos de AWS (CLI) ofrece una manera poderosa de automatizar el enmascaramiento de datos en Amazon Athena. Para un ejemplo práctico de este enfoque, consulta nuestro artículo sobre enmascaramiento dinámico, que demuestra cómo implementar y gestionar de manera eficiente la protección de datos utilizando comandos CLI.

Python y Boto3 para el Enmascaramiento Nativo en Athena

Vamos a explorar cómo utilizar Python y Boto3 para conectar a Athena, copiar datos y enmascarar correos electrónicos.

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"Consulta fallida o cancelada. Estado final: {state}")
            return False

        time.sleep(sleep_time)

    print("La consulta ha excedido el tiempo límite")
    return False

# Conectar a Athena
athena_client = boto3.client('athena')

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

query_execution_id = response['QueryExecutionId']

# Esperar a que la consulta se complete
if wait_for_query_to_complete(athena_client, query_execution_id):
    # Obtener resultados
    result_response = athena_client.get_query_results(
        QueryExecutionId=query_execution_id
    )

    # Extraer nombres de columnas
    columns = [col['Label'] for col in result_response['ResultSet']['ResultSetMetadata']['ColumnInfo']]

    # Extraer datos
    data = []
    for row in result_response['ResultSet']['Rows'][1:]:  # Saltar fila del encabezado
        data.append([field.get('VarCharValue', '') for field in row['Data']])

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

    print("\nCabeza del DataFrame:")
    print(df.head())

    # Enmascarar correos electrónicos (asumiendo que existe la columna 'email')
    if 'email' in df.columns:
        df['email'] = df['email'].apply(lambda x: x[:3] + '***' + x[-4:] if x else x)

    # Guardar datos enmascarados
    df.to_csv('danielarticletable_masked.csv', index=False)
    print("Datos enmascarados guardados en danielarticletable_masked.csv")
else:
    print("No se pudo recuperar los resultados de la consulta")

Este script obtiene datos de Athena, enmascara la columna de correo electrónico y guarda el resultado en el archivo danielarticletable_masked.csv. El archivo de salida es el siguiente:

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
…

Las credenciales de AWS fueron configuradas en el entorno virtual de Python. La salida del script de enmascaramiento para Jupyter Notebook en nuestro caso fue:

Enmascaramiento con DataSunrise

Aunque el enmascaramiento nativo es útil, el enmascaramiento de DataSunrise ofrece mayor flexibilidad. Proporciona capacidades tanto de enmascaramiento dinámico como estático para Amazon Athena.

Creación de una Regla de Enmascaramiento Dinámico en DataSunrise

  1. Navega a ‘Enmascaramiento y Enmascaramiento Dinámico’ en el Menú Principal.
  2. Crea una nueva regla de enmascaramiento.
  3. Selecciona la instancia ‘Amazon Athena’ como la Instancia de la Regla.
  4. Configura la regla de enmascaramiento especificando qué columnas enmascarar.
  5. Guarda la regla. Se activará automáticamente al guardar.

En la imagen anterior, se pueden ver dos columnas marcadas para enmascarar. Sin embargo, seleccionar múltiples columnas en una sola regla puede limitar tus métodos de enmascaramiento disponibles. Si necesitas diferentes técnicas de enmascaramiento para cada campo, considera crear reglas separadas para cada columna. Este enfoque proporciona mayor flexibilidad en la elección de métodos de enmascaramiento apropiados para tipos de datos individuales.

Beneficios de DataSunrise para el Enmascaramiento Centralizado

  1. Control Unificado: Gestiona reglas de enmascaramiento en múltiples fuentes de datos.
  2. Protección en Tiempo Real: Aplica el enmascaramiento dinámicamente a medida que se ejecutan consultas.
  3. Reglas Flexibles: Crea patrones de enmascaramiento complejos basados en roles de usuario o sensibilidad de los datos.
  4. Registro de Auditoría: Mantén un registro de todas las actividades de acceso y enmascaramiento de datos.

Enmascaramiento Estático de Datos en Athena con DataSunrise

Amazon Athena es un servicio de consulta en lugar de una base de datos tradicional, lo que significa que el enmascaramiento estático directo en DataSunrise no es compatible con Athena. Sin embargo, existen soluciones alternativas efectivas. Para obtener información detallada sobre estos enfoques alternativos, por favor consulta nuestro artículo dedicado a las estrategias de enmascaramiento estático de datos en Athena.

Mejores Prácticas para el Enmascaramiento de Datos en Amazon Athena

  1. Identifica Datos Sensibles: Audita regularmente tus datos para identificar información sensible.
  2. Usa Múltiples Técnicas: Combina características nativas de Athena con herramientas de terceros como DataSunrise.
  3. Prueba Exhaustivamente: Asegúrate de que el enmascaramiento no interrumpa la funcionalidad de la aplicación.
  4. Actualiza Regularmente: Revisa y actualiza las reglas de enmascaramiento a medida que los datos evolucionan.
  5. Monitorea y Audita: Mantén un registro de quién accede a los datos enmascarados y cuándo.

Conclusión

El enmascaramiento de datos para Amazon Athena es un aspecto crucial de la seguridad de datos. Aprovechando las características nativas de Athena y herramientas poderosas como DataSunrise, las organizaciones pueden proteger la información sensible mientras mantienen la utilidad de los datos. Recuerda, el enmascaramiento de datos efectivo es un proceso continuo que requiere vigilancia y actualizaciones regulares.

A medida que las brechas de datos se vuelven más comunes, invertir en técnicas robustas de enmascaramiento de datos no es solo una práctica recomendada, sino una necesidad para una gestión responsable de los datos.

DataSunrise ofrece herramientas flexible y avanzadas para la seguridad de bases de datos, incluyendo herramientas comprensivas de auditoría y cumplimiento. Para una experiencia de primera mano de nuestra poderosa suite de protección de datos, te invitamos a visitar nuestra página web y agendar nuestra demo online.

Siguiente

Enmascaramiento Dinámico de Datos para Amazon Athena

Enmascaramiento Dinámico de Datos para Amazon Athena

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

Información general:
[email protected]
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
[email protected]