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?