CloudTrail ejemplos que utilizan AWS CLI - Ejemplos de código de AWS SDK

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

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 distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar add-tags.

AWS CLI

Adición de etiquetas al registro de seguimiento

En el siguiente comando add-tags, se añaden etiquetas para Trail1:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar create-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.

En el siguiente ejemplo de código, se muestra cómo utilizar create-trail.

AWS CLI

Creación de un registro de seguimiento

En el siguiente comando de create-trail, se crea un registro de seguimiento multirregional denominado Trail1 y se 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.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-trail.

AWS CLI

Eliminación de un registro de seguimiento

En el siguiente comando delete-trail, se elimina un registro de seguimiento denominado Trail1:

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

En el siguiente ejemplo de código, se muestra cómo utilizar describe-trails.

AWS CLI

Descripción de un registro de seguimiento

En el siguiente comando describe-trails, se obtiene la configuración de Trail1 y Trail2:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar get-event-selectors.

AWS CLI

Visualización de la configuración de los selectores de eventos de un registro de seguimiento

En el siguiente comando get-event-selectors, se obtiene la configuración de Trail1:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar get-trail-status.

AWS CLI

Obtención del estado de un registro de seguimiento

En el siguiente comando get-trail-status, se obtienen los detalles de entrega y registro de Trail1:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar list-public-keys.

AWS CLI

Generación de una lista de todas las claves públicas de un registro de seguimiento

En el siguiente comando list-public-keys, se obtienen todas las claves públicas cuyas claves privadas se han utilizado para firmar archivos de resumen en el 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.

En el siguiente ejemplo de código, se muestra cómo utilizar list-tags.

AWS CLI

Generación de una lista de etiquetas de un registro de seguimiento

Con el siguiente comando list-tags, se genera una lista de 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.

En el siguiente ejemplo de código, se muestra cómo utilizar lookup-events.

AWS CLI

Búsqueda de los eventos de un registro de seguimiento

El siguiente lookup-events comando busca los eventos de API actividad por 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.

En el siguiente ejemplo de código, se muestra cómo utilizar put-event-selectors.

AWS CLI

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

Puede añadir selectores de eventos avanzados y condiciones para los selectores de eventos avanzados; hasta un máximo de 500 valores para todas las condiciones y selectores de un registro de seguimiento. Puede utilizar los 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: cómo configurar selectores de eventos para un registro de seguimiento con objeto de registrar todos los eventos de administración y los eventos de 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 conocen como selectores de eventos básicos. Puede usar selectores de eventos para registrar eventos de administración y eventos de datos para objetos de S3, funciones de Lambda y tablas de DynnamoDB. Para registrar eventos de datos de otros tipos de recursos, debe utilizar 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: cómo configurar los selectores de eventos de un registro de seguimiento para que registre 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 la 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.

En el siguiente ejemplo de código, se muestra cómo utilizar remove-tags.

AWS CLI

Eliminación de etiquetas de un registro de seguimiento

En el siguiente comando remove-tags, se eliminan las etiquetas especificadas para Trail1:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar start-logging.

AWS CLI

Inicio del registro de un registro de seguimiento

En el siguiente comando start-logging, se activa el registro de Trail1:

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

En el siguiente ejemplo de código, se muestra cómo utilizar stop-logging.

AWS CLI

Detención del registro de un registro de seguimiento

Con el siguiente comando stop-logging, se desactiva el registro de Trail1:

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

En el siguiente ejemplo de código, se muestra cómo utilizar update-subscription.

AWS CLI

Actualización de los ajustes de configuración de un registro de seguimiento

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

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.

En el siguiente ejemplo de código, se muestra cómo utilizar update-trail.

AWS CLI

Actualización de un registro de seguimiento

Con el siguiente comando update-trail, se actualiza un registro de seguimiento de manera que utilice un bucket existente para la entrega del registro:

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.

En el siguiente ejemplo de código, se muestra cómo utilizar validate-logs.

AWS CLI

Validación de un archivo de registro

En el siguiente comando de validate-logs, se validan los registros de Trail1:

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.