AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como posso recuperar e analisar meus logs do CloudTrail com o CloudWatch Logs Insights?
Quero usar o Amazon CloudWatch Logs Insights para recuperar e analisar meus logs do Amazon CloudTrail.
Breve descrição
Depois de configurar o CloudTrail para registrar o CloudWatch Logs, você pode usar consultas no CloudWatch Logs Insights para recuperar os logs do CloudTrail. Em seguida, você pode monitorar a atividade de uma conta específica.
Resolução
Use as seguintes consultas para recuperar os CloudWatch Logs para analisar e explorar a atividade do objeto e do bucket do Amazon Simple Storage Service (Amazon S3). Observe que, por padrão, o CloudTrail não captura eventos de dados do Amazon S3. Você deve ativar o registro em log de eventos no CloudTrail para recuperar logs de eventos para buckets e objetos do S3.
Você pode usar esses exemplos de consultas para criar consultas adicionais e mais complexas do Logs Insights que se alinhem ao seu caso de uso. Você também pode integrar consultas ao seu painel do CloudWatch para visualizar suas consultas como tabelas e gráficos junto com métricas relacionadas.
Consulta 1: Últimos eventos
Objetivo
Recupere os eventos de log do CloudTrail mais recentes com os campos padrão @timestamp e @message.
Consulta
#Retrieve the most recent CloudTrail events fields @timestamp, @message | sort @timestamp desc | limit 2
Resultados
| @timestamp | @message |
| 2022-02-18 17:52:31.118 | {"eventVersion":"1.08","userIdentity":{"type":"AssumedRole","principalId":"AROAWZKRRJU47ARZN7ECC:620d7d78144334d6933c27195cae2a98", "arn":"arn:aws:sts::123456789012:assumed- role/Amazon_EventBridge_Invoke_Run_Command_371790151/620d7d78144334d6933c27195cae2a98","accountId":"123456789012", "accessKeyId":"ASIAWZKRRJU4Y45M4SC6","sessionContext":{"sessionIssuer": {"type":"Role","principalId":"AROAWZKRRJU47ARZN7ECC","arn":"arn:aws:iam::123456789012:role/service- role/Amazon_EventBridge_Invoke_Run_Command_371790151","accountId":"123456789012","userName": "Amazon_EventBridge_Invoke_Run_Command_371790151" (saída truncada) |
| 2022-02-18 17:51:52.137 | {"eventVersion":"1.08","userIdentity":{"type":"AssumedRole","principalId":"AROAWZKRRJU43YP4FHR2N:StateManagerService","arn":"arn:aws:sts::123456789012:assumed-role/AWSServiceRoleForAmazonSSM/StateManagerService","accountId":"123456789012","sessionContext":{"sessionIssuer":{"type":"Role","principalId":"AROAWZKRRJU43YP4FHR2N","arn":"arn:aws:iam::123456789012:role/aws-service-role/ssm.amazonaws.com/AWSServiceRoleForAmazonSSM","accountId":"123456789012","userName":"AWSServiceRoleForAmazonSSM"}, "webIdFederationData":{},"attributes":{"creationDate":"2022-02-18T17:50:06Z","mfaAuthenticated":"false"}},"invokedBy":"ssm.amazonaws.com"},"eventTime":"2022-02-18T17:50:06Z","eventSource":"ec2.amazonaws.com","eventName":"DescribeInstances","awsRegion":"eu-west-1","sourceIPAddress":"ssm.amazonaws.com","userAgent":"ssm.amazonaws.com","requestParameters":{"maxResults":50,"instancesSet": (output truncated) |
Consulta 2: Separar campos individuais
Objetivo
- Isolar os campos individuais em @message.
- Exibir os campos selecionados no evento do CloudTrail.
Consulta
#Breakout Individual Fields fields @timestamp, awsRegion, eventCategory, eventSource, eventName, eventType, sourceIPAddress, userIdentity.type | sort @timestamp desc | limit 2
Resultados
| @timestamp | awsRegion | eventCategory | eventSource | eventName | eventType | sourceIPAddress | userIdentity.type |
|---|---|---|---|---|---|---|---|
| 2022-02-18 18:00:09.647 | ca-central-1 | Management | sts.amazonaws.com | AssumeRole | AwsApiCall | cloudtrail.amazonaws.com | AWSService |
| 2022-02-18 18:00:09.647 | ca-central-1 | Management | sts.amazonaws.com | AssumeRole | AwsApiCall | cloudtrail.amazonaws.com | AWSService |
Consulta 3: Filtrar por instâncias de execução do Amazon Elastic Compute Cloud (Amazon EC2)
Objetivo
- Recuperar campos específicos no evento do CloudTrail.
- Renomear os campos para usar rótulos mais significativos.
- Filtrar as instâncias EC2 mais recentes lançadas nessa conta com base na chamada de API.
Consulta
#EC2: Recently Launched Instances fields eventTime, eventName as API, responseElements.instancesSet.items.0.instanceId as InstanceID, userIdentity.sessionContext.sessionIssuer.type as IssuerType, userIdentity.type as IdentityType, userIdentity.sessionContext.sessionIssuer.userName as userName | filter eventName = 'RunInstances' | sort eventTime desc | limit 2
Resultados
| eventTime | API | InstanceID | IssuerType | IdentityType | userName |
|---|---|---|---|---|---|
| 2022-02-18T17:36:38Z | RunInstances | i-0325b4d6ae4e93c75 | o perfil | AssumedRole | AWSServiceRoleForAutoScaling |
| 2022-02-18T13:45:18Z | RunInstances | i-04d17a8425b7cb59a | o perfil | AssumedRole | AWSServiceRoleForAutoScaling |
Consulta 4: Filtrar pelo login mais recente no console
Objetivo
- Recuperar campos específicos no evento do CloudTrail.
- Renomear os campos para usar rótulos mais significativos.
- Filtrar os logins mais recentes no console com base na chamada de API.
Consulta
#Console Login: Most Recent API Calls fields eventTime, eventName, responseElements.ConsoleLogin as Response, userIdentity.arn as ARN, userIdentity.type as User_Type | filter eventName = 'ConsoleLogin' | sort eventTime desc | limit 10
Resultados
| eventTime | eventName | Response | ARN | User_Type |
|---|---|---|---|---|
| 2022-02-18T17:35:44Z | ConsoleLogin | Success | arn:aws:iam::123456789012:user/test_user | IAMUser |
| 2022-02-17T13:53:58Z | ConsoleLogin | Success | arn:aws:sts::123456789012:assumed-role/Admin/test_user | AssumedRole |
Consulta 5: Filtrar pelo login do console com falha na autenticação
Objetivo
- Recuperar campos específicos no evento do CloudTrail.
- Renomear os campos para usar rótulos mais significativos.
- Filtrar os últimos logins malsucedidos do console.
Consulta
#ConsoleLogin: Filter on Failed Logins fields eventTime, eventName, responseElements.ConsoleLogin as Response, userIdentity.userName as User, userIdentity.type as User_Type, sourceIPAddress, errorMessage | filter eventName = 'ConsoleLogin' and responseElements.ConsoleLogin = 'Failure' | sort eventTime desc | limit 10
Resultados
| eventTime | eventName | Response | Usuário | User_Type | sourceIPAddress | errorMessage |
|---|---|---|---|---|---|---|
| 2022-02-18T20:10:55Z | ConsoleLogin | Failure | echo | IAMUser | 12.34.56.89 | Falha na autenticação |
| 2022-02-18T20:10:43Z | ConsoleLogin | Failure | echo | IAMUser | 12.34.56.89 | Falha na autenticação |
Consulta 6: Filtrar por upload de objeto do Amazon Simple Storage Service (Amazon S3)
Objetivo
- Recuperar campos específicos no evento do CloudTrail.
- Renomear os campos para usar rótulos mais significativos.
- Filtrar a chamada de API e o bucket do S3 de destino.
Consulta
#Filter PutObject API Calls on a specific S3 Bucket fields @timestamp, eventName as API, requestParameters.bucketName as BucketName, requestParameters.key as Key, userIdentity.sessionContext.sessionIssuer.userName as UserName | filter eventName = 'PutObject' and BucketName = 'target-s3-bucket' | sort @timestamp desc | limit 2
Resultados
| @timestamp | API | BucketName | Chave | UserName |
|---|---|---|---|---|
| 2022-02-12 17:16:07.415 | PutObject | test_bucket1 | w4r9Hg4V7g.jpg | |
| 2022-02-12 16:29:43.470 | PutObject | test_bucket2 | 6wyBy0hBoB.jpg |
Consulta 7: Resumir a atividade do S3
Objetivo
- Filtrar com base no serviço do Amazon S3.
- Agregar todos os eventos correspondentes com base na estatística de contagem.
- Dividir os resultados com base na API, no bucket do S3 e na chave.
- Use o comando stats para renomear os campos.
- Classifique por ordem decrescente.
Consulta
#S3 Activity: Bucket Key Details filter eventSource = 's3.amazonaws.com' | stats count(*) as Hits by eventName as API, requestParameters.bucketName as BucketName, requestParameters.key as Key | sort Hits desc | limit 5
Resultados
| API | BucketName | Chave | Ocorrências |
|---|---|---|---|
| ListAccessPoints | 44 | ||
| GetBucketAcl | team1-ctrail-multi-region | 27 | |
| GetBucketAcl | team2-dub-cloudtrail | 27 | |
| GetBucketAcl | aws-cloudtrail-logs-123456789012-ba940dd7 | 26 | |
| GetObject | devsupport-prod | rdscr/individual/123456789012 | 18 |
Consulta 8: Resumir a atividade de descriptografia do AWS KMS
Objetivo
- Filtrar com base no serviço AWS Key Management Service (AWS KMS) e na API Decrypt.
- Usar o comando fields para renomear os campos e, em seguida, agregar os nomes de fácil utilização.
- Agregar todos os eventos correspondentes com base na estatística de contagem.
- Dividir os resultados com base na chave e no usuário do AWS KMS.
- Classifique por ordem decrescente.
Consulta
#KMS Decrypt Activity: Key User Details fields resources.0.ARN as KMS_Key, userIdentity.sessionContext.sessionIssuer.userName as User | filter eventSource='kms.amazonaws.com' and eventName='Decrypt' | stats count(*) as Hits by KMS_Key, User | sort Hits desc | limit 2
Resultados
| KMS_Key | Usuário | Ocorrências |
|---|---|---|
| arn:aws:kms:us-east-1:123456789012:key/03f2923d-e213-439d-92cf-cbb444bd85bd | AWSServiceRoleForConfig | 12 |
| arn:aws:kms:us-east-1:123456789012:key/03f2923d-e213-439d-92cf-cbb444bd85bd | FoxTrot-1UQJBODTWZYZ6 | 8 |
Consulta 9: Resumir as chamadas de API com erros
Objetivo
- Filtrar com base na presença do campo errorCode.
- Agregar todos os eventos correspondentes com base na estatística de contagem.
- Dividir os resultados com base no serviço da AWS, na API e em errorCode.
- Use o comando stats para renomear os campos.
- Classifique pelo maior número de correspondências.
Consulta
#Summarize API Calls with Errors filter ispresent(errorCode) | stats count(*) as Num_of_Events by eventSource as AWS_Service, eventName as API, errorCode | sort Num_of_Events desc | limit 5
Resultados
| AWS_Service | API | errorCode | Num_of_Events |
|---|---|---|---|
| s3.amazonaws.com | GetBucketPublicAccessBlock | NoSuchPublicAccessBlockConfiguration | 79 |
| lambda.amazonaws.com | GetLayerVersionPolicy20181031 | ResourceNotFoundException | 66 |
| s3.amazonaws.com | GetBucketPolicyStatus | NoSuchBucketPolicy | 60 |
| s3.amazonaws.com | HeadBucket | AccessDenied | 47 |
| logs.amazonaws.com | CreateLogStream | ResourceNotFoundException | 21 |
Consulta 10: Resumir as chamadas de API do S3 com códigos de erro
Objetivo
- Filtrar com base no serviço do Amazon S3 e na presença do campo errorCode.
- Agregar todos os eventos correspondentes com base na estatística de contagem.
- Dividir os resultados com base em errorCode e errorMessage.
- Classifique pelo maior número de correspondências.
Consulta
#S3: Summarize Error Codes filter eventSource = 's3.amazonaws.com' and ispresent(errorCode) | stats count(*) as Hits by errorCode, errorMessage | sort Hits desc | limit 5
Resultados
| errorCode | errorMessage | Ocorrências |
|---|---|---|
| AccessDenied | Access Denied | 86 |
| NoSuchBucketPolicy | A política de bucket não existe | 80 |
| NoSuchPublicAccessBlockConfiguration | A configuração do bloco de acesso público não foi encontrada | 79 |
| ObjectLockConfigurationNotFoundError | A configuração de bloqueio de objeto não existe para este bucket | 3 |
| ServerSideEncryptionConfigurationNotFoundError | A configuração de criptografia do lado do servidor não foi encontrada | 3 |
Consulta 11: Resumir as chamadas de API AccessDenied/UnauthorizedOperation por serviço da AWS, API e usuário do AWS Identity and Access Management (IAM)
Objetivo
- Filtrar os eventos AccessDenied ou UnauthorizedOperation do CloudTrail.
- Agregar todos os eventos correspondentes com base na estatística de contagem.
- Dividir os resultados com base em errorCode, no Serviço da AWS, na API e usuário ou perfil do IAM.
- Usar o comando stats para renomear campos.
- Classificar em ordem decrescente.
Consulta
#Summarize AccessDenied/UnauthorizedOperation API Calls by AWS Service, API, IAM User filter (errorCode='AccessDenied' or errorCode='UnauthorizedOperation') | stats count(*) as NumberOfEvents by errorCode, eventSource as AWS_Service, eventName as API, userIdentity.type as IdentityType, userIdentity.invokedBy as InvokedBy | sort NumberOfEvents desc | limit 10
Resultados
| errorCode | AWS_Service | API | IdentityType | InvokedBy | NumberOfEvents |
|---|---|---|---|---|---|
| AccessDenied | s3.amazonaws.com | HeadBucket | AWSService | delivery.logs.amazonaws.com | 83 |
| AccessDenied | s3.amazonaws.com | GetObject | AssumedRole | 9 |
Consulta 12: Volume de chamadas por hora do AWS KMS
Objetivo
- Filtrar com base no serviço AWS KMS e na API Decrypt.
- Agregar todos os eventos correspondentes em compartimentos de uma hora.
- Visualize os resultados em um gráfico de linhas.
Consulta
#KMS: Hourly Decrypt Call Volume filter eventSource='kms.amazonaws.com' and eventName='Decrypt' | stats count(*) as Hits by bin(1h)
Resultados
| bin(1h) | Ocorrências |
|---|---|
| 2022-02-18 19:00:00.000 | 16 |
| 2022-02-18 18:00:00.000 | 25 |
| 2022-02-18 17:00:00.000 | 28 |
| 2022-02-18 16:00:00.000 | 14 |
| 2022-02-18 15:00:00.000 | 16 |
Informações relacionadas
Monitor AWS CloudTrail log data in Amazon CloudWatch (Vídeo)
- Idioma
- Português

Conteúdo relevante
- feita há 6 meses
AWS OFICIALAtualizada há 2 anos