使用运行和管理 CloudTrail Lake 查询 Amazon CLI - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用运行和管理 CloudTrail Lake 查询 Amazon CLI

您可以使用 Amazon CLI 来运行和管理您的 CloudTrail Lake 查询。使用时 Amazon CLI,请记住您的命令在 Amazon Web Services 区域 配置文件中运行。如果您想要在不同的区域中运行命令,可以为配置文件更改默认区域,或者与命令一起使用 --region 参数。

可用于 L CloudTrail ake 查询的命令

用于在 L CloudTrail ake 中运行和管理查询的命令包括:

有关 La CloudTrail ke 事件数据存储的可用命令列表,请参阅事件数据存储的可用命令

有关 La CloudTrail ke 集成的可用命令列表,请参阅L CloudTrail ake 集成的可用命令

使用开始查询 Amazon CLI

以下示例 Amazon CLI start-query命令对在查询语句中指定为 ID 的事件数据存储运行查询,并将查询结果传送到指定的 S3 存储桶。--query-statement 参数提供 SQL 查询,用单引号括起来。可选参数包括 --delivery-s3uri,用于将查询结果传送到指定的 S3 存储桶。有关您可以在 La CloudTrail ke 中使用的查询语言的更多信息,请参阅CloudTrail 湖泊 SQL 限制

aws cloudtrail start-query --query-statement 'SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10' --delivery-s3uri "s3://aws-cloudtrail-lake-query-results-123456789012-us-east-1"

响应是 QueryId 字符串。要获取查询的状态,请使用 start-query 返回的值 QueryId 运行 describe-query。如果查询成功,您可以运行 get-query-results 以获取结果。

输出

{ "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE" }
注意

运行时间超过一小时的查询可能会超时。您仍可获得在查询超时之前处理的部分结果。

如果您使用可选--delivery-s3uri参数将查询结果传送到 S3 存储桶,则存储桶策略必须授予将查询结果传送到该存储桶的 CloudTrail权限。有关手动编辑存储桶策略的信息,请参阅适用于 CloudTrail Lake 查询结果的 Amazon S3 存储桶策略

使用获取有关查询的元数据 Amazon CLI

以下示例 Amazon CLI describe-query命令获取有关查询的元数据,包括以毫秒为单位的查询运行时间、扫描和匹配的事件数、扫描的总字节数以及查询状态。BytesScanned 值与账户支付查询费用的总字节数匹配,除非查询仍在运行。如果查询结果已传送到 S3 存储桶,则响应还会提供 S3 URI 和交付状态。

您可以指定 --query-id--query-alias 参数的值。指定 --query-alias 参数会返回有关该别名的上次查询运行的信息。

aws cloudtrail describe-query --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE

以下为响应示例。

{ "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10", "QueryStatus": "RUNNING", "QueryStatistics": { "EventsMatched": 10, "EventsScanned": 1000, "BytesScanned": 35059, "ExecutionTimeInMillis": 3821, "CreationTime": "1598911142" } }

使用获取查询结果 Amazon CLI

以下示例 Amazon CLI get-query-results 命令获取查询的事件数据结果。您必须指定 --query-id 返回的 start-query 命令。BytesScanned 值与账户支付查询费用的总字节数匹配,除非查询仍在运行。可选参数包括 --max-query-results,以指定希望在单个页面上通过命令返回的最大结果数。如果结果数超过指定的 --max-query-results 值,请再次运行命令,添加返回 NextToken 值来获取下一页的结果。

aws cloudtrail get-query-results --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE

输出

{ "QueryStatus": "RUNNING", "QueryStatistics": { "ResultsCount": 244, "TotalResultsCount": 1582, "BytesScanned":27044 }, "QueryResults": [ { "key": "eventName", "value": "StartQuery", } ], "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10", "NextToken": "20add42078135EXAMPLE" }

使用列出事件数据存储上的所有查询 Amazon CLI

以下示例 Amazon CLI list-queries 命令返回过去七天内指定事件数据存储中的查询和查询状态的列表。您必须指定 ARN 或 --event-data-store ARN 值的 ID 后缀。或者,要缩短结果列表,您可以通过添加 --start-time--end-time 参数和 --query-status 值来指定时间范围、格式化为时间戳。QueryStatus 的有效值包括 QUEUEDRUNNINGFINISHEDFAILEDCANCELLED

list-queries 还有可选的分页参数。使用 --max-results 以指定希望在单个页面上通过命令返回的最大结果数。如果结果数超过指定的 --max-results 值,请再次运行命令,添加返回 NextToken 值来获取下一页的结果。

aws cloudtrail list-queries --event-data-store EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE --query-status CANCELLED --start-time 1598384589 --end-time 1598384602 --max-results 10

输出

{ "Queries": [ { "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", "QueryStatus": "CANCELLED", "CreationTime": 1598911142 }, { "QueryId": "EXAMPLE2-4e89-9230-2127-5dr3aEXAMPLE", "QueryStatus": "CANCELLED", "CreationTime": 1598296624 } ], "NextToken": "20add42078135EXAMPLE" }

使用取消正在运行的查询 Amazon CLI

以下示例 Amazon CLI cancel-query命令取消状态为的查询。RUNNING您必须为 --query-id 指定一个值。当您运行 cancel-query 时,即使尚未完成 cancel-query 操作,查询状态也可能会显示为 CANCELLED

注意

取消的查询可能会产生费用。您的账户仍需为取消查询之前扫描的数据量支付费用。

以下是 CLI 示例。

aws cloudtrail cancel-query --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE

输出

QueryId -> (string) QueryStatus -> (string)