根据英语提示创建 CloudTrail Lake 查询 - AWS CloudTrail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

根据英语提示创建 CloudTrail Lake 查询

注意

La CloudTrail ke 的查询生成器在美国东部(弗吉尼亚北部)处于预览版,可能会发生变化。

您可以使用 CloudTrail Lake 查询生成器根据您提供的英语提示生成查询。查询生成器使用生成式人工智能(生成式 AI)根据您的提示生成 ready-to-use SQL查询,然后您可以选择在 Lake 的查询编辑器中运行该查询,也可以进行进一步微调。您无需对 CloudTrail 事件字段有广泛的SQL了解即可使用查询生成器。

提示可以是关于 La CloudTrail ke 事件数据存储中事件数据的问题或陈述。例如,您可以输入诸如 “过去一个月我最常犯的错误是什么?” 之类的提示 和 “给我一份使用过的用户名单SNS。”

提示最少可以包含 3 个字符,最多 500 个字符。

生成查询不收取任何费用;但是,当您运行查询时,会根据扫描的优化和压缩数据量收取费用。为了帮助控制成本,我们建议您通过在查询中添加开始和结束eventTime时间戳来限制查询。

注意

您可以通过选择生成的查询下方显示的竖起大拇指或竖起大拇指按钮来提供有关生成的查询的反馈。当您提供反馈时, CloudTrail 保存您的提示和生成的查询。

请勿在提示中包含任何个人身份、机密或敏感信息。

此功能使用生成式 AI 大型语言模型 (LLMs);我们建议仔细检查LLM响应。

在 CloudTrail 控制台上使用查询生成器
  1. 登录 AWS Management Console 并打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/

  2. 在导航窗格中,在 Lake 下,选择查询

  3. 查询页面上,选择编辑器选项卡。

  4. 选择要为其创建查询的事件数据存储。

  5. 查询生成器区域中,用纯英语输入提示。有关示例,请参阅示例提示

  6. 选择 “生成查询”。查询生成器将尝试根据您的提示生成查询。如果成功,查询生成器将在编辑器中提供SQL查询。如果提示失败,请改写您的提示并重试。

  7. (可选)选择 “运行” 以运行查询。

    注意

    运行查询时,会根据扫描的优化和压缩数据量收取费用。为了帮助控制成本,我们建议您通过在查询中添加开始和结束eventTime时间戳来限制查询。

  8. (可选)您可以提供有关生成的查询的反馈。要提供反馈,请选择出现在提示下方的竖起大拇指或竖起大拇指按钮。当您提供反馈时, CloudTrail 保存您的提示和生成的查询。

所需的权限

要使用此功能,必须使用AWSCloudTrail_FullAccessAdministratorAccess策略。

您也可以将 cloudtrail:GenerateQuery 操作包含在新的或现有的客户托管策略或内联策略中。

区域支持

此功能目前仅在美国东部(弗吉尼亚北部)区域可用。

限制

以下是查询生成器的局限性:

  • 查询生成器只能接受英文提示。

  • 查询生成器只能为收集事件(管理事件、数据 CloudTrail 事件)的事件数据存储生成查询。

  • 查询生成器无法为与 La CloudTrail ke 事件数据无关的提示生成查询。

示例提示

本节提供示例提示以及根据提示生成的SQL查询。

如果您选择运行本节中的示例查询,请替换 eds-id 使用您要查询的事件数据存储的 ID,并将时间戳替换为适合您的用例的时间戳。时间戳采用以下格式:YYYY-MM-DD HH:MM:SS.

提示:过去一个月我最常犯的错误是什么?

SQL查询:

SELECT errorMessage, COUNT(*) as eventCount FROM eds-id WHERE 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;

提示:给我一份使用过的用户名单SNS。

SQL查询:

SELECT DISTINCT userIdentity.arn AS user FROM eds-id WHERE eventSource = 'sns.amazonaws.com'

提示:在过去的一个月里,我每天的读写活动API计数是多少?

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 FROM eds-id WHERE eventTime >= timestamp '2024-05-04 00:00:00' AND eventTime <= timestamp '2024-06-04 23:59:59' GROUP BY 1 ORDER BY 1 ASC;

提示:显示过去三周内出现拒绝访问错误的所有事件。

SQL查询:

SELECT * FROM eds-id WHERE 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'