Como crio uma tabela do Amazon Athena de forma automática para pesquisar logs do AWS CloudTrail?

4 minuto de leitura
0

Quero fazer pesquisas em um conjunto muito grande de logs do AWS CloudTrail. Para evitar erros não quero criar uma tabela do Amazon Athena manualmente.

Resolução

Use o console do CloudTrail para criar as tabelas do Athena automaticamente. Para mais informações, consulte Pesquisa de logs do AWS CloudTrail usando Amazon Athena.

Criar tabela do Athena

1.    Abra o console do CloudTrail e escolha Trilhas no painel de navegação. Preste atenção ao nome do bucket do S3.

2.    No painel de navegação, escolha Histórico de eventos e depois Criar tabela do Athena.

3.    Na janela Criar uma tabela no Amazon Athena, abra o menu Local de armazenamento e escolha o bucket do Amazon Simple Storage Service (Amazon S3) que contém os logs do CloudTrail.

Observação: você pode otimizar a pesquisa por períodos em uma região específica da AWS usando o Athena para realizar uma operação de projeção em partições dos logs do CloudTrail.

4.    Escolha Criar tabela.

5.    Escolha Acessar Athena.

Observação: você pode receber o erro “Sua conta não tem permissões suficientes para criar tabelas no Amazon Athena”. Caso receba, anexe a política gerenciada AmazonAthenaFullAccess conforme as instruções em Adicionar permissões de identidade do IAM (console).

Você pode usar os exemplos de consultas a seguir nos logs. Substitua your_athena_tablename pelo nome da tabela do Athena e access_key_id pela chave de acesso de 20 caracteres. A chave de acesso geralmente começa com os caracteres AKIA ou ASIA.

Executar consulta do Athena

1.    Abra o console do Athena, escolha Nova consulta. Depois, escolha a caixa de diálogo para apagar a consulta de exemplo.

2.    Insira a consulta e escolha Executar consulta.

Exibir todas as atividades de APIs da AWS de uma chave de acesso em específico

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

Identificar alterações nos grupos de segurança de uma instância do EC2

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;

Exibir todos os registros de login no console ocorridos nas últimas 24 horas

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';

Exibir todas as tentativas de login no console ocorridas nas últimas 24 horas

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';

Detectar aumentos nos custos do CloudTrail por mês

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 definidos em eventtime limitam-se ao período de um mês. Se quiser ver os resultados de um período maior, faça mais de uma consulta.

Identificar permissões ausentes do IAM

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 o resultado não exibir as chamadas de API que falharam, amplie o intervalo das consultas desta maneira:

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

Informações relacionadas

Consultar logs do AWS CloudTrail

Adicionar e remover permissões de identidade do IAM

Como posso obter dados para ajudar na solução de problemas de permissão de acesso negado ou erros não autorizados do IAM?

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos