View a markdown version of this page

CloudWatch Logs 中的日誌格式 - Amazon Simple Storage Service

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

CloudWatch Logs 中的日誌格式

當 Amazon S3 伺服器存取日誌交付至 Amazon CloudWatch Logs 時,每個日誌記錄都是結構化 JSON 物件。這與用於交付至 Amazon S3 一般用途儲存貯體的空間分隔文字格式不同。結構化格式可讓欄位在 CloudWatch Logs Insights 中直接查詢,而無需 regex 剖析。

注意

如需用於一般用途儲存貯體交付的空格分隔文字格式,請參閱 Amazon S3 伺服器存取日誌格式

日誌記錄欄位

下表說明傳送至 CloudWatch Logs 的每個伺服器存取日誌記錄中的欄位。

CloudWatch Logs 中的伺服器存取日誌欄位
欄位 Type Description
schema_version_id string 日誌記錄結構描述的版本識別符 (例如,V_1_0)。使用此欄位可偵測未來版本中新增欄位時的結構描述變更。
bucket_arn string 來源儲存貯體的 ARN。
bucket_name string 提出請求的儲存貯體名稱。衍生自儲存貯體 ARN。
request_time string 收到請求的時間,以 UTC 為單位。格式化為 ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS'Z')。在 S3 Tables 整合 (Iceberg) 中,此欄位會儲存為 timestamptz
bucket_owner_id string 來源儲存貯體擁有者的正式使用者 ID。
remote_ip string 申請者的視在 IP 地址。null 如果無法使用,則預設為 。
requester string 請求者的正式使用者 ID,或未驗證請求null的正式使用者 ID。對於 IAM 使用者和角色,這是 ARN。
request_id string Amazon S3 為每個請求產生的唯一識別符。null 如果無法使用,則預設為 。
operation string 已執行的操作,例如 REST.GET.OBJECTREST.PUT.OBJECTnull 如果無法使用,預設為 。
key_name string 請求中的物件金鑰,或null操作不涉及物件。
request_uri string HTTP 請求訊息Request-URI的一部分,如果無法使用null,則為 。
http_status int 回應的數值 HTTP 狀態碼,例如 200403null 如果無法使用,預設為 。
error_code string Amazon S3 錯誤代碼,例如 NoSuchKeyAccessDeniednull或未發生錯誤。
bytes_sent_size long 傳送的回應位元組數,不包括 HTTP 通訊協定額外負荷。null 如果無法使用,則預設為 。
object_size long 物件的總大小。null 如果無法使用,則預設為 。
total_duration long 從收到請求到傳送的回應最後一個位元組的請求總時間,以毫秒為單位。null 如果無法使用,則預設為 。
turn_around_duration long Amazon S3 處理請求所花費的時間,以毫秒為單位。此值是從收到請求的最後一個位元組開始測量,直到傳送回應的第一個位元組為止。null 如果無法使用,則預設為 。
referer string HTTP Referer標頭的值,如果不存在null,則為 。
user_agent string HTTP User-Agent標頭的值。null 如果無法使用,則預設為 。
version_id string 請求中的版本 ID,或null操作不涉及版本控制的物件。
host_id string Amazon S3 延伸請求 ID (x-amz-id-2)。null 如果無法使用,則預設為 。
signature_version string 用來驗證請求的簽章版本: SigV2SigV4。對於未驗證的請求null,預設為 。
cipher_suite string 針對 HTTPS 請求或 HTTP 交涉null的 TLS 密碼套件。
authentication_type string 請求身分驗證的類型:QueryStringAuthHeadernull
host_header string 用來連線至 Amazon S3 的端點。null 如果無法使用,則預設為 。
tls_version string 用戶端交涉的 TLS 版本:TLSv1.1TLSv1.3TLSv1.2null
access_point_arn string 用於請求之存取點的 ARN,或null請求未使用存取點。
acl_required boolean 請求是否需要 ACL。不適用null時預設為 。
source_region string AWS 區域 請求的來源,或無法判斷原始區域null時 (例如 PrivateLink 連線、Direct Connect 連線、使用您自己的 IP 地址 (BYOIP) 或非AWS IP 地址),或日誌是由根據客戶設定政策或動作觸發的操作產生,例如生命週期和檢查總和。

日誌記錄範例

以下是伺服器存取日誌記錄的範例,如 CloudWatch Logs 所示。

{ "schema_version_id": "V_1_0", "bucket_arn": "arn:aws:s3:::my-data-bucket", "bucket_name": "my-data-bucket", "request_time": "2026-04-29T14:32:16.000Z", "bucket_owner_id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "remote_ip": "203.0.113.45", "requester": "arn:aws:iam::123456789012:role/DataAnalystRole", "request_id": "3E57427F33A59F07", "operation": "REST.GET.OBJECT", "key_name": "reports/2026/quarterly-summary.parquet", "request_uri": "GET /my-data-bucket/reports/2026/quarterly-summary.parquet HTTP/1.1", "http_status": 200, "error_code": null, "bytes_sent_size": 1048576, "object_size": 1048576, "total_duration": 45, "turn_around_duration": 12, "referer": null, "user_agent": "aws-sdk-java/2.20.0", "version_id": null, "host_id": "s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=", "signature_version": "SigV4", "cipher_suite": "TLS_AES_128_GCM_SHA256", "authentication_type": "AuthHeader", "host_header": "my-data-bucket.s3.us-east-1.amazonaws.com", "tls_version": "TLSv1.3", "access_point_arn": null, "acl_required": false, "source_region": "us-east-1" }

與一般用途儲存貯體日誌格式的差異

CloudWatch Logs 日誌格式與一般用途儲存貯體日誌格式不同,方式如下:

  • 格式 – CloudWatch Logs 日誌是結構化 JSON 物件。一般用途儲存貯體日誌是以空格分隔的文字。

  • 欄位名稱 – CloudWatch Logs 格式使用描述性底線分隔欄位名稱 (例如 bytes_sent_sizetotal_durationkey_name、)authentication_type。一般用途儲存貯體格式是不含具名資料欄的位置空格分隔文字。

  • 其他欄位 – CloudWatch Logs 格式包含 schema_version_idbucket_arn,這些格式不存在於一般用途儲存貯體文字格式中。

  • 不需要剖析 – 由於 CloudWatch Logs 日誌是結構化 JSON,因此您可以直接在 CloudWatch Logs Insights 中查詢個別欄位,而不需要 regex 剖析。一般用途儲存貯體文字格式需要 regex 或自訂剖析器才能擷取欄位。