Visualización de eventos de administración recientes con la AWS CLI - AWS CloudTrail

Visualización de eventos de administración recientes con la AWS CLI

Puede consultar los eventos de administración de CloudTrail de los últimos 90 días para la Región de AWS actual a través del comando aws cloudtrail lookup-events. El comando aws cloudtrail lookup-events muestra los eventos en la Región de AWS en que se produjeron.

La búsqueda admite los siguientes atributos para los eventos de administración:

  • AWSClave de acceso de

  • ID de evento

  • Nombre de evento

  • Origen del evento

  • Solo lectura

  • Nombre del recurso

  • Tipo de recurso

  • Nombre de usuario

Todos los atributos son opcionales.

El comando lookup-events incluye las siguientes opciones:

  • --max-items <integer>: el número total de elementos que se devuelven en la salida del comando. Si el número total de elementos disponible es mayor que el valor especificado, se proporciona un NextToken en la salida del comando. Para reanudar la paginación, proporcione el valor de NextToken en el argumento starting-token de un comando posterior. No utilice el elemento de respuesta NextToken directamente fuera de la AWS CLI.

  • --start-time <timestamp>: especifica que solo se devuelvan los eventos 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.

  • --lookup-attributes <integer>: contiene una lista de atributos de búsqueda. Actualmente, la lista solo puede contener un elemento.

  • --generate-cli-skeleton <string>: imprime un esqueleto de JSON en la salida estándar sin enviar una solicitud a la API. Si se proporciona sin ningún valor o sin la entrada del valor, imprime un JSON de entrada de muestra que se puede utilizar como argumento para --cli-input-json. Del mismo modo, si se proporciona yaml-input, se imprimirá una entrada YAML de muestra que se puede utilizar con --cli-input-yaml. Si se proporciona la salida del valor, valida las entradas del comando y devuelve un JSON de salida de muestra para ese comando. El esqueleto de JSON generado no es estable entre las versiones de la AWS CLI y no hay garantías de compatibilidad con versiones anteriores en el esqueleto de JSON generado.

  • --cli-input-json <string>: lee los argumentos de la cadena JSON proporcionada. La cadena JSON sigue el formato proporcionado por el parámetro --generate-cli-skeleton. Si se proporcionan otros argumentos en la línea de comandos, esos valores anularán los valores proporcionados por el archivo JSON. No es posible pasar valores binarios arbitrarios utilizando un valor proporcionado por el archivo JSON, ya que la cadena se interpretará literalmente. Es posible que no se especifique junto con el parámetro --cli-input-yaml.

Para obtener información general sobre cómo utilizar la interfaz de la línea de comandos de AWS, 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 informarse, 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 de AWS 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.

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

Buscar eventos

importante

La tasa de solicitudes de búsqueda está limitada a dos por segundo, por cuenta y por región. Si se supera este límite, se produce un error de limitación.

Para ver los diez últimos eventos, escriba el siguiente comando:

aws cloudtrail lookup-events --max-items 10

Un evento devuelto tiene un aspecto similar al siguiente ejemplo ficticio, que se ha formateado para simplificar su lectura:

{ "NextToken": "kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=", "Events": [ { "EventId": "0ebbaee4-6e67-431d-8225-ba0d81df5972", "Username": "root", "EventTime": 1424476529.0, "CloudTrailEvent": "{ \"eventVersion\":\"1.02\", \"userIdentity\":{ \"type\":\"Root\", \"principalId\":\"111122223333\", \"arn\":\"arn:aws:iam::111122223333:root\", \"accountId\":\"111122223333\"}, \"eventTime\":\"2015-02-20T23:55:29Z\", \"eventSource\":\"signin.amazonaws.com\", \"eventName\":\"ConsoleLogin\", \"awsRegion\":\"us-east-2\", \"sourceIPAddress\":\"203.0.113.4\", \"userAgent\":\"Mozilla/5.0\", \"requestParameters\":null, \"responseElements\":{\"ConsoleLogin\":\"Success\"}, \"additionalEventData\":{ \"MobileVersion\":\"No\", \"LoginTo\":\"https://console.aws.amazon.com/console/home", \"MFAUsed\":\"No\"}, \"eventID\":\"0ebbaee4-6e67-431d-8225-ba0d81df5972\", \"eventType\":\"AwsApiCall\", \"recipientAccountId\":\"111122223333\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }

Para obtener una explicación de los campos relacionados con la búsqueda en el resultado, consulte la sección Campos de resultados de búsqueda más adelante en este documento. Para obtener una explicación de los campos del evento de CloudTrail, consulte CloudTrail registra el contenido de los eventos de administración, de datos y de actividad de la red.

Especificar el número de eventos que se devuelven

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

aws cloudtrail lookup-events --max-items <integer>

Los valores posibles comprenden del 1 al 50. El ejemplo siguiente devuelve un solo evento.

aws cloudtrail lookup-events --max-items 1

Buscar eventos por intervalo de tiempo

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

aws cloudtrail lookup-events --start-time <timestamp> --end-time <timestamp>

--start-time <timestamp> especifica, en UTC, que solo se devuelvan los eventos 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 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.

Buscar eventos por atributo

Para filtrar por un atributo, escriba el siguiente comando:

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

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

  • AccessKeyId

  • EventId

  • EventName

  • EventSource

  • ReadOnly

  • ResourceName

  • ResourceType

  • Username

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 en los que el valor de AccessKeyId es AKIAIOSFODNN7EXAMPLE.

aws cloudtrail lookup-events --lookup-attributes AttributeKey=AccessKeyId,AttributeValue=AKIAIOSFODNN7EXAMPLE

El siguiente comando de ejemplo devuelve el evento para el de CloudTrail especificado EventId.

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

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

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances

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

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

El siguiente comando de ejemplo devuelve eventos de escritura. Excluye eventos de lectura como GetBucketLocation y DescribeStream.

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ReadOnly,AttributeValue=false

El siguiente comando de ejemplo devuelve los eventos en los que el valor de ResourceName es CloudTrail_CloudWatchLogs_Role.

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=CloudTrail_CloudWatchLogs_Role

El siguiente comando de ejemplo devuelve los eventos en los que el valor de ResourceType es AWS::S3::Bucket.

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::S3::Bucket

El siguiente comando de ejemplo devuelve los eventos en los que el valor de Username es root.

aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root

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 <same parameters as previous command> --next-token=<token>

donde 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 --lookup-attributes AttributeKey=Username,AttributeValue=root

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

aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root --next-token=kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=

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 general, consulte AWS CLI skeletons and input files.

Para buscar los eventos de CloudTrail mediante la obtención de 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 --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://<filename>, como en el ejemplo siguiente:

    aws cloudtrail lookup-events --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

Events (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.