Saltar al contenido

¿Cómo puedo crear tablas en Amazon Athena automáticamente para realizar búsquedas en registros de AWS CloudTrail?

4 minutos de lectura
0

Quiero realizar búsquedas en una gran recopilación de registros de AWS CloudTrail. Para evitar errores, no quiero crear tablas de Amazon Athena manualmente.

Solución

Utilice la consola de CloudTrail para crear las tablas de Athena automáticamente. Para obtener más información, consulte Búsqueda de registro de AWS CloudTrail con Amazon Athena.

Creación de una tabla de Athena a partir de los registros de CloudTrail

Siga estos pasos:

  1. Abra la consola de CloudTrail.
  2. En el panel de navegación, elija Pistas y anote el nombre del bucket de Amazon Simple Storage Service (Amazon S3) que contiene los registros de CloudTrail.
  3. En el panel de navegación, seleccione Historial de eventos y, a continuación, Crear tabla de Athena.
  4. En la ventana Crear una tabla en Amazon Athena, seleccione el bucket de S3 en el menú Ubicación de almacenamiento.
    Nota: Para mejorar la búsqueda dentro de un intervalo de tiempo específico, puede usar la proyección de particiones para los registros de CloudTrail en Athena.
  5. Elija Crear tabla.
  6. Elija Ir a Athena.

Nota: Es posible que se muestre el error «Su cuenta no tiene suficientes permisos para crear tablas en Amazon Athena». Si se muestra este error, adjunte la política administrada AmazonAthenaFullAccess a su rol de AWS Identity and Access Management (IAM).

Ejecución de consultas de Athena en su tabla de registros de CloudTrail

Siga estos pasos:

  1. Abra la consola de Athena.
  2. Elija Nueva consulta y, a continuación, borre la consulta de ejemplo.
  3. Introduzca la consulta y, a continuación, elija Ejecutar consulta.

Uso de consultas de ejemplo

Los siguientes son ejemplos de consultas que puede ejecutar.

Nota: En las siguientes consultas, sustituya your_athena_tablename por el nombre de su tabla de Athena y access_key_id por la clave de acceso de 20 caracteres. La clave de acceso suele empezar por los caracteres AKIA o ASIA.

Para mostrar toda la actividad de la API de AWS registrada para una clave de acceso específica, ejecute la siguiente consulta:

SELECT eventTime, eventName, userIdentity.principalId  
  FROM your_athena_tablename   
 WHERE userIdentity.accessKeyId like 'access_key_id'

Para identificar los cambios del grupo de seguridad en su instancia de Amazon Elastic Compute Cloud (Amazon EC2), ejecute la siguiente consulta:

SELECT eventname, useridentity.username, sourceIPAddress, eventtime, requestparameters  
  FROM your_athena_tablename  
 WHERE (requestparameters LIKE '%sg-5887f224%' OR requestparameters LIKE '%sg-e214609e%' OR requestparameters LIKE '%eni-6c5ca5a8%')  
       AND eventtime > '2017-02-15T00:00:00Z'  
 ORDER BY eventtime ASC;

Para mostrar todos los inicios de sesión de la consola en las últimas 24 horas, ejecute la siguiente consulta:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata  
  FROM your_athena_tablename   
 WHERE eventname = 'ConsoleLogin'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Para mostrar todos los intentos fallidos de inicio de sesión en la consola de las últimas 24 horas, ejecute la siguiente consulta:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata  
  FROM your_athena_tablename  
 WHERE eventname = 'ConsoleLogin'  
       AND useridentity.username = 'HIDDEN_DUE_TO_SECURITY_REASONS'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Para identificar los aumentos de costes mensuales de CloudTrail, ejecute la siguiente consulta:

SELECT eventName,count(eventName) AS NumberOfChanges,eventSource  
  FROM your_athena_tablename   
 WHERE eventtime >= '2019-01-01T00:00:00Z' AND eventtime < '2019-01-31T00:00:00Z'  
 GROUP BY eventName, eventSource  
 ORDER BY NumberOfChanges DESC

Nota: Los valores de tiempo de evento definidos son para un solo mes. Para obtener los resultados de varios meses, ejecute consultas adicionales.

Para identificar los permisos de IAM que faltan, ejecute la siguiente consulta:

SELECT COUNT(*) AS TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage  
  FROM your_athena_tablename  
 WHERE (errorcode LIKE '%Denied%' OR errorcode LIKE '%Unauthorized%')  
   AND eventtime >= '2019-10-28T00:00:00Z'  
   AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname

Si los resultados no muestran la llamada a la API que falló, aumente el intervalo de consultas:

SELECT COUNT(*) as TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage  
  FROM your_athena_tablename  
 WHERE errorcode <> ''  
       AND eventtime >= '2019-10-28T00:00:00Z'  
       AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname

Información relacionada

Consulta de registros de AWS CloudTrail

Adición y eliminación de permisos de identidad de IAM

¿Cómo puedo obtener datos para ayudar a solucionar errores de acceso de permiso denegado o no autorizado de IAM?

OFICIAL DE AWSActualizada hace 9 meses