Como posso usar o AWS CloudTrail para rastrear chamadas de API para minhas instâncias do Amazon EC2?

4 minuto de leitura
0

Quero monitorar as chamadas de API que executam, interrompem, iniciam e encerram minhas instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Como posso pesquisar chamadas de API para minhas instâncias do Amazon EC2 usando o AWS CloudTrail?

Breve descrição

O AWS CloudTrail possibilita que você identifique e rastreie quatro tipos de chamadas de API (tipos de eventos) realizadas em sua conta da AWS:

Para analisar esses tipos de chamadas de API após serem realizadas em sua conta, é possível usar qualquer um destes métodos.

Observação: é possível visualizar o histórico de eventos de sua conta pelos últimos 90 dias.

Resolução

Rastrear chamadas de API usando o histórico de eventos do CloudTrail

1.    Abra o console do CloudTrail.

2.    Escolha Event history(Histórico de eventos).

3.    Em Filtro, selecione Nome do evento na lista suspensa.

4.    Em Inserir nome do evento, insira o tipo de evento que deseja pesquisar. Em seguida, selecione o tipo de evento.

5.    Em Intervalo de tempo, insira o intervalo de tempo desejado do tipo de evento que deseja pesquisar.

6.    Selecione Aplicar.

Obtenha mais informações consultando Visualizar eventos com o histórico de eventos do CloudTrail e Visualizar eventos do Cloudtrail no console do CloudTrail.

Rastrear chamadas de API usando consultas do Amazon Athena

Siga as instruções em Como posso criar tabelas automaticamente no Amazon Athena para pesquisar nos logs do AWS CloudTrail?

Veja exemplos de consultas da chamada de API RunInstances. É possível usar consultas similares para qualquer um dos tipos de eventos compatíveis.

Importante: Substitua cloudtrail-logs pelo nome da tabela do Athena antes de executar qualquer um destes exemplos de consulta.

Exemplo de consultas para retornar todas as informações de eventos disponíveis para a chamada da API RunInstances

SELECT *
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

Exemplo de consultas para retornar informações de eventos filtrados para a chamada da API RunInstances

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

Exemplo de consultas para retornar informações de eventos para as APIs que terminam com a string "Instância" de um ponto no tempo até a data atual

**Importante:**Substitua '2021-07-01T00:00:01Z' pelo momento do qual você deseja retornar as informações do evento.

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE (eventName LIKE '%Instances') AND eventTime > '2021-07-01T00:00:01Z'

Rastrear chamadas de API usando Amazon CloudWatch Logs arquivados no Amazon Simple Storage Service (Amazon S3)

Importante: para registrar eventos em um bucket do Amazon S3, primeiro é necessário criar uma trilha do CloudWatch.

1.    Acesse seus arquivos de log do CloudTrail seguindo as instruções em Encontrar seus arquivos de log do CloudTrail.

2.    Faça download dos arquivos de log seguindo as instruções em Fazer download de seus arquivos de log do CloudTrail.

3.    Pesquise nos logs dos tipos de eventos que deseja monitorar usando jq ou outro processador de linha de comando JSON.

Exemplo de procedimento de jq para pesquisar os logs do CloudWatch baixados do Amazon S3 para tipos específicos de eventos

1.    Abra um terminal Bash. Em seguida, crie este diretório para armazenar os arquivos de log:

$ mkdir cloudtrail-logs

4.    Navegue até o novo diretório. Em seguida, faça download dos logs do CloudTrail executando este comando:

Importante: Substitua o exemplo my_cloudtrail_bucket pelo seu bucket do Amazon S3.

$ cd cloudtrail-logs

$ aws s3 cp s3://my_cloudtrail_bucket/AWSLogs/012345678901/CloudTrail/eu-west-1/2019/08/07 ./ --recursive

5.    Descompacte os arquivos de log executando este comando gzip:

Importante: Substitua***** pelo nome do arquivo que deseja descompactar.

$ gzip -d *

6.    Execute uma consulta de jq dos tipos de eventos que deseja pesquisar.

Exemplo de consulta de jq para retornar todas as informações de eventos disponíveis da chamada de API RunInstances

cat * | jq '.Records[] | select(.eventName=="RunInstances")'

Exemplo de consulta de jq para retornar todas as informações de eventos disponíveis das chamadas de API StopInstances e TerminateInstances

cat * | jq '.Records[] | select(.eventName=="StopInstances" or .eventName=="TerminateInstances" )'

Informações relacionadas

Como posso usar o CloudTrail para analisar quais chamadas e ações de API ocorreram em minha conta da AWS?

Criar métricas de eventos de logs usando filtros

O console do AWS Config agora exibe eventos de API associados a alterações de configuração

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos