執行和管理 CloudTrail 湖泊查詢 AWS CLI - AWS CloudTrail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行和管理 CloudTrail 湖泊查詢 AWS CLI

您可以使用 AWS CLI 來執行和管理 L CloudTrail ake 查詢。使用時 AWS CLI,請記住您的命令會在為您的 AWS 區域 設定檔設定中執行。如果您想在不同區域中執行命令,則可變更設定檔的預設區域,或搭配 --region 參數使用命令。

CloudTrail 湖泊查詢的可用指令

在 CloudTrail Lake 中執行和管理查詢的指令包括:

若要取得 CloudTrail Lake 事件資料倉庫的可用指令清單,請參閱〈〉事件資料倉庫的可用指令

如需 CloudTrail Lake 整合的可用命令清單,請參閱 CloudTrail 湖泊整合的可用命令

啟動查詢 AWS CLI

下列範例 AWS CLI start-query命令會針對在查詢陳述式中指定為 ID 的事件資料存放區執行查詢,並將查詢結果傳送至指定的 S3 儲存貯體。該--query-statement參數提供了一個SQL查詢,用單引號括起來。選用參數包括 --delivery-s3uri,用於將查詢結果傳送到指定的 S3 儲存貯體。若要取得有關可在 CloudTrail Lake 中使用的查詢語言的更多資訊,請參閱〈〉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 湖泊查詢結果的 Amazon S3 儲存貯體政策」。

取得查詢的中繼資料 AWS CLI

下列範例 AWS 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" } }

取得查詢結果 AWS CLI

下列範例 AWS CLI get-query-results 命令取得查詢的事件資料結果。您必須指定由 start-query 命令傳回的 --query-id。除非查詢仍在執行中,否則 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" }

列出事件資料存放區上的所有查詢 AWS CLI

下列範例 AWS CLI list-queries 命令會傳回過去七天內指定事件資料存放區上的查詢和查詢狀態清單。您必須為的ARN值指定ARN或 ID 尾碼--event-data-store。或者,若要縮短結果清單,您可以新增 --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" }

取消執行中的查詢 AWS CLI

下列範例 AWS 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)