觀點 · 資訊分享
Amazon S3 存取紀錄可直接送進 CloudWatch Logs:能下警報、跨帳號彙整,還能鏡射成 SQL 可查的表
AWS 在 6/29 讓 S3 的伺服器存取紀錄可以直送 CloudWatch Logs,並選擇同步成 Iceberg 格式的 S3 Tables。以前紀錄只能丟進另一個 S3 儲存貯體,現在能即時查詢、設警報,也能用 SQL 分析。
- 發布
- 2026-06-29
- 篇幅
- 約 5 分鐘 · 2,074 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:AWS 在 6 月 29 日讓 S3 的存取紀錄可以直接送進 CloudWatch Logs,還能同步成可用 SQL 查詢的 S3 Tables,以前只能把紀錄丟進另一個 S3 儲存貯體。

先用白話講:S3 存取紀錄是什麼?
想像 S3 是一間大型倉庫,伺服器存取紀錄就是門口的訪客登記簿:誰、幾點、拿走了或放進什麼,全都記一筆。
以前這本登記簿只能「自動影印後放到隔壁的另一間倉庫(另一個 S3 儲存貯體)」,想查事情得自己把一大堆紙翻出來。現在多了兩種新做法:直接送到有搜尋與警鈴功能的監控室(CloudWatch Logs),或整理成一張可以用 SQL 查的表格(S3 Tables)。
發生什麼事
AWS 在 6 月 29 日宣布 S3 的伺服器存取紀錄可以:
- 送進 CloudWatch Logs:即時查詢、對錯誤率設警報、觀察流量模式、跨帳號與跨區域彙整,並且可以用 AWS KMS 加密
- 鏡射到 S3 Tables:以 Apache Iceberg 格式存放,用標準 SQL 在 Amazon Athena、Amazon Redshift 與其他相容 Iceberg 的引擎查詢,適合稽核存取模式、分析使用趨勢、找出費用來源
- 這兩條都是新增選項,原本送到 S3 一般用途儲存貯體的免費路徑還在
- 除了中國區與 GovCloud(US)以外,所有 AWS 區域都能用
三種路徑比一比
| 路徑 | 適合 | 重點 |
|---|---|---|
| S3 一般用途儲存貯體(原本) | 便宜地長期保存 | 免費;加密只支援 SSE-S3 |
| CloudWatch Logs(新) | 即時查詢、警報、集中管理 | 可用自己的 KMS 金鑰;付 CloudWatch Logs 攝入費 |
| S3 Tables(新,需先開 CloudWatch Logs) | 用 SQL 做稽核與分析 | 儲存與維護沒有額外費用 |
給開發者的技術細節
根據 S3 使用者指南:
- 設定方式:要用 CloudWatch Logs 的 API 設定,不是 S3 的 API;每個來源儲存貯體指定一個 log group,多個儲存貯體可以共用同一個
- 生效時間:設定約 15 到 20 分鐘傳播,之後通常幾小時內開始送紀錄;只記錄新請求,不補歷史資料
- S3 主控台:儲存貯體的「Properties」分頁,有「Server access log delivery to CloudWatch Logs」區塊可啟用,並可勾選 S3 Tables 整合
- S3 Tables 整合每個帳號每個區域只要建立一次:
aws observabilityadmin create-s3-table-integration \
--role-arn arn:aws:iam::123456789012:role/CWLogsS3TableIntegrationRole \
--encryption '{"SseAlgorithm": "AES256"}'
- 這個 IAM 角色必須信任
logs.amazonaws.com,並授予logs:integrateWithS3Table權限;完成後資料通常在第一次送達後一小時內出現 - 跨帳號彙整有兩種:CloudWatch 跨帳號可觀測性(不複製資料,就地查詢)與 CloudWatch Logs 集中化;多帳號環境可用 Organizations 的啟用規則自動開啟送達,但規則目前不支援自動啟用 S3 Tables 整合,要每個帳號各自開
- 如果同時用 KMS 加密的 log group 與 S3 Tables 整合,KMS 金鑰政策要另外授權給
systemtables.cloudwatch.amazonaws.com
我的看法
這個更新比表面上更實用,因為它解決了「紀錄存了,卻沒人看」的老問題。以前 S3 存取紀錄放在另一個儲存貯體裡,沒有警報、也不好查,通常出事才會去翻。現在送進 CloudWatch Logs,就能對「異常大量的 403 或 5xx」這類狀況設警報。
不過我會提醒兩點:一是費用,CloudWatch Logs 是依攝入量收費,如果你的儲存貯體請求量很大(例如放網站圖片、對外下載),全部紀錄都送進來可能不便宜,建議先選要稽核的重要儲存貯體開;二是不補舊紀錄,要在事件發生前就開好,出事後才開是看不到過去的。小型專案如果只是偶爾稽核,原本的免費路徑加上 Athena 查詢,可能就夠了。
名詞小辭典
- 伺服器存取紀錄(Server Access Logs):S3 記錄每次請求的流水帳,包含請求者、時間、操作與結果。
- CloudWatch Logs:AWS 的紀錄集中管理服務,可以搜尋、設警報。
- S3 Tables:AWS 提供的表格型儲存,底層用 Apache Iceberg 格式,可以用 SQL 查詢。
- KMS:AWS 的金鑰管理服務,用來控制資料用哪把金鑰加密。
資料來源
常見問題
S3 伺服器存取紀錄是什麼?
是記錄「誰、什麼時候、對哪個物件做了什麼操作」的流水帳,像大樓的門禁刷卡紀錄。要查誰動過資料、或分析存取模式時就會用到。
跟以前差在哪?
以前紀錄只能送到另一個 S3 一般用途儲存貯體,而且只支援 SSE-S3 加密。現在多了 CloudWatch Logs 這條路徑,可以用你自己的 KMS 金鑰加密、即時查詢、設警報,也能跨帳號彙整。
會多花錢嗎?
送到 S3 儲存貯體的老路徑依官方說明仍然免費。走 CloudWatch Logs 要付 CloudWatch Logs 的攝入費;鏡射到 S3 Tables 的儲存與維護沒有額外費用,只要付 CloudWatch Logs 攝入,以及用 S3 Tables 價格計算的查詢請求費用。實際金額請看你的區域價格。
接著讀
全部觀點 →S3 Object Lock 新增「事件保留」:合約結束後才開始算 5 年,不必再猜一個遙遠的到期日Amazon S3 Object Lock 支援可變保留:先用事件鎖定保護檔案,等合約結束、稽核完成等事件發生,再放開鎖定,保留期才從那一刻起算。所有區域都能用,不另外收費。閱讀 →AWS Kinesis 資料流可以直接存進 S3 了:不用自己寫搬運程式,官方說最多省 6 成Amazon Kinesis Data Streams 新增資料送達功能,串流資料能直接存進一般 S3 儲存桶,或轉成 Iceberg 資料表。AWS 說跟自建搬運流程比,送達成本最多省 6 成。閱讀 →Amazon S3 不用再等 30 天:檔案建立當天,就能轉進便宜最多 4 成的 Standard-IAAWS 讓 S3 生命週期規則可以在檔案建立後 0 天就轉進 Standard-IA 與 One Zone-IA,不必先在 Standard 放滿 30 天。但 IA 的 30 天最低計費、取回費與 128 KB 的規矩都還在。閱讀 →