Criar consultas do CloudTrail Lake com prompts em linguagem natural
Você pode usar o gerador de consultas do CloudTrail Lake para produzir uma consulta com um prompt em inglês que você fornece. O gerador de consultas usa inteligência artificial generativa (IA generativa) para produzir uma consulta SQL pronta para uso a partir do prompt, que você pode então optar por executar no editor de consultas do Lake ou ajustar ainda mais. Você não precisa ter amplo conhecimento sobre os campos de eventos do SQL ou do CloudTrail para usar o gerador de consultas.
O prompt pode ser uma pergunta ou uma instrução sobre os dados do evento em seu armazenamento de dados de eventos do CloudTrail Lake. Por exemplo, você pode inserir prompts como "What are my top errors in the past month?" e “Give me a list of users that used SNS.”
Um prompt pode ter no mínimo 3 caracteres e no máximo 500 caracteres de extensão.
Não há cobranças por gerar consultas. No entanto, ao executar consultas, você receberá cobranças com base na quantidade de dados examinados que foram otimizados e compactados. Para ajudar a controlar os custos, recomendamos que você restrinja as consultas adicionando carimbos de data/hora eventTime de início e término nas consultas.
nota
Você pode fornecer feedback sobre uma consulta gerada clicando no botão de polegar para cima ou para baixo exibido abaixo da consulta gerada. Quando você fornece feedback, o CloudTrail salva seu prompt e a consulta gerada.
Não inclua informações pessoais, confidenciais ou sigilosas em seus prompts.
Esse recurso usa grandes modelos de linguagem (LLM) de IA generativa. Recomendamos verificar novamente a resposta do LLM.
Você pode acessar o gerador de consultas usando o console e a AWS CLIdo CloudTrail.
Permissões obrigatórias
Ambas as políticas gerenciadas AWSCloudTrail_FullAccess e AdministratorAccess fornecem as permissões necessárias para usar esse atributo.
Você também pode incluir a ação cloudtrail:GenerateQuery em uma política nova ou atual gerenciada pelo cliente ou em uma política em linha.
Suporte de região
Esse atributo é compatível com as seguintes regiões Regiões da AWS:
-
Região da Ásia-Pacífico (Mumbai) (ap-south-1)
-
Região da Ásia-Pacífico (Sydney) (ap-southeast-2)
-
Região da Ásia-Pacífico (Tóquio) (ap-northeast-1)
-
Região do Canadá (Central) (ca-central-1)
-
Região da Europa (Londres) (eu-west-2)
-
Região Leste dos EUA (Norte da Virgínia) (us-east-1)
-
Região Oeste dos EUA (Oregon) (us-west-2)
Limitações
A seguir estão as limitações do gerador de consultas:
-
O gerador de consultas só aceita prompts em inglês.
-
O gerador de consultas só pode gerar consultas para datastores de eventos que coletam eventos do CloudTrail (eventos de gerenciamento, eventos de dados, eventos de atividade de rede).
-
O gerador de consultas não gera consultas para prompts que não pertençam aos dados de eventos do CloudTrail Lake.
Exemplos de prompts
Esta seção fornece exemplos de prompts e as consultas SQL resultantes geradas a partir desses prompts.
Se você optar por executar as consultas de exemplo nesta seção, substitua eds-id pelo ID do armazenamento de dados de eventos que você deseja consultar e substitua os carimbos de data/hora pelos carimbos de data/hora apropriados para seu caso de uso. Os carimbos de data e hora têm o seguinte formato: YYYY-MM-DD HH:MM:SS.
Prompt: What are my top errors in the past month?
Consulta SQL:
SELECT errorMessage, COUNT(*) as eventCount FROMeds-idWHERE errorMessage IS NOT NULL AND eventTime >= timestamp '2024-05-01 00:00:00' AND eventTime <= timestamp '2024-05-31 23:59:59' GROUP BY 1 ORDER BY 2 DESC LIMIT 2;
Prompt: Give me a list of users that used Amazon SNS.
Consulta SQL:
SELECT DISTINCT userIdentity.arn AS user FROMeds-idWHERE eventSource = 'sns.amazonaws.com'
Prompt: What are my API counts each day for read and write events in the past month?
Consulta SQL:
SELECT date(eventTime) AS event_date, SUM( CASE WHEN readonly = true THEN 1 ELSE 0 END ) AS read_events, SUM( CASE WHEN readonly = false THEN 1 ELSE 0 END ) AS write_events FROMeds-idWHERE eventTime >= timestamp '2024-05-04 00:00:00' AND eventTime <= timestamp '2024-06-04 23:59:59' GROUP BY 1 ORDER BY 1 ASC;
Prompt: Show any events with access denied errors for the past three weeks.
Consulta SQL:
SELECT * FROMeds-idWHERE WHERE (errorCode = 'AccessDenied' OR errorMessage = 'Access Denied') AND eventTime >= timestamp '2024-05-16 01:00:00' AND eventTime <= timestamp '2024-06-06 01:00:00'
Prompt: Query the number of calls each operator performed on the date 2024-05-01. The operator is a principal tag.
Consulta SQL:
SELECT element_at( eventContext.tagContext.principalTags, 'operator' ) AS operator, COUNT(*) AS eventCount FROMeds-idWHERE eventtime >= '2024-05-01 00:00:00' AND eventtime < '2024-05-01 23:59:59' GROUP BY 1 ORDER BY 2 DESC;
Prompt: Give me all event IDs that touched resources within the CloudFormation stack with name myStack on the date 2024-05-01.
Consulta SQL:
SELECT eventID FROMeds-idWHERE any_match( eventContext.tagcontext.resourcetags, rt->element_at(rt.tags, 'aws:cloudformation:stack-name') = 'myStack' ) AND eventtime >= '2024-05-01 00:00:00' AND eventtime < '2024-05-01 23:59:59'
Prompt: Count the number of events grouped by resource tag 'solution' values, listing them in descending order of count.
Consulta SQL:
SELECT element_at(rt.tags, 'solution'), count(*) as event_count FROMeds-id, unnest(eventContext.tagContext.resourceTags) as rt WHERE eventtime < '2025-05-14 19:00:00' GROUP BY 1 ORDER BY 2 DESC;
Prompt: Find all Amazon S3 data events where resource tag Environment has value prod.
Consulta SQL:
SELECT * FROMeds-idWHERE eventCategory = 'Data' AND eventSource = 's3.amazonaws.com' AND eventtime >= '2025-05-14 00:00:00' AND eventtime < '2025-05-14 20:00:00' AND any_match( eventContext.tagContext.resourceTags, rt->element_at(rt.tags, 'Environment') = 'prod' )