Cómo visualizar eventos de CloudTrail Insights para registros de seguimiento con la AWS CLI - AWS CloudTrail

Cómo visualizar eventos de CloudTrail Insights para registros de seguimiento con la AWS CLI

Puede buscar los eventos de CloudTrail Insights de los últimos 90 días al ejecutar el comando aws cloudtrail lookup-events. El comando lookup-events tiene las siguientes opciones:

  • --end-time

  • --event-category

  • --max-results

  • --start-time

  • --lookup-attributes

  • --next-token

  • --generate-cli-skeleton

  • --cli-input-json

Para obtener información general sobre el uso de la AWS Command Line Interface, consulte la Guía del usuario de AWS Command Line Interface.

Requisitos previos

  • Para ejecutar comandos de AWS CLI, debe instalar la AWS CLI. Para obtener más información, consulte Introducción a la AWS CLI.

  • Asegúrese de que la versión de AWS CLI es posterior a la versión 1.6.6. Para comprobar la versión de la CLI, ejecute aws --version en la línea de comandos.

  • Para configurar la cuenta, la región y el formato de salida predeterminado para una sesión de AWS CLI, utilice el comando aws configure. Para obtener más información, consulte Configuración de la interfaz de línea de comandos de AWS.

  • Para registrar los eventos de Insights sobre el volumen de llamadas de la API, el registro de seguimiento debe registrar los eventos de administración de write. Para registrar los eventos de Insights sobre la tasa de errores de la API, el registro de seguimiento debe registrar los eventos de administración de read o write.

nota

Los comandos de la AWS CLI de CloudTrail distinguen entre mayúsculas y minúsculas.

Obtener ayuda de la línea de comandos

Para ver la ayuda de la línea de comandos de lookup-events, escriba el siguiente comando.

aws cloudtrail lookup-events help

Búsqueda de eventos de Insights

Para ver los diez últimos eventos de Insights, escriba el siguiente comando.

aws cloudtrail lookup-events --event-category insight

Un evento devuelto es similar al siguiente ejemplo,

{ "NextToken": "kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juEXAMPLE=", "Events": [ { "eventVersion": "1.07", "eventTime": "2019-10-15T21:13:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLE-9b6f-45f8-bc6b-9b41c052ebc7", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE8-02b2-4e93-9aab-08ed47ea5fd3", "insightDetails": { "state": "Start", "eventSource": "autoscaling.amazonaws.com", "eventName": "CompleteLifecycleAction", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 0.0000882145 }, "insight": { "average": 0.6 }, "insightDuration": 5, "baselineDuration": 11336 }, "attributions": [ { "attribute": "userIdentityArn", "insight": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole2", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole3", "average": 0.2 } ], "baseline": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.0000882145 } ] }, { "attribute": "userAgent", "insight": [ { "value": "codedeploy.amazonaws.com", "average": 0.6 } ], "baseline": [ { "value": "codedeploy.amazonaws.com", "average": 0.0000882145 } ] }, { "attribute": "errorCode", "insight": [ { "value": "null", "average": 0.6 } ], "baseline": [ { "value": "null", "average": 0.0000882145 } ] } ] } }, "eventCategory": "Insight" }, { "eventVersion": "1.07", "eventTime": "2019-10-15T21:14:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLEc-9eac-4af6-8e07-26a5ae8786a5", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE8-02b2-4e93-9aab-08ed47ea5fd3", "insightDetails": { "state": "End", "eventSource": "autoscaling.amazonaws.com", "eventName": "CompleteLifecycleAction", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 0.0000882145 }, "insight": { "average": 0.6 }, "insightDuration": 5, "baselineDuration": 11336 }, "attributions": [ { "attribute": "userIdentityArn", "insight": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole2", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole3", "average": 0.2 } ], "baseline": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.0000882145 } ] }, { "attribute": "userAgent", "insight": [ { "value": "codedeploy.amazonaws.com", "average": 0.6 } ], "baseline": [ { "value": "codedeploy.amazonaws.com", "average": 0.0000882145 } ] }, { "attribute": "errorCode", "insight": [ { "value": "null", "average": 0.6 } ], "baseline": [ { "value": "null", "average": 0.0000882145 } ] } ] } }, "eventCategory": "Insight" } ] }

Para obtener una explicación de los campos relacionados con la búsqueda en el resultado, consulte Campos de resultados de búsqueda sobre este tema. Para obtener una explicación de los campos del evento de Insights, consulte Contenido de los registros de CloudTrail.

Especificación del número de eventos de Insights que se devuelven

Para especificar el número de eventos que se devuelven, escriba el siguiente comando:

aws cloudtrail lookup-events --event-category insight --max-results <integer>

El valor predeterminado de <entero>, si no se especifica, es 10. Los valores posibles comprenden del 1 al 50. El ejemplo siguiente devuelve un solo resultado.

aws cloudtrail lookup-events --event-category insight --max-results 1

Búsqueda de eventos de Insights por intervalo de tiempo

Se pueden buscar eventos de Insights de los últimos 90 días. Para especificar un intervalo de tiempo, escriba el siguiente comando.

aws cloudtrail lookup-events --event-category insight --start-time <timestamp> --end-time <timestamp>

--start-time <timestamp> especifica, en UTC, que solo se devuelvan los eventos de Insights que se producen en el tiempo especificado o con posterioridad. Si la fecha de inicio especificada es posterior a la fecha de finalización especificada, se devuelve un error.

--end-time <timestamp> especifica, en UTC, que solo se devuelvan los eventos de Insights que se producen en el tiempo especificado o con anterioridad. Si la fecha de finalización especificada es anterior a la fecha de inicio especificada, se devuelve un error.

La fecha de inicio predeterminada es la primera fecha posible en que los datos están disponibles en los últimos 90 días. La fecha de finalización predeterminada es la fecha del evento que se produjo más cercana a la fecha actual.

Todas las marcas temporales se muestran en UTC.

Búsqueda de eventos de Insights por atributo

Para filtrar por un atributo, escriba el siguiente comando.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=<attribute>,AttributeValue=<string>

Solo puede especificar un atributo de pares de clave-valor para cada comando lookup-events. Los siguientes son valores válidos de eventos de Insights para AttributeKey. Los nombres de los valores distinguen entre mayúsculas y minúsculas.

  • EventId

  • EventName

  • EventSource

La longitud máxima de AttributeValue es de 2000 caracteres. Los siguientes caracteres («_», « », «,» y «\\n») cuentan como dos caracteres en el límite de 2000 caracteres.

Ejemplos de búsqueda de atributos

El siguiente comando de ejemplo devuelve los eventos de Insights en los que el valor de EventName es PutRule.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName, AttributeValue=PutRule

El siguiente comando de ejemplo devuelve los eventos de Insights en los que el valor de EventId es b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventId, AttributeValue=b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002

El siguiente comando de ejemplo devuelve los eventos de Insights en los que el valor de EventSource es iam.amazonaws.com.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventSource, AttributeValue=iam.amazonaws.com

Especificar la siguiente página de resultados

Para obtener la siguiente página de resultados de un comando lookup-events, escriba el siguiente comando.

aws cloudtrail lookup-events --event-category insight <same parameters as previous command> --next-token=<token>

En este comando, el valor de <token> se obtiene del primer campo del resultado del comando anterior.

Cuando utiliza --next-token en un comando, debe utilizar los mismos parámetros que en el comando anterior. Suponga, por ejemplo, que ejecuta el siguiente comando.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName, AttributeValue=PutRule

Para obtener la siguiente página de resultados, el siguiente comando sería similar a este.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName,AttributeValue=PutRule --next-token=EXAMPLEZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juEXAMPLE=

Obtener datos de entrada JSON de un archivo

La AWS CLI de algunos servicios de AWS tiene dos parámetros, --generate-cli-skeleton y --cli-input-json, que puede utilizar para generar una plantilla JSON que se puede modificar y utilizar como datos de entrada en el parámetro --cli-input-json. En esta sección se describe cómo utilizar estos parámetros con aws cloudtrail lookup-events. Para obtener más información, consulte Esqueletos y archivos de entrada de AWS CLI.

Para buscar eventos de Insights al obtener los datos de entrada JSON de un archivo
  1. Cree una plantilla de entrada para usarla con lookup-events redirigiendo el resultado de --generate-cli-skeleton a un archivo, como En el ejemplo siguiente.

    aws cloudtrail lookup-events --event-category insight --generate-cli-skeleton > LookupEvents.txt

    El archivo de plantilla generado (en este caso, LookupEvents.txt) tiene este aspecto.

    { "LookupAttributes": [ { "AttributeKey": "", "AttributeValue": "" } ], "StartTime": null, "EndTime": null, "MaxResults": 0, "NextToken": "" }
  2. Utilice un editor de texto para modificar los datos JSON según sea necesario. Los datos de entrada JSON solo deben contener los valores que se especifican.

    importante

    Todos los valores vacíos o null deben eliminarse de la plantilla antes de utilizarla.

    El ejemplo siguiente especifica un intervalo de tiempo y un número máximo de resultados que se devuelven.

    { "StartTime": "2023-11-01", "EndTime": "2023-12-12", "MaxResults": 10 }
  3. Para utilizar el archivo editado como entrada, use la sintaxis --cli-input-json file://<nombreArchivo>, como en el ejemplo siguiente.

    aws cloudtrail lookup-events --event-category insight --cli-input-json file://LookupEvents.txt
nota

Puede utilizar otros argumentos en la misma línea de comandos como --cli-input-json.

Campos de resultados de búsqueda

Eventos

Una lista de eventos de búsqueda en función del atributo de búsqueda y el intervalo de tiempo especificados. La lista de eventos se ordena por tiempo, con el último evento en primer lugar. Cada entrada contiene información sobre la solicitud de búsqueda e incluye una representación de cadena del evento de CloudTrail recuperado.

Las siguientes entradas describen los campos de cada evento de búsqueda.

CloudTrailEvent

Una cadena JSON que contiene una representación de objeto del evento devuelto. Para obtener información sobre cada uno de los elementos devueltos, consulte la información sobre el contenido del cuerpo del registro.

EventId

Una cadena que contiene el GUID del evento devuelto.

EventName

Una cadena que contiene el nombre del evento devuelto.

EventSource

El servicio de AWS para el que se realizó la solicitud.

EventTime

La fecha y la hora, en formato de tiempo UNIX, del evento.

Recursos

Una lista de los recursos a los que hace referencia el evento devuelto. Cada entrada de recurso especifica un tipo de recurso y un nombre de recurso.

ResourceName

Una cadena que contiene el nombre del recurso al que hace referencia el evento.

ResourceType

Una cadena que contiene el tipo de recurso al que hace referencia el evento. Cuando el tipo de recurso no se puede determinar, se devuelve null.

Nombre de usuario

Una cadena que contiene el nombre de usuario de la cuenta del evento devuelto.

NextToken

Una cadena para obtener la siguiente página de resultados de un comando lookup-events anterior. Para utilizar el token, los parámetros deben ser los mismos que los del comando original. Si no aparece ninguna entrada NextToken en la salida, no hay más resultados que devolver.

Para obtener más información sobre los eventos de CloudTrail Insights, consulte Registro de eventos de Insights en esta guía.