Blog de Amazon Web Services (AWS)

Uso de eventos de datos de CloudTrail con Athena y CloudWatch para crear una pista de auditoría para eventos de tabla de DynamoDB

Por Matheus Arrais, Arquitecto de Soluciones para Partner en AWS y
Kimmy Wu, Arquitecta de Soluções en AWS

 

Las industrias altamente reguladas deben mantener un registro de auditoría de eventos multinivel para cumplir con los requisitos normativos y de conformidad de la industria. Los registros de datos proporcionan visibilidad de las operaciones realizadas en el recurso o dentro del mismo, incluidas las actividades de API a nivel de objeto, como la eliminación, actualización y colocación de elementos. Esto le permite utilizar AWS CloudTrail para crear una pista de auditoría de los eventos que se producen en una tabla de Amazon DynamoDB.

De acuerdo con las prácticas recomendadas de AWS CloudTrail, debe mantener registros de datos de los proyectos sensibles a los requisitos de seguridad a nivel de pista multirregional. Para cargas de trabajo con requisitos de cumplimiento intensivos, recomendamos habilitar los eventos de datos de bucket de S3 para auditar el acceso a los archivos de producción. Esto es especialmente importante cuando es necesario auditar el acceso privilegiado a los datos almacenados en S3. El registro de sucesos de datos proporciona la capacidad de realizar auditorías a nivel de datos, incluidos los cambios dentro de la función para la que se habilita la visibilidad.

De forma predeterminada, CloudTrail registra los datos de acción del usuario, la actividad del servicio y las llamadas a la API. Proporcionar el historial de eventos de su cuenta de AWS:

  • De forma segura: uso de algoritmos SHA-256 estándar del sector para hash y SHA-256 con RSA para firma digital.
  • Habilitación de la gobernanza: centraliza todos los registros de API en un solo lugar y valida su integridad identificando si un archivo de registro se ha eliminado o cambiado.
  • Cumplimiento, auditoría operativa y auditoría de riesgos: ya que todos los registros se pueden utilizar para inspecciones forenses.

Por ejemplo, puede elegir registrar toda la actividad de la API para eventos de datos procedentes de tablas de DynamoDB, buckets de Amazon Simple Storage Service (Amazon S3), AWS Lambda y Amazon Managed Blockchain. Al crear un seguimiento, todos los registros se entregan en un bucket de S3 de forma predeterminada y también se pueden entregar a Amazon CloudWatch Logs. Esta integración con CloudWatch le permite consultar, ver y proporcionar alertas basadas en acciones registradas, para satisfacer necesidades empresariales más estrictas, como alertas de modificaciones de grupos de seguridad. Para obtener más información, consulte Supervisión de archivos de registro de CloudTrail con Amazon CloudWatch Logs.

Puede utilizar selectores de eventos avanzados para el control de registros granular (por ejemplo, para registrar todos los eventos, sucesos de solo lectura, sucesos de solo escritura o eventos personalizados). El selector de registro avanzado le permite personalizar el nombre del selector, registrar o eliminar eventos de recursos, objetos, usuarios o roles específicos.

En esta publicación de blog, compartiremos prácticas para realizar un seguimiento de los eventos capturados en la capa del plano de datos por AWS CloudTrail y demostraremos cómo utilizar los eventos de datos con Amazon Athena y Amazon CloudWatch para analizar la actividad de Amazon DynamoDB. :

  • – Vista multirregional de todos los registros de Amazon DynamoDB con Amazon Cloud Watch
  • – Uso de Amazon Cloud Watch Log para consultar registros e identificar acciones por usuario
  • Uso de Amazon Athena para un análisis de registros más granular

Como requisito para empezar, siga el tutorial de la publicación del blog Amazon DynamoDB ahora admite el registro y la supervisión de auditorías mediante AWS CloudTrail, lo que permite que la información llegue a CloudWatch Logs.

 

Figura 1: Habilitar registros de CloudWatch: en la creación de CloudTrail, en el cuadro Registros de CloudWatch opcional, active la casilla de verificación Habilitar. En Grupo de registros, se selecciona la opción Nueva.  En los roles de IAM, se selecciona la opción Nueva.

 

Visualización multirregión

Cuando está habilitada, esta función entrega todos los eventos al mismo bucket de S3, separados por región y tabla, lo que crea un bucket centralizado para todos los registros, lo que ayuda a crear reglas de administración centralizadas para el contenido. La visualización multirregional ayuda al personal responsable a tener una visión centralizada del contenido para tener una vista única para mantener el cumplimiento de los registros de datos. El siguiente ejemplo es una consulta de CloudWatch Logs Insights que muestra el recuento de cada evento (DeleteItem, BatchWrite, Query y Scan) dentro de la tabla de DynamoDB, por región dentro de una cuenta de AWS en los últimos 45 minutos

recuento de estadísticas (*) por EventName, AWSRegion

 

Figura 2: Consulta de información sobre los registros de CloudWatch: el registro aws-cloudtrail-logs-ddb-dataplane de la consola de CloudWatch muestra los eventos organizados por nombre, región de AWS y recuento. El recuento de estadísticas (*) por nombre de evento, AWSRegion se introduce en el campo de texto.

 

Figura 3. Pestaña Visualización: en la pestaña Visualización, los resultados de la consulta se muestran en un gráfico de barras para mostrar el número de llamadas a la API de cada acción.

 

Siguiendo las prácticas recomendadas para varias cuentas de AWS, el bucket que contiene los registros de auditoría debe crearse con una cuenta dedicada para el registro y la auditoría.

Identificar el agente de usuario por eventos

Por ejemplo, en un escenario en el que necesitamos identificar las acciones de un usuario dentro de la tabla de base de datos de AWS DynamoDB, podemos identificar al usuario que eliminó elementos seleccionando el elemento Eliminar con una fecha y hora específicas. El resultado muestra qué usuario ha realizado la acción de eliminación.

recuento de estadísticas (*) por eventName como /deleteItem/, userAgent, requestParameters.tableName, userIdentity.type

 

Figura 4: Ficha Registros: en la pestaña Registros, el número de llamadas a la API de eliminación se muestra en una lista con columnas para eventName, userAgent, requestParameters, count y más.

 

Utilice Amazon Athena para realizar análisis más detallados

 Amazon Athena es un servicio de consultas interactivas que se puede utilizar para analizar datos en Amazon S3 mediante SQL. Para crear una tabla en Amazon Athena basada en su ruta de CloudTrail, abra la consola de AWS CloudTrail. En el panel de navegación izquierdo, seleccione Historial de eventos y, a continuación, seleccione «Crear tabla de Athena».

 

Figura 5: Historial de eventos: en el historial de eventos de Cloud Trail, selecciona el botón Crear tabla de Athena para crear la tabla.

 

Escriba un nombre y una ubicación de almacenamiento para la tabla y, a continuación, introduzca la consulta SQL. Para obtener más información, consulte Consulta de registros de AWS CloudTrail.

 

Figura 6: CREAR TABLA EXTERNA: en Crear una tabla en Amazon Athena, para Ubicación de almacenamiento, se selecciona aws-cloudtrail-logs-ddb-dataplane.  En el nombre de la tabla de Athena, se inserta cloudtrail_logs_aws_cloudtrail_logs_ddb_dataplane.  El campo de texto muestra el código de CREAR TABLA EXTERNA.

 

Una vez creada la tabla, Amazon Athena le permite consultar al usuario y al evento de forma más específica, incluido el intervalo de tiempo. Esta flexibilidad adicional se puede utilizar para solucionar problemas que afectan a bases de datos o tablas específicas. Por ejemplo, la siguiente consulta devolverá los usuarios o roles que realizaron la operación de escritura entre el 1 de mayo y el 31 de mayo.

SELECCIONE useridentity.arn,
         origen del evento,
         nombreevento,
         Código de error,
         Mensaje de error
DE YOUR_ATHENA_TABLE
WHERE eventName='Elemento de escritura por lote'
        Y eventtime >= '2021-05-01T 00:00:00 Z'
        Y eventtime < '2021-05-31T 00:00:00 Z'
AGRUPAR POR origen del evento, nombre del evento, código de error, mensaje de error, identidad de usuario.arn
ORDER BY eventsource, nombre del evento

En esta consulta, puede identificar qué usuario realiza solicitudes no autorizadas a tablas de DynamoDB.

Recuento SELECT (*) TotalEvents,
         useridentity.arn,
         origen del evento,
         nombreevento,
         Código de error,
         Mensaje de error
DE YOUR_ATHENA_TABLE
WHERE (código de error COMO '%Denied%'
        O código de error COMO '%Unauthorized%')
        Y eventtime >= '2021-05-01T 00:00:00 Z'
        Y eventtime < '2021-05-31T 00:00:00 Z'
AGRUPAR POR origen del evento, nombre del evento, código de error, mensaje de error, identidad de usuario.arn
ORDER BY eventsource, nombre del evento

Las normas de cumplimiento como el RGPD y el PCI DSS tienen requisitos explícitos para capturar registros y auditorías a nivel de datos. En PCI DSS 10.2.1 y 10.2.3, existe el requisito de que los registros de auditoría reconstruyan todo el acceso de los usuarios individuales a los datos de los titulares de tarjetas.

La siguiente consulta puede ayudar a identificar el cumplimiento de los eventos de datos y recopilar pruebas para la auditoría:

SELECCIONE useridentity.arn,
         origen del evento,
         nombreevento,
         Código de error,
         Mensaje de error
DE YOUR_ATHENA_TABLE
WHERE eventName='getItem'
        Y eventtime >= '2021-05-01T 00:00:00 Z'
        Y eventtime < '2021-05-31T 00:00:00 Z'

Conclusión

Los registros de eventos de datos proporcionados por CloudTrail recopilarán detalles de eventos sobre elementos, acciones y autores, creando una ubicación centralizada y segura para todos los registros recopilados. Con CloudWatch y Amazon Athena, puede recopilar pruebas de cada acción que recopila para cumplir con los registros de cumplimiento y auditoría, como identificar una acción del usuario para las inspecciones forenses. Crear una vista centralizada para el equipo responsable ayuda a añadir mayor valor a todas las entradas del análisis de datos.

Para obtener más información, consulte Registro de operaciones de DynamoDB mediante AWS CloudTrail.

Este artículo fue traducido del Blog de AWS en Portugués.

 


Sobre los autores

Matheus Arrais es un arquitecto de soluciones de partners que se centra en la estrategia multicuenta y los servicios de gestión y gobierno. Trabaja en estrecha colaboración con los socios para ayudar a ofrecer la mejor solución a sus clientes. Fuera del trabajo, Matheus siente pasión por leer, tocar la batería y viajar.

 

 

 

Kimmy Wu es una arquitecta de soluciones que ayuda a los clientes a crear cargas de trabajo que los impulsen en su proceso de transformación digital hacia AWS.

 

 

 

 

Sobre los revisores

Adriana Dorado es Arquitecta de Soluciones en AWS.