Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
CloudTrail exemplos usando AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface with CloudTrail.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, é possível ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, onde você pode encontrar instruções sobre como configurar e executar o código no contexto.
Tópicos
Ações
O código de exemplo a seguir mostra como usar add-tags
.
- AWS CLI
-
Para adicionar tags à trilha
O
add-tags
comando a seguir adiciona tags paraTrail1
:aws cloudtrail add-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name,Value=Alice
Key=location,Value=us
-
Para API obter detalhes, consulte AddTags
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-subscription
.
- AWS CLI
-
Para criar e configurar AWS recursos para uma trilha
O
create-subscription
comando a seguir cria um novo bucket do S3 e um novo SNS tópico paraTrail1
:aws cloudtrail create-subscription --name
Trail1
--s3-new-bucketmy-bucket
--sns-new-topicmy-topic
Saída:
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 obter detalhes, consulte CreateSubscription
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-trail
.
- AWS CLI
-
Para criar uma trilha
O
create-trail
comando a seguir cria uma trilha multirregional chamadaTrail1
e especifica um bucket do S3:aws cloudtrail create-trail --name
Trail1
--s3-bucket-namemy-bucket
--is-multi-region-trailSaída:
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
Para API obter detalhes, consulte CreateTrail
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar delete-trail
.
- AWS CLI
-
Para excluir uma trilha
O
delete-trail
comando a seguir exclui uma trilha chamadaTrail1
:aws cloudtrail delete-trail --name
Trail1
-
Para API obter detalhes, consulte DeleteTrail
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-trails
.
- AWS CLI
-
Para descrever uma trilha
O
describe-trails
comando a seguir retorna as configurações deTrail1
eTrail2
:aws cloudtrail describe-trails --trail-name-list
Trail1
Trail2
Saída:
{ "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 obter detalhes, consulte DescribeTrails
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar get-event-selectors
.
- AWS CLI
-
Para ver as configurações do seletor de eventos para uma trilha
O
get-event-selectors
comando a seguir retorna as configurações paraTrail1
:aws cloudtrail get-event-selectors --trail-name
Trail1
Saída:
{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
-
Para API obter detalhes, consulte GetEventSelectors
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar get-trail-status
.
- AWS CLI
-
Para obter o status de uma trilha
O
get-trail-status
comando a seguir retorna os detalhes de entrega e registro deTrail1
:aws cloudtrail get-trail-status --name
Trail1
Saída:
{ "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 obter detalhes, consulte GetTrailStatus
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-public-keys
.
- AWS CLI
-
Para listar todas as chaves públicas de uma trilha
O
list-public-keys
comando a seguir retorna todas as chaves públicas cujas chaves privadas foram usadas para assinar os arquivos de resumo dentro do intervalo de tempo especificado:aws cloudtrail list-public-keys --start-time
2016-01-01T20:30:00.000Z
Saída:
{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
-
Para API obter detalhes, consulte ListPublicKeys
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-tags
.
- AWS CLI
-
Para listar as tags de uma trilha
O
list-tags
comando a seguir lista as tags paraTrail1
eTrail2
: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
Saída:
{ "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 obter detalhes, consulte ListTags
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar lookup-events
.
- AWS CLI
-
Para pesquisar eventos para uma trilha
O
lookup-events
comando a seguir pesquisa eventos de API atividade pelo atributoEventName
:aws cloudtrail lookup-events --lookup-attributes
AttributeKey=EventName,AttributeValue=ConsoleLogin
Saída:
{ "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 obter detalhes, consulte LookupEvents
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar put-event-selectors
.
- AWS CLI
-
Exemplo 1: Configurar uma trilha para registrar eventos de gerenciamento e eventos de dados usando seletores de eventos avançados
Você pode adicionar seletores de eventos avançados e condições para seus seletores de eventos avançados, até um máximo de 500 valores para todas as condições e seletores em uma trilha. Você pode usar seletores de eventos avançados para registrar todos os tipos de eventos de dados disponíveis. Você pode usar seletores de eventos avançados ou seletores de eventos básicos, mas não ambos. Se você aplicar seletores de eventos avançados a uma trilha, todos os seletores de eventos básicos existentes serão substituídos.
O exemplo a seguir cria um seletor de eventos avançado para uma trilha chamada
myTrail
para registrar todos os eventos de gerenciamento, registrar o S3 PutObject e as DeleteObject API chamadas para todos, exceto um bucket do S3, registrar as API chamadas de dados para uma função Lambda chamadamyFunction
e registrar as API chamadas de publicação em um tópico chamado. SNSmyTopic
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"] }]}]
'Saída:
{ "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 obter mais informações, consulte Registrar eventos usando seletores de eventos avançados no Guia do AWS CloudTrail usuário.
Exemplo 2: Configurar seletores de eventos para uma trilha para registrar todos os eventos de gerenciamento e eventos de dados
Você pode configurar até 5 seletores de eventos para uma trilha e até 250 recursos de dados para uma trilha. Os seletores de eventos também são chamados de seletores de eventos básicos. Você pode usar seletores de eventos para registrar eventos de gerenciamento e eventos de dados para objetos do S3, funções Lambda e tabelas do DynnamoDB. Para registrar eventos de dados para outros tipos de recursos, você deve usar seletores de eventos avançados.
O exemplo a seguir cria um seletor de eventos para uma trilha nomeada
TrailName
para incluir todos os eventos de gerenciamento, eventos de dados para duas combinações de bucket/prefixo do Amazon S3 e eventos de dados para uma única função Lambda chamada. AWShello-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"]}]}]
'Saída:
{ "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 obter mais informações, consulte Registrar eventos usando seletores de eventos básicos no Guia do AWS CloudTrail usuário.
Exemplo 3: Configure seletores de eventos para uma trilha para registrar eventos de gerenciamento, todos os eventos de dados do S3 em objetos do S3 e todos os eventos de dados do Lambda em funções em sua conta
O exemplo a seguir cria um seletor de eventos para uma trilha chamada
TrailName2
que inclui todos os eventos de gerenciamento e todos os eventos de dados para todos os buckets do Amazon S3 AWS e funções Lambda na conta. AWSaws 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"]}]}]
'Saída:
{ "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 obter mais informações, consulte Registrar eventos usando seletores de eventos básicos no Guia do AWS CloudTrail usuário.
-
Para API obter detalhes, consulte PutEventSelectors
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar remove-tags
.
- AWS CLI
-
Para remover etiquetas de uma trilha
O
remove-tags
comando a seguir remove as tags especificadas paraTrail1
:aws cloudtrail remove-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name
Key=location
-
Para API obter detalhes, consulte RemoveTags
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar start-logging
.
- AWS CLI
-
Para começar a registrar uma trilha
O
start-logging
comando a seguir ativa o registro em log paraTrail1
:aws cloudtrail start-logging --name
Trail1
-
Para API obter detalhes, consulte StartLogging
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar stop-logging
.
- AWS CLI
-
Para parar de registrar uma trilha
O
stop-logging
comando a seguir desativa o registro paraTrail1
:aws cloudtrail stop-logging --name
Trail1
-
Para API obter detalhes, consulte StopLogging
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar update-subscription
.
- AWS CLI
-
Para atualizar as configurações de uma trilha
O
update-subscription
comando a seguir atualiza a trilha para especificar um novo bucket e SNS tópico do S3:aws cloudtrail update-subscription --name
Trail1
--s3-new-bucketmy-bucket-new
--sns-new-topicmy-topic-new
Saída:
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 obter detalhes, consulte UpdateSubscription
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar update-trail
.
- AWS CLI
-
Para atualizar uma trilha
O
update-trail
comando a seguir atualiza uma trilha para usar um bucket existente para entrega de registros:aws cloudtrail update-trail --name
Trail1
--s3-bucket-namemy-bucket
Saída:
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
Para API obter detalhes, consulte UpdateTrail
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar validate-logs
.
- AWS CLI
-
Para validar um arquivo de log
O
validate-logs
comando a seguir valida os registros paraTrail1
:aws cloudtrail validate-logs --trail-arn
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--start-time20160129T19:00:00Z
Saída:
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 obter detalhes, consulte ValidateLogs
na Referência de AWS CLI Comandos.
-