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 a tabela do Athena a partir dos seus logs do CloudTrail
Conclua as etapas a seguir:
- Abra o console do CloudTrail.
- 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.
- No painel de navegação, escolha Histórico de eventos e depois Criar tabela do Athena.
- 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, é possível usar a projeção de partição para logs do CloudTrail no Athena.
- Escolha Criar tabela.
- Escolha Acessar Athena.
Observação: você pode receber o erro “Your account does not have sufficient permissions to create tables in Amazon Athena”. Se você receber 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:
- Abra o console do Athena.
- Escolha Nova consulta e, em seguida, limpe a consulta de amostra.
- Insira a consulta e escolha Executar consulta.
Usar exemplos de consultas
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 todas as atividades 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 todos 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 todas 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 chamada de API que falhou, aumente o intervalo da consulta:
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 a solucionar problemas de permissão de acesso negado ou erros não autorizados do IAM?