Amazon S3 伺服器存取日誌格式 - Amazon Simple Storage Service

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

Amazon S3 伺服器存取日誌格式

伺服器存取記錄,針對向 Amazon S3 儲存貯體提出的請求,提供詳細的記錄。您可以將伺服器存取日誌用於下列目的:

  • 執行安全與存取稽核

  • 了解您的客戶群

  • 了解您的 Amazon S3 計費

本節說明 Amazon S3 伺服器存取日誌檔案的格式和其他詳細資訊。

伺服器存取記錄檔,是由一連串換行分隔日誌記錄所組成。每筆日誌記錄都代表一項要求,且由多個空格分隔欄位所組成。

以下為五筆日誌記錄所組成的日誌範例。

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /DOC-EXAMPLE-BUCKET1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /DOC-EXAMPLE-BUCKET1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /DOC-EXAMPLE-BUCKET1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /DOC-EXAMPLE-BUCKET1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /DOC-EXAMPLE-BUCKET1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes
注意

任何欄位都可以設成 -,指出資料為未知或不可用,或欄位不適用於此要求。

日誌記錄欄位

下列清單說明日誌記錄欄位。

儲存貯體擁有者

來源儲存貯體擁有者的正式使用者 ID。規範使用者 ID 是 ID 的另一種形式。 AWS 帳戶 如需正式使用者 ID 的詳細資訊,請參閱《AWS 一般參考》中的 AWS 帳戶 識別符。如需如何尋找帳戶正式使用者 ID 的資訊,請參閱尋找您的 AWS 帳戶的正式使用者 ID

項目範例

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
儲存貯體

要求處理對象的儲存貯體名稱。如果系統收到格式錯誤的要求且無法判斷儲存貯體,則儲存貯體要求就不會出現在任何伺服器存取記錄中。

項目範例

DOC-EXAMPLE-BUCKET1
時間

收到請求的時間;這些日期和時間都使用國際標準時間 (UTC)。使用 strftime() 術語的格式如下:[%d/%b/%Y:%H:%M:%S %z]

項目範例

[06/Feb/2019:00:00:38 +0000]
遠端 IP

申請者清楚的 IP 地址。中間代理伺服器與防火牆可能會模糊提出請求之電腦的實際 IP 地址。

項目範例

192.0.2.3
要求者

要求者的正式使用者 ID,或未經驗證要求者的 -。如果請求者是 IAM 使用者,此欄位會傳回請求者的 IAM 使用者名稱以及 IAM 使用者所屬的名稱。 AWS 帳戶根使用者 此識別符與用於存取控制目的的識別符相同。

項目範例

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

如果請求者使用假定角色,此欄位會傳回假設的 IAM 角色。

項目範例

arn:aws:sts::123456789012:assumed-role/roleName/test-role
要求 ID

是由 Amazon S3 產生的字串,是可唯一識別每項請求。

項目範例

3E57427F33A59F07
操作

這裡列出的操作會宣告為 生命週期與記錄SOAP.operationREST.HTTP_method.resource_typeWEBSITE.HTTP_method.resource_typeBATCH.DELETE.OBJECTS3.action.resource_type

項目範例

REST.PUT.OBJECT
金錀

請求的索引鍵 (物件名稱) 部分。

項目範例

/photos/2019/08/puppy.jpg
Request-URI

HTTP 請求訊息的 Request-URI 部分。

項目範例

"GET /DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
HTTP 狀態

回應的數字 HTTP 狀態碼。

項目範例

200
錯誤代碼

Amazon S3 錯誤代碼- (如果沒有發生錯誤)。

項目範例

NoSuchBucket
已傳送的位元組

已傳送的回應位元組數目 (排除 HTTP 通訊協定額外負荷) 或 - (若為零)。

項目範例

2662992
物件大小

所提及之物件的總大小。

項目範例

3462992
總時間

從伺服器角度計算的請求所經過的毫秒數。此值是從收到您要求的時間開始,計算到回應傳送出最後一組位元組的時間。由於網路延遲,從用戶端角度進行的測量可能較長。

項目範例

70
周轉時間

Amazon S3 處理您請求所花費的毫秒數。此值是從收到您要求的最後位元組的時間開始,計算到回應傳送出第一組位元組的時間。

項目範例

10
Referer

HTTP Referer 標頭的值,如果存在的話。提出要求時,HTTP 使用者代理程式 (例如:瀏覽器) 一般會將此標頭設為連結或內嵌頁面的 URL。

項目範例

"http://www.example.com/webservices"
User-Agent

HTTP User-Agent 標頭的值。

項目範例

"curl/7.15.1"
版本 Id

請求的版本 ID,或 - (如果操作未採用 versionId 參數)。

項目範例

3HL4kqtJvjVBH40Nrjfkd
主機 Id

x-amz-id-2 或 Amazon S3 延伸請求 ID。

項目範例

s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
簽章版本

簽章版本 (SigV2SigV4),用來驗證請求或未驗證請求的 -

項目範例

SigV2
密碼套件

針對 HTTPS 請求或 HTTP 的 - 交涉的 Secure Sockets Layer (SSL) 密碼。

項目範例

ECDHE-RSA-AES128-GCM-SHA256
身分驗證類型

使用的請求身分驗證類型:AuthHeader 代表身分驗證標頭,QueryString 代表查詢字串 (預先簽章的 URL),或 - 代表未身分驗證的請求。

項目範例

AuthHeader
主機標頭

用來連線到 Amazon S3 的端點。

項目範例

s3.us-west-2.amazonaws.com

某些早期區域支援舊版端點。您可能會在伺服器存取記錄或 AWS CloudTrail 記錄檔中看到這些端點。如需詳細資訊,請參閱 舊版端點。如需 Amazon S3 區域和端點的完整清單,請參閱《Amazon Web Services 一般參考》中的 Amazon S3 端點和配額

TLS 版本控制

用戶端交涉的 Transport Layer Security (TLS) 版本。值為下列其中一個:TLSv1.1TLSv1.2TLSv1.3- (如果未使用 TLS)。

項目範例

TLSv1.2
存取點 ARN

請求存取點的 Amazon Resource Name (ARN)。如果存取點 ARN 格式錯誤或未使用,該欄位將包含 -。如需存取點的詳細資訊,請參閱 使用存取點。如需 ARN 的詳細資訊,請參閱《AWS 參考指南》中的 Amazon Resource Name (ARN)

項目範例

arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
aclRequired

字串,指出請求是否需要存取控制清單 (ACL) 進行授權。如果請求需要 ACL 進行授權,則字串為 Yes。如果不需要 ACL,則字串為 -。如需 ACL 的詳細資訊,請參閱「存取控制清單 (ACL) 概觀」。如需使用 aclRequired 欄位停用 ACL 的詳細資訊,請參閱 控制物件的擁有權並停用儲存貯體的 ACL

項目範例

Yes

複製操作的其他記錄

複製操作包括 GETPUT。因此,執行複製操作時,我們會記錄兩筆記錄。上節說明與操作的 PUT 部分有關的欄位。下列清單說明記錄中與複製操作的 GET 部分有關的欄位。

儲存貯體擁有者

存放要複製物件之儲存貯體的正式使用者 ID。規範使用者 ID 是 ID 的另一種形式。 AWS 帳戶 如需正式使用者 ID 的詳細資訊,請參閱《AWS 一般參考》中的 AWS 帳戶 識別符。如需如何尋找帳戶正式使用者 ID 的資訊,請參閱尋找您的 AWS 帳戶的正式使用者 ID

項目範例

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
儲存貯體

存放所複製物件的儲存貯體名稱。

項目範例

DOC-EXAMPLE-BUCKET1
時間

收到請求的時間;這些日期和時間都使用國際標準時間 (UTC)。使用 strftime() 術語的格式如下:[%d/%B/%Y:%H:%M:%S %z]

項目範例

[06/Feb/2019:00:00:38 +0000]
遠端 IP

申請者清楚的 IP 地址。中間代理伺服器與防火牆可能會模糊提出請求之電腦的實際 IP 地址。

項目範例

192.0.2.3
要求者

要求者的正式使用者 ID,或未經驗證要求者的 -。如果請求者是 IAM 使用者,此欄位將傳回請求者的 IAM 使用者名稱以及 IAM 使用者所屬的名稱。 AWS 帳戶根使用者 此識別符與用於存取控制目的的識別符相同。

項目範例

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

如果請求者使用假定角色,此欄位會傳回假設的 IAM 角色。

項目範例

arn:aws:sts::123456789012:assumed-role/roleName/test-role
要求 ID

是由 Amazon S3 產生的字串,是可唯一識別每項請求。

項目範例

3E57427F33A59F07
操作

這裡列出的操作會宣告為 SOAP.operationREST.HTTP_method.resource_typeWEBSITE.HTTP_method.resource_typeBATCH.DELETE.OBJECT

項目範例

REST.COPY.OBJECT_GET
金錀

要複製之物件的金鑰 (物件名稱);或 - (如果操作未採用金鑰參數)。

項目範例

/photos/2019/08/puppy.jpg
Request-URI

HTTP 請求訊息的 Request-URI 部分。

項目範例

"GET /DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-foo=bar"
HTTP 狀態

複製操作之 GET 部分的數字 HTTP 狀態碼。

項目範例

200
錯誤代碼

複製操作之 GET 部分的 Amazon S3 Amazon S3 錯誤代碼,或 - (如果未發生任何錯誤)。

項目範例

NoSuchBucket
已傳送的位元組

已傳送的回應位元組數目 (排除 HTTP 通訊協定額外負荷) 或 - (若為零)。

項目範例

2662992
物件大小

所提及之物件的總大小。

項目範例

3462992
總時間

從伺服器角度計算的請求所經過的毫秒數。此值是從收到您要求的時間開始,計算到回應傳送出最後一組位元組的時間。由於網路延遲,從用戶端角度進行的測量可能較長。

項目範例

70
周轉時間

Amazon S3 處理您請求所花費的毫秒數。此值是從收到您要求的最後位元組的時間開始,計算到回應傳送出第一組位元組的時間。

項目範例

10
Referer

HTTP Referer 標頭的值,如果存在的話。提出要求時,HTTP 使用者代理程式 (例如:瀏覽器) 一般會將此標頭設為連結或內嵌頁面的 URL。

項目範例

"http://www.example.com/webservices"
User-Agent

HTTP User-Agent 標頭的值。

項目範例

"curl/7.15.1"
版本 Id

要複製之物件的版本 ID,或 - (如果 x-amz-copy-source 標頭並未將 versionId 參數指定為複製來源的一部分)。

項目範例

3HL4kqtJvjVBH40Nrjfkd
主機 Id

x-amz-id-2 或 Amazon S3 延伸請求 ID。

項目範例

s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
簽章版本

簽章版本 (SigV2SigV4),用來驗證請求或未驗證請求的 -

項目範例

SigV4
密碼套件

針對 HTTPS 請求或 HTTP 的 - 交涉的 Secure Sockets Layer (SSL) 密碼。

項目範例

ECDHE-RSA-AES128-GCM-SHA256
身分驗證類型

使用的請求身分驗證類型:AuthHeader 代表身分驗證標頭、QueryString 代表查詢字串 (預先簽章的 URL),或 - 代表未驗證的請求。

項目範例

AuthHeader
主機標頭

用來連線到 Amazon S3 的端點。

項目範例

s3.us-west-2.amazonaws.com

某些早期區域支援舊版端點。您可能會在伺服器存取記錄或 AWS CloudTrail 記錄檔中看到這些端點。如需詳細資訊,請參閱 舊版端點。如需 Amazon S3 區域和端點的完整清單,請參閱《Amazon Web Services 一般參考》中的 Amazon S3 端點和配額

TLS 版本控制

用戶端交涉的 Transport Layer Security (TLS) 版本。值為下列其中一個:TLSv1.1TLSv1.2TLSv1.3- (如果未使用 TLS)。

項目範例

TLSv1.2
存取點 ARN

請求存取點的 Amazon Resource Name (ARN)。如果存取點 ARN 格式錯誤或未使用,該欄位將包含 -。如需存取點的詳細資訊,請參閱 使用存取點。如需 ARN 的詳細資訊,請參閱《AWS 參考指南》中的 Amazon Resource Name (ARN)

項目範例

arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
aclRequired

字串,指出請求是否需要存取控制清單 (ACL) 進行授權。如果請求需要 ACL 進行授權,則字串為 Yes。如果不需要 ACL,則字串為 -。如需 ACL 的詳細資訊,請參閱「存取控制清單 (ACL) 概觀」。如需使用 aclRequired 欄位停用 ACL 的詳細資訊,請參閱 控制物件的擁有權並停用儲存貯體的 ACL

項目範例

Yes

客戶存取日誌資訊

您可以包含要存放在請求存取日誌記錄中的自訂資訊。若要執行這項操作,請將自訂的查詢字串參數新增至請求的 URL。Amazon S3 忽略開頭為 x- 的查詢字串參數,但會將這些參數包含在請求的存取日誌日誌中,當成日誌記錄 Request-URI 欄位的一部分。

例如,GET 請求的 "s3.amazonaws.com/DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-user=johndoe" 運作方式與 "s3.amazonaws.com/DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg" 請求相同,不同之處在於該 "x-user=johndoe" 字串包含在關聯日誌記錄的 Request-URI 欄位中。此功能僅有 REST 介面提供。

可擴展伺服器存取日誌格式的程式設計考量

有時候,我們可能要在每行結尾新增欄位,擴展存取日誌記錄的格式。因此,確定任何解析伺服器存取日誌的程式碼,可以處理其可能不理解的結尾欄位。