Ir para o conteúdo

Como crio uma tabelas do Athena de forma automática para pesquisar logs do CloudTrail?

4 minuto de leitura
0

Quero pesquisar em uma grande coleção de logs do AWS CloudTrail e criar automaticamente tabelas do Amazon Athena.

Resolução

Criar a tabela do Athena a partir dos seus logs do CloudTrail

Conclua as etapas a seguir:

  1. Abra o console do CloudTrail.
  2. No painel de navegação, escolha Trilhas e anote o nome do bucket do Amazon Simple Storage Service (Amazon S3) que contém os logs do CloudTrail.
  3. No painel de navegação, escolha Histórico de eventos e depois Criar tabela do Athena.
  4. Na janela Criar uma tabela no Amazon Athena, selecione o bucket do S3 no menu Local de armazenamento.
    Observação: para melhorar sua pesquisa em um intervalo de tempo específico, use a projeção de partição para logs do CloudTrail no Athena.
  5. Escolha Criar tabela.
    Observação: a tabela faz referência aos logs do CloudTrail no bucket do S3 especificado, incluindo os novos logs que o CloudTrail entrega ao bucket.

Se você não tiver permissões para criar uma tabela, poderá receber a mensagem de erro “Your account does not have sufficient permissions to create tables in Amazon Athena”.

Para resolver esse erro, anexe a política gerenciada AmazonAthenaFullAccess ao seu perfil do AWS Identity and Access Management (AWS IAM).

Executar consultas do Athena na sua tabela de logs do CloudTrail

Conclua as etapas a seguir:

  1. Abra o console do Athena.
  2. Para limpar a consulta de amostra, escolha Limpar.
  3. Insira a consulta e escolha Executar consulta.

Usar exemplos de consultas

Se for a primeira vez que você usa o Athena, defina um bucket do S3 como uma localização para armazenar os resultados das consultas antes de executar sua primeira consulta.

Para definir a localização de um bucket do S3, conclua as seguintes etapas:

  1. Abra o console do Athena.
  2. No painel de navegação, selecione Editor de consultas.
  3. Escolha a guia Configurações de consultas.
  4. Escolha Gerenciar.
  5. No campo Localização do resultado da consulta - opcional, insira um bucket do S3.
  6. Escolha Salvar.

Veja a seguir exemplos de consultas que é possível executar.

Observação: nas consultas a seguir, substitua your_athena_tablename pelo nome da tabela do Athena e access_key_id pela chave de acesso de 20 caracteres. Sua chave de acesso geralmente começa com os caracteres AKIA ou ASIA.

Para exibir as atividades de operação registradas da API da AWS para uma chave de acesso específica, execute a seguinte consulta:

SELECT eventTime, eventName, userIdentity.principalId    FROM your_athena_tablename   
 WHERE userIdentity.accessKeyId like 'access_key_id'

Para identificar alterações no grupo de segurança em sua instância do Amazon Elastic Compute Cloud (Amazon EC2), execute a seguinte consulta:

SELECT eventname, useridentity.username, sourceIPAddress, eventtime, requestparameters    FROM your_athena_tablename  
 WHERE (requestparameters LIKE '%sg-5887f224%' OR requestparameters LIKE '%sg-e214609e%' OR requestparameters LIKE '%eni-6c5ca5a8%')  
       AND eventtime > '2017-02-15T00:00:00Z'  
 ORDER BY eventtime ASC;

Para exibir os logins do console nas últimas 24 horas, execute a seguinte consulta:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata    FROM your_athena_tablename   
 WHERE eventname = 'ConsoleLogin'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Para exibir as tentativas fracassadas de login no console nas últimas 24 horas, execute a seguinte consulta:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata    FROM your_athena_tablename  
 WHERE eventname = 'ConsoleLogin'  
       AND useridentity.username = 'HIDDEN_DUE_TO_SECURITY_REASONS'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Para identificar os aumentos de custo mensais do CloudTrail, execute a seguinte consulta:

SELECT eventName,count(eventName) AS NumberOfChanges,eventSource    FROM your_athena_tablename   
 WHERE eventtime >= '2019-01-01T00:00:00Z' AND eventtime < '2019-01-31T00:00:00Z'  
 GROUP BY eventName, eventSource  
 ORDER BY NumberOfChanges DESC

Observação: Os valores de eventtime definidos são para um único mês. Se quiser ver os resultados de um período maior, faça mais de uma consulta.

Para identificar as permissões do IAM ausentes, execute a seguinte consulta:

SELECT COUNT(*) AS TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage    FROM your_athena_tablename  
 WHERE (errorcode LIKE '%Denied%' OR errorcode LIKE '%Unauthorized%')  
   AND eventtime >= '2019-10-28T00:00:00Z'  
   AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname

Se os resultados não exibirem a operação da API que falhou, execute a seguinte consulta para aumentar o intervalo de consultas:

SELECT COUNT(*) as TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage    FROM your_athena_tablename  
 WHERE errorcode <> ''  
       AND eventtime >= '2019-10-28T00:00:00Z'  
       AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname
AWS OFICIALAtualizada há 8 meses