選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用手動分割在 Athena 中建立 CloudTrail 日誌的資料表

焦點模式
使用手動分割在 Athena 中建立 CloudTrail 日誌的資料表 - Amazon Athena

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

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

您可以在 Athena 主控台中手動建立 CloudTrail 日誌檔案的資料表,然後在 Athena 中執行查詢。

使用 Athena 主控台為 CloudTrail追蹤建立 Athena 資料表
  1. 將下列DDL陳述式複製並貼到 Athena 主控台查詢編輯器中,然後根據您的需求進行修改。請注意,由於 CloudTrail日誌檔案不是公開API呼叫的排序堆疊追蹤,因此日誌檔案中的欄位不會以任何特定順序顯示。

    CREATE EXTERNAL TABLE cloudtrail_logs ( eventversion STRING, useridentity STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, invokedby:STRING, accesskeyid:STRING, username:STRING, onbehalfof: STRUCT< userid: STRING, identitystorearn: STRING>, sessioncontext:STRUCT< attributes:STRUCT< mfaauthenticated:STRING, creationdate:STRING>, sessionissuer:STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, username:STRING>, ec2roledelivery:string, webidfederationdata: STRUCT< federatedprovider: STRING, attributes: map<string,string>> > >, eventtime STRING, eventsource STRING, eventname STRING, awsregion STRING, sourceipaddress STRING, useragent STRING, errorcode STRING, errormessage STRING, requestparameters STRING, responseelements STRING, additionaleventdata STRING, requestid STRING, eventid STRING, resources ARRAY<STRUCT< arn:STRING, accountid:STRING, type:STRING>>, eventtype STRING, apiversion STRING, readonly STRING, recipientaccountid STRING, serviceeventdetails STRING, sharedeventid STRING, vpcendpointid STRING, vpcendpointaccountid STRING, eventcategory STRING, addendum STRUCT< reason:STRING, updatedfields:STRING, originalrequestid:STRING, originaleventid:STRING>, sessioncredentialfromconsole STRING, edgedevicedetails STRING, tlsdetails STRUCT< tlsversion:STRING, ciphersuite:STRING, clientprovidedhostheader:STRING> ) PARTITIONED BY (region string, year string, month string, day string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/Account_ID/';
    注意

    建議您使用範例中org.apache.hive.hcatalog.data.JsonSerDe顯示的 。雖然 com.amazon.emr.hive.serde.CloudTrailSerde存在,但目前它不會處理某些較新的 CloudTrail 欄位。

  2. (選用) 移除資料表不再需要的任何欄位。如果您只需要讀取特定的資料欄集,則您的資料表定義可排除其他資料欄。

  3. 修改s3://amzn-s3-demo-bucket/AWSLogs/Account_ID/以指向包含您要查詢之日誌資料的 Amazon S3 儲存貯體。範例中使用特定帳戶日誌的 LOCATION 值,但您可以使用適合您應用程式的具體程度。例如:

    • 若要分析多個帳戶的資料,您可以復原 LOCATION 指標,使用 LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/' 來指定所有 AWSLogs

    • 若要分析特定日期、帳戶和區域的資料,請使用 LOCATION 's3://amzn-s3-demo-bucket/123456789012/CloudTrail/us-east-1/2016/03/14/'.

    • 若要分析網路活動資料而非管理事件,請將子LOCATION/CloudTrail/中的 取代為 /CloudTrail-NetworkActivity/

    當您使用 Athena 進行查詢時,使用物件階層的最高層級可給您最大的靈活性。

  4. 確認列出的欄位正確。如需 CloudTrail 記錄中欄位完整清單的詳細資訊,請參閱CloudTrail 記錄內容

    步驟 1 中的範例CREATE TABLE陳述式使用 蜂巢 JSON SerDe。在範例中,欄位 requestparametersresponseelementsadditionaleventdata會列為查詢STRING中的類型,但 中使用的STRUCT資料類型是 JSON。因此,若要取得這些欄位的資料,請使用 JSON_EXTRACT 函數。如需詳細資訊,請參閱從字串擷取JSON資料。為了改善效能,範例會依 AWS 區域、年份、月份和日期分割資料。

  5. 在 Athena 主控台執行 CREATE TABLE 陳述式。

  6. 使用 ALTER TABLE ADD PARTITION 命令載入分割區,以便進行查詢,如下列範例所示。

    ALTER TABLE table_name ADD PARTITION (region='us-east-1', year='2019', month='02', day='01') LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/Account_ID/CloudTrail/us-east-1/2019/02/01/'
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。