CloudTrail ejemplos que utilizan AWS CLI - AWS Command Line Interface

Esta documentación es AWS CLI únicamente para la versión 1 de la versión. Para ver la documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

CloudTrail ejemplos que utilizan AWS CLI

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes mediante el uso del AWS Command Line Interface with CloudTrail.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Acciones

En el siguiente ejemplo de código se muestra cómo usarloadd-tags.

AWS CLI

Para añadir etiquetas a la ruta

El siguiente add-tags comando añade etiquetas paraTrail1:

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name,Value=Alice Key=location,Value=us
  • Para API obtener más información, consulte AddTagsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlocreate-subscription.

AWS CLI

Para crear y configurar AWS los recursos de una ruta

El siguiente create-subscription comando crea un nuevo bucket de S3 y un SNS tema paraTrail1:

aws cloudtrail create-subscription --name Trail1 --s3-new-bucket my-bucket --sns-new-topic my-topic

Salida:

Setting up new S3 bucket my-bucket... Setting up new SNS topic my-topic... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "f39e51f6-c615-11e5-85bd-d35ca21ee3e2" } } Starting CloudTrail service... Logs will be delivered to my-bucket
  • Para API obtener más información, consulte CreateSubscriptionla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlocreate-trail.

AWS CLI

Para crear una ruta

El siguiente create-trail comando crea un sendero multirregional denominado Trail1 y especifica un bucket de S3:

aws cloudtrail create-trail --name Trail1 --s3-bucket-name my-bucket --is-multi-region-trail

Salida:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
  • Para API obtener más información, consulte CreateTrailla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlodelete-trail.

AWS CLI

Para eliminar un rastro

El siguiente delete-trail comando elimina un sendero denominadoTrail1:

aws cloudtrail delete-trail --name Trail1
  • Para API obtener más información, consulte DeleteTrailla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlodescribe-trails.

AWS CLI

Para describir un sendero

El siguiente describe-trails comando devuelve la configuración de Trail1 yTrail2:

aws cloudtrail describe-trails --trail-name-list Trail1 Trail2

Salida:

{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Role", "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:*", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" }, { "IncludeGlobalServiceEvents": true, "Name": "Trail2", "S3KeyPrefix": "my-prefix", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket", "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769", "HomeRegion": "us-east-1" } ] }
  • Para API obtener más información, consulte DescribeTrailsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloget-event-selectors.

AWS CLI

Para ver la configuración del selector de eventos de un sendero

El siguiente get-event-selectors comando devuelve la configuración deTrail1:

aws cloudtrail get-event-selectors --trail-name Trail1

Salida:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
  • Para API obtener más información, consulte GetEventSelectorsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloget-trail-status.

AWS CLI

Para obtener el estado de un sendero

El siguiente get-trail-status comando devuelve los detalles de entrega y registro deTrail1:

aws cloudtrail get-trail-status --name Trail1

Salida:

{ "LatestNotificationTime": 1454022144.869, "LatestNotificationAttemptSucceeded": "2016-01-28T23:02:24Z", "LatestDeliveryAttemptTime": "2016-01-28T23:02:24Z", "LatestDeliveryTime": 1454022144.869, "TimeLoggingStarted": "2015-11-06T18:36:38Z", "LatestDeliveryAttemptSucceeded": "2016-01-28T23:02:24Z", "IsLogging": true, "LatestCloudWatchLogsDeliveryTime": 1454022144.918, "StartLoggingTime": 1446834998.695, "StopLoggingTime": 1446834996.933, "LatestNotificationAttemptTime": "2016-01-28T23:02:24Z", "TimeLoggingStopped": "2015-11-06T18:36:36Z" }
  • Para API obtener más información, consulte GetTrailStatusla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlolist-public-keys.

AWS CLI

Para enumerar todas las claves públicas de una ruta

El siguiente list-public-keys comando devuelve todas las claves públicas cuyas claves privadas se utilizaron para firmar los archivos de resumen dentro del intervalo de tiempo especificado:

aws cloudtrail list-public-keys --start-time 2016-01-01T20:30:00.000Z

Salida:

{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
  • Para API obtener más información, consulte ListPublicKeysla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlolist-tags.

AWS CLI

Para enumerar las etiquetas de un sendero

El siguiente list-tags comando muestra las etiquetas de Trail1 yTrail2:

aws cloudtrail list-tags --resource-id-list arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2

Salida:

{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "name" }, { "Value": "us", "Key": "location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "name" } ] } ] }
  • Para API obtener más información, consulte ListTagsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlolookup-events.

AWS CLI

Para buscar eventos de una ruta

El siguiente lookup-events comando busca los eventos de API actividad por el atributoEventName:

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

Salida:

{ "Events": [ { "EventId": "654ccbc0-ba0d-486a-9076-dbf7274677a7", "Username": "my-session-name", "EventTime": "2021-11-18T09:41:02-08:00", "CloudTrailEvent": "{\"eventVersion\":\"1.02\",\"userIdentity\":{\"type\":\"AssumedRole\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4:my-session-name\",\"arn\":\"arn:aws:sts::123456789012:assumed-role/my-role/my-session-name\",\"accountId\":\"123456789012\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2016-01-26T21:42:12Z\"},\"sessionIssuer\":{\"type\":\"Role\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4\",\"arn\":\"arn:aws:iam::123456789012:role/my-role\",\"accountId\":\"123456789012\",\"userName\":\"my-role\"}}},\"eventTime\":\"2016-01-26T21:42:12Z\",\"eventSource\":\"signin.amazonaws.com\",\"eventName\":\"ConsoleLogin\",\"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"72.21.198.70\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36\",\"requestParameters\":null,\"responseElements\":{\"ConsoleLogin\":\"Success\"},\"additionalEventData\":{\"MobileVersion\":\"No\",\"MFAUsed\":\"No\"},\"eventID\":\"654ccbc0-ba0d-486a-9076-dbf7274677a7\",\"eventType\":\"AwsConsoleSignIn\",\"recipientAccountId\":\"123456789012\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }
  • Para API obtener más información, consulte LookupEventsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloput-event-selectors.

AWS CLI

Ejemplo 1: configurar un registro para registrar los eventos de administración y los eventos de datos mediante selectores de eventos avanzados

Puedes añadir selectores de eventos avanzados y condiciones para tus selectores de eventos avanzados, hasta un máximo de 500 valores para todas las condiciones y selectores de un sendero. Puedes usar selectores de eventos avanzados para registrar todos los tipos de eventos de datos disponibles. Puede utilizar selectores de eventos avanzados o selectores de eventos básicos, pero no ambos. Si aplica selectores de eventos avanzados a un registro de seguimiento, se sobrescriben todos los selectores de eventos básicos existentes.

En el siguiente ejemplo, se crea un selector de eventos avanzado para una ruta denominada myTrail para registrar todos los eventos de administración, registrar S3 PutObject y las DeleteObject API llamadas para todos los bucket de S3 excepto uno, registrar las API llamadas de datos para una función de Lambda denominada myFunction y registrar las API llamadas de publicación en un SNS tema denominado. myTopic

aws cloudtrail put-event-selectors \ --trail-name myTrail \ --advanced-event-selectors '[{"Name": "Log all management events", "FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Management"] }] },{"Name": "Log PutObject and DeleteObject events for all but one bucket","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::S3::Object"] },{ "Field": "eventName", "Equals": ["PutObject","DeleteObject"] },{ "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::sample_bucket_name/"] }]},{"Name": "Log data events for a specific Lambda function","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:123456789012:function:myFunction"] }]},{"Name": "Log all Publish API calls on a specific SNS topic","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::SNS::Topic"] },{ "Field": "eventName", "Equals": ["Publish"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:sns:us-east-1:123456789012:myTopic.fifo"] }]}]'

Salida:

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/myTrail", "AdvancedEventSelectors": [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "eventName", "Equals": [ "PutObject", "DeleteObject" ] }, { "Field": "resources.ARN", "NotStartsWith": [ "arn:aws:s3:::sample_bucket_name/" ] } ] }, { "Name": "Log data events for a specific Lambda function", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-1:123456789012:function:myFunction" ] } ] }, { "Name": "Log all Publish API calls on a specific SNS topic", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::SNS::Topic" ] }, { "Field": "eventName", "Equals": [ "Publish" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:sns:us-east-1:123456789012:myTopic.fifo" ] } ] } ] }

Para obtener más información, consulte Registrar eventos mediante selectores de eventos avanzados en la Guía del AWS CloudTrail usuario.

Ejemplo 2: configurar los selectores de eventos para que un registro registre todos los eventos de administración y datos

Puede configurar hasta cinco selectores de eventos para un registro de seguimiento y hasta 250 recursos de datos para un registro de seguimiento. Los selectores de eventos también se denominan selectores de eventos básicos. Puede usar selectores de eventos para registrar eventos de administración y eventos de datos para objetos S3, funciones Lambda y tablas de DynamoDB. Para registrar eventos de datos para otros tipos de recursos, debe usar selectores de eventos avanzados.

En el siguiente ejemplo, se crea un selector de eventos para una ruta cuyo nombre TrailName incluye todos los eventos de administración, los eventos de datos para dos combinaciones de bucket y prefijo de Amazon S3 y los eventos de datos para una sola función de AWS Lambda denominada. hello-world-python-function

aws cloudtrail put-event-selectors \ --trail-name TrailName \ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'

Salida:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Para obtener más información, consulte Registrar eventos mediante selectores de eventos básicos en la Guía del usuario.AWS CloudTrail

Ejemplo 3: configurar los selectores de eventos de una ruta para registrar los eventos de administración, todos los eventos de datos de S3 en los objetos de S3 y todos los eventos de datos de Lambda en las funciones de su cuenta

En el siguiente ejemplo, se crea un selector de eventos para una ruta denominada TrailName2 que incluye todos los eventos de administración y todos los eventos de datos de todos los buckets de Amazon S3 y las funciones de AWS Lambda de la cuenta. AWS

aws cloudtrail put-event-selectors \ --trail-name TrailName2 \ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'

Salida:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

Para obtener más información, consulte Registrar eventos mediante selectores de eventos básicos en la Guía del AWS CloudTrail usuario.

  • Para API obtener más información, consulte PutEventSelectorsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloremove-tags.

AWS CLI

Para eliminar las etiquetas de un sendero

El siguiente remove-tags comando elimina las etiquetas especificadas paraTrail1:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • Para API obtener más información, consulte RemoveTagsla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlostart-logging.

AWS CLI

Para empezar a registrar una ruta

El siguiente start-logging comando activa el registro deTrail1:

aws cloudtrail start-logging --name Trail1
  • Para API obtener más información, consulte StartLoggingla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlostop-logging.

AWS CLI

Para dejar de registrar una ruta

El siguiente stop-logging comando desactiva el registro deTrail1:

aws cloudtrail stop-logging --name Trail1
  • Para API obtener más información, consulte StopLoggingla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloupdate-subscription.

AWS CLI

Para actualizar los ajustes de configuración de un sendero

El siguiente update-subscription comando actualiza la ruta para especificar un SNS tema y un bucket de S3 nuevos:

aws cloudtrail update-subscription --name Trail1 --s3-new-bucket my-bucket-new --sns-new-topic my-topic-new

Salida:

Setting up new S3 bucket my-bucket-new... Setting up new SNS topic my-topic-new... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-bucket-new", "SnsTopicName": "my-topic-new", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879" } }
  • Para API obtener más información, consulte UpdateSubscriptionla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarloupdate-trail.

AWS CLI

Para actualizar una ruta

El siguiente update-trail comando actualiza un rastro para usar un depósito existente para la entrega de registros:

aws cloudtrail update-trail --name Trail1 --s3-bucket-name my-bucket

Salida:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
  • Para API obtener más información, consulte UpdateTrailla Referencia de AWS CLI comandos.

El siguiente ejemplo de código muestra cómo usarlovalidate-logs.

AWS CLI

Para validar un archivo de registro

El siguiente validate-logs comando valida los registros deTrail1:

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --start-time 20160129T19:00:00Z

Salida:

Validating log files for trail arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 between 2016-01-29T19:00:00Z and 2016-01-29T22:15:43Z Results requested for 2016-01-29T19:00:00Z to 2016-01-29T22:15:43Z Results found for 2016-01-29T19:24:57Z to 2016-01-29T21:24:57Z: 3/3 digest files valid 15/15 log files valid
  • Para API obtener más información, consulte ValidateLogsla Referencia de AWS CLI comandos.