本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
記錄 Amazon Athena API 電話 AWS CloudTrail
Athena 集成 AWS CloudTrail,提供使用者、角色或使用者所採取之動作記錄的服務 AWS 服務 在 Athena。
CloudTrail 捕獲所有對 Athena 的API呼叫作為事件。所擷取的呼叫包括來自 Athena 主控台的呼叫,以及對 Athena API 作業的程式碼呼叫。如果您建立追蹤,您可以啟用持續交付 CloudTrail 事件到 Amazon S3 儲存貯體,包括 Athena 的事件。如果您未設定追蹤,您仍然可以在 [事件歷程記錄] 中檢視 CloudTrail 主控台中最近的事件。
使用收集的資訊 CloudTrail,您可以判斷向 Athena 提出的要求、提出要求的 IP 位址、提出要求的人員、提出要求的時間,以及其他詳細資訊。
若要進一步了解 CloudTrail,請參閱 AWS CloudTrail 使用者指南。
您可以使用 Athena 查詢 Athena 本身及其他地方的 CloudTrail 記錄檔 AWS 服務。 若要取得更多資訊查詢 AWS CloudTrail 日誌,請參閱蜂巢 JSON SerDe、和 AWS 大數據部落格文章與 Amazon Athena 搭配使用CTAS陳述式來降低成本並改善效能
關於 Athena 資訊 CloudTrail
CloudTrail 當您創建帳戶時,您的 Amazon Web Services 帳戶已啟用。當活動在 Athena 發生時,該活動會與其他活動一起記錄在 CloudTrail 事件中 AWS 事件歷史記錄中的服務事件。您可以檢視、搜尋和下載 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 GetQueryExecutionAPI並responseElements.queryExecutionId
從 CloudTrail 記錄傳入的值。
下列範例會示範下列項目的 CloudTrail 記錄項目:
StartQueryExecution(成功)
{
"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 (失敗)
{
"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"
},