本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Athena 已與 整合 AWS CloudTrail,此服務提供 Athena AWS 服務 中使用者、角色或 所採取動作的記錄。
CloudTrail 會擷取 Athena 的 API 呼叫當作事件。擷取的呼叫包括從 Athena 主控台進行的呼叫,以及針對 Athena API 操作的程式碼呼叫。如果您建立線索,就可以將 CloudTrail 事件持續交付到 Amazon S3 儲存貯體,包括 Athena 的事件。即使您未設定線索,依然可以透過 CloudTrail 主控台中的 Event history (事件歷史記錄) 檢視最新事件。
您可以利用 CloudTrail 所收集的資訊來判斷向 Athena 發出的請求,以及發出請求的 IP 地址、人員、時間和其他詳細資訊。
若要進一步了解 CloudTrail,請參閱《AWS CloudTrail 使用者指南》。
您可以使用 Athena 從 Athena 本身和其他來源查詢 CloudTrail 日誌檔案 AWS 服務。如需詳細資訊,請參閱 查詢 AWS CloudTrail 日誌、 Hive JSON SerDe和 AWS 大數據部落格文章 使用 CTAS 陳述式搭配 Amazon Athena 來降低成本並提升效能
關於 CloudTrail 中的 Athena 資訊
在您建立帳戶時,系統即會在 Amazon Web Services 帳戶中啟用 CloudTrail。當活動發生於 Athena 中時,系統便會將該活動記錄於 CloudTrail 事件中,並將其他 AWS 服務事件記錄至 Event history (事件歷史記錄) 中。您可以檢視、搜尋和下載 Amazon Web Services 帳戶中的最近事件。如需詳細資訊,請參閱使用 CloudTrail 事件歷史記錄檢視事件。
如需 Amazon Web Services 帳戶中正在進行事件的記錄 (包含 Athena 的事件),請建立線索。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。依預設,當您在主控台中建立追蹤時,該追蹤會套用至所有的 AWS 區域。追蹤會記錄 AWS 分割區中所有 區域的事件,並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。此外,您可以設定其他 AWS 服務 來進一步分析 CloudTrail 日誌中收集的事件資料,並對其採取行動。如需詳細資訊,請參閱下列內容:
所有 Athena 動作都由 CloudTrail 記錄,並以文件載明於 Amazon Athena API 參考中。例如,對 StartQueryExecution 和 GetQueryResults 動作的呼叫會在 CloudTrail 日誌檔案中產生相關項目。
每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:
-
請求是使用根還是 AWS Identity and Access Management (IAM) 使用者登入資料提出。
-
提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。
-
該請求是否由另一項 AWS 服務服務提出。
如需詳細資訊,請參閱 CloudTrail userIdentity 元素。
了解 Athena 日誌檔案項目
追蹤是一種組態,能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求,並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序,因此不會以任何特定順序出現。
注意
為了防止意外揭露敏感資訊,StartQueryExecution
和 CreateNamedQuery
日誌中的 queryString
項目的值都為 ***OMITTED***
。這是設計本身所致。若要存取實際的查詢字串,您可以使用 Athena GetQueryExecution API,並從 CloudTrail 日誌傳入 responseElements.queryExecutionId
的值。
以下範例會示範個別 CloudTrail 日誌項目:
StartQueryExecution (successful)
{
"eventVersion":"1.05",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLE_PRINCIPAL_ID",
"arn":"arn:aws:iam::123456789012:user/johndoe",
"accountId":"123456789012",
"accessKeyId":"EXAMPLE_KEY_ID",
"userName":"johndoe"
},
"eventTime":"2017-05-04T00:23:55Z",
"eventSource":"athena.amazonaws.com",
"eventName":"StartQueryExecution",
"awsRegion":"us-east-1",
"sourceIPAddress":"77.88.999.69",
"userAgent":"aws-internal/3",
"requestParameters":{
"clientRequestToken":"16bc6e70-f972-4260-b18a-db1b623cb35c",
"resultConfiguration":{
"outputLocation":"s3://amzn-s3-demo-bucket/test/"
},
"queryString":"***OMITTED***"
},
"responseElements":{
"queryExecutionId":"b621c254-74e0-48e3-9630-78ed857782f9"
},
"requestID":"f5039b01-305f-11e7-b146-c3fc56a7dc7a",
"eventID":"c97cf8c8-6112-467a-8777-53bb38f83fd5",
"eventType":"AwsApiCall",
"recipientAccountId":"123456789012"
}
StartQueryExecution (failed)
{
"eventVersion":"1.05",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLE_PRINCIPAL_ID",
"arn":"arn:aws:iam::123456789012:user/johndoe",
"accountId":"123456789012",
"accessKeyId":"EXAMPLE_KEY_ID",
"userName":"johndoe"
},
"eventTime":"2017-05-04T00:21:57Z",
"eventSource":"athena.amazonaws.com",
"eventName":"StartQueryExecution",
"awsRegion":"us-east-1",
"sourceIPAddress":"77.88.999.69",
"userAgent":"aws-internal/3",
"errorCode":"InvalidRequestException",
"errorMessage":"Invalid result configuration. Should specify either output location or result configuration",
"requestParameters":{
"clientRequestToken":"ca0e965f-d6d8-4277-8257-814a57f57446",
"queryString":"***OMITTED***"
},
"responseElements":null,
"requestID":"aefbc057-305f-11e7-9f39-bbc56d5d161e",
"eventID":"6e1fc69b-d076-477e-8dec-024ee51488c4",
"eventType":"AwsApiCall",
"recipientAccountId":"123456789012"
}
CreateNamedQuery
{
"eventVersion":"1.05",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLE_PRINCIPAL_ID",
"arn":"arn:aws:iam::123456789012:user/johndoe",
"accountId":"123456789012",
"accessKeyId":"EXAMPLE_KEY_ID",
"userName":"johndoe"
},
"eventTime":"2017-05-16T22:00:58Z",
"eventSource":"athena.amazonaws.com",
"eventName":"CreateNamedQuery",
"awsRegion":"us-west-2",
"sourceIPAddress":"77.88.999.69",
"userAgent":"aws-cli/1.11.85 Python/2.7.10 Darwin/16.6.0 botocore/1.5.48",
"requestParameters":{
"name":"johndoetest",
"queryString":"***OMITTED***",
"database":"default",
"clientRequestToken":"fc1ad880-69ee-4df0-bb0f-1770d9a539b1"
},
"responseElements":{
"namedQueryId":"cdd0fe29-4787-4263-9188-a9c8db29f2d6"
},
"requestID":"2487dd96-3a83-11e7-8f67-c9de5ac76512",
"eventID":"15e3d3b5-6c3b-4c7c-bc0b-36a8dd95227b",
"eventType":"AwsApiCall",
"recipientAccountId":"123456789012"
},