¿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 la tabla de Athena

1.    Abra la consola de CloudTrail y, a continuación, seleccione Registros de seguimiento en el panel de navegación. Anote el nombre en Bucket de S3.

2.    En el panel de navegación, seleccione Historial de eventos y, a continuación, Crear tabla de Athena.

3.    En la ventana Crear una tabla en Amazon Athena, abra el menú Ubicación de almacenamiento y, a continuación, elija el bucket de Amazon Simple Storage Service (Amazon S3) con los archivos de registro de CloudTrail.

Nota: Puede mejorar el rendimiento de las búsquedas durante períodos de tiempo específicos en una sola región de AWS mediante la proyección de particiones para registros de CloudTrail con Athena.

4.    Elija Crear tabla.

5.    Elija Ir a Athena.

Nota: Es posible que se muestre el error «Your account does not have sufficient permissions to create tables in Amazon Athena». Si es así, asocie la política administrada AmazonAthenaFullAccess según las instrucciones que se indican en Adición de permisos de identidad de IAM (consola).

Puede utilizar una o varias de las siguientes consultas de ejemplo para sus registros. 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.

Ejecución de la consulta de Athena

1.    Abra la consola de Athena, elija Nueva consulta y, a continuación, seleccione el cuadro de diálogo para borrar la consulta de ejemplo.

2.    Introduzca la consulta y, a continuación, elija Ejecutar consulta.

Visualización de toda la actividad de la API de AWS registrada para una clave de acceso específica

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

Identificación de cualquier cambio en el grupo de seguridad para su instancia de EC2

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;

Visualización de los inicios de sesión en la consola en las últimas 24 horas

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';

Visualización de los intentos fallidos de inicio de sesión en la consola en las últimas 24 horas

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';

Identificación de los aumentos de los costes mensuales de CloudTrail

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 eventtime definidos se limitan a un único mes. Para obtener los resultados de varios meses, ejecute consultas adicionales.

Identificación de los permisos de IAM que faltan

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 fallida, amplíe el intervalo de consultas como sigue:

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

Querying AWS CloudTrail logs

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 AWS
OFICIAL DE AWSActualizada hace 3 años