
AWS S3 儲存桶完全指南:從基礎配置到生產級應用
一家跨境電商的CTO曾告訴我們,他們每月在雲端儲存的花費高達數千美元,卻不知道哪些資料在用高價存儲,哪些可以歸檔。切換到AWS S3 後,透過合理配置儲存類別和生命週期策略,第一年儲存成本下降了68%。
AWS Simple Storage Service(S3)不只」雲端硬碟」。它是物件儲存的事實標準,支援從圖片、影片、日誌,到靜態網站、大數據分析等多種場景。
但錯誤配置S3 可能導致成本激增、資料洩露,甚至服務中斷。
本文將從零開始,深入說明如何正確配置和最佳化AWS S3 儲存桶,並提供生產級最佳實踐。
AWS S3 基礎:物件儲存與檔案儲存的差異
在傳統檔案系統中,你用資料夾和層級路徑尋找檔案。 S3 是物件儲存,每個物件由唯一鍵、資料和元資料組成。
關鍵差異:
| 維度 | S3(對象儲存) | EBS/EFS(文件儲存) |
|---|---|---|
| 訪問模式 | REST API(HTTP/HTTPS) | 檔案系統掛載 |
| 延時 | 毫秒到秒 | 毫秒級 |
| 彈性 | 無限擴展 | 需預配容量 |
| 適用場景 | 靜態檔案、備份、歸檔、靜態網站 | 資料庫、應用程式資料、即時讀寫 |
| 成本 | $0.023/GB 起 | $0.125/GB 起(EBS gp3) |
如果你存放的是使用者上傳的圖片、產品CSV 匯出、套用日誌、靜態網頁資源,S3 是最佳選擇。
建立第一個S3 儲存桶:逐步操作
透過AWS 控制台創建
- 登入AWS 管理控制台→ 搜尋 S3
- 點選 “創建儲存桶”
- 填寫必要資訊:
- 儲存桶名稱:全球唯一,只能小寫字母、數字、連字號(如
myapp-assets-2026) - AWS 區域:選擇離你的用戶最近的區域(中國出海推薦
ap-singapore或ap-tokyo) - Block Public Access(封鎖公共存取):生產環境務必勾選全部,再單獨開放
- 儲存桶名稱:全球唯一,只能小寫字母、數字、連字號(如
- 點擊”創建儲存桶”
重要:儲存桶名稱全域唯一 即使你創建在新加坡區域,名為 company-data 的儲存桶在全球其他AWS 帳戶都無法再用。
S3 儲存桶配置詳解
1. 權限管理(Access Control)
S3 權限分為三部分:
| 權限層級 | 訪問對象 | 控制方式 |
|---|---|---|
| Bucket Policy | 儲存桶級別 | JSON 策略 |
| ACL | 單一對象 | 簡單權限清單 |
| IAM Policy | IAM 使用者/角色 | IAM 策略 |
生產環境建議使用順序:
- 用 IAM Policy 控制內部使用者/服務
- 用 Bucket Policy 控制跨帳戶或匿名訪問
- 盡量不使用 ACL(AWS 已不建議)
範例Bucket Policy(允許CloudFront 存取)
注意:不使用程式碼區塊,用文字描述
以下是一個JSON 策略的架構:
首先聲明版本號,通常為 2012-10-17。其次加入一個Statement 數組,每個Statement 包含Sid、Effect、Principal、Action 和Resource。
在Statement 中,Sid 是描述性ID,例如:AllowCloudFrontOriginAccess。 Effect 欄位設定為Allow。 Principal 使用星號表示允許所有,但通常需限定為CloudFront 服務標識。
Action 陣列包含 s3:GetObject 等權限。 Resource 引用資源ARN,格式為 arn:aws:s3:::你的儲存桶名稱 指向整個儲存桶,或 *arn:aws:s3:::你的儲存桶名稱/指向所有對象。
配置要點:Resource 欄位必須正確填寫儲存桶ARN,否則權限無效。 Principal 可為特定服務,例如CloudFront 分發時可使用OAI 識別。
2. 儲存類別選擇(Storage Class)
AWS S3 提供多種儲存類別,成本與存取頻次成反比:
| 儲存類別 | 每月每GB | 最低儲存時長 | 適用場景 |
|---|---|---|---|
| S3 Standard | ~$0.023 | 無 | 熱數據,經常訪問 |
| S3 Intelligent-Tiering | ~$0.023 + 監測費 | 無 | 訪問模式未知或波動 |
| S3 Standard-IA | ~$0.0125 | 30天 | 不常訪問,但需快速讀取 |
| S3 One Zone-IA | ~$0.01 | 30天 | 備份,可接受單AZ故障 |
| S3 Glacier | ~$0.0036 | 90天 | 歸檔,數小時內可恢復 |
| S3 Glacier Deep Archive | ~$0.001 | 180天 | 法規歸檔,數月內可恢復 |
選擇邏輯:
- 圖片、JS/CSS 靜態資源→ S3 Standard
- 每月報告、使用者日誌→ S3 Standard-IA
- 舊版備份、歷史資料→ S3 Glacier
- 合規存檔→ S3 Glacier Deep Archive
3. 版本控制(Versioning)
開啟版本控制後,S3 會保留每個物件的舊版本。
- 防止誤刪:刪除操作會新增一個刪除標記而非真刪除
- 資料恢復:可恢復到任何歷史版本
- 副作用:儲存成本增加(所有版本都收費)
開啟方法:儲存桶→ 屬性 → 版本控制 → 啟用
最佳實踐:生產儲存桶都應開啟版本控制,配合生命週期策略自動清理舊版(如保留最新3個版本)。
儲存生命週期策略(Lifecycle Rules)
生命週期策略可自動遷移物件到適當儲存類別,或在到期後刪除,是成本優化的核心工具。
常見設定範例:
| 規則名稱 | 物件前綴 | 動作 | 天數 | 目的 |
|---|---|---|---|---|
| 日誌歸檔 | logs/ |
遷移到Standard-IA | 0 | 日誌立即進冷存儲 |
| 訪問日誌轉歸檔 | logs/ |
遷移到Glacier | 30 | 30天後轉更低價存儲 |
| 刪除舊版本 | 無前綴 | 刪除不完整的分段上傳 | 7 | 清理未完成上傳 |
| 清理歷史版本 | 無前綴 | 永久刪除舊版本 | 保留最近3個 | 版本控制優化 |
配置入口:儲存桶→ 管理 → 生命週期規則
S3 靜態網站託管完整配置
S3 可託管純靜態網站(HTML/CSS/JS),成本極低,適合行銷落地頁、文件網站。
設定步驟:
- 設定靜態網站託管
- 儲存桶→ 屬性 → 靜態網站託管
- 選擇”啟用”
- 指定索引文檔:
index.html - 指定錯誤文檔:
error.html
- 配置權限(安全第一)
- 儲存桶→ 權限 → Bucket Policy
- 新增策略允許公開讀取(僅此儲存桶,不影響其他)
- 自訂網域名稱(可選)
- 配置CloudFront 分發指向S3,並與Route 53 綁定
- 無需為S3 分配證書,在CloudFront 中設定SSL
效能優化建議:
- 啟用CloudFront:S3 本身無CDN 緩存,全球存取延遲不穩定
- 壓縮靜態資源:在S3 儲存前Gzip 壓縮JS/CSS
- 設定快取頭:透過CloudFront 或S3 元資料設置
Cache-Control: max-age=31536000
生產級安全最佳實踐
1. 禁止公開訪問(除必要情況)
預設情況下,所有公共存取都應被阻止。若需開放(如網站託管),透過細粒度策略控制。
2. 啟用AWS 加密(SSE-S3/AES-256)
所有寫入S3 的資料都應啟用伺服器端加密。
- SSE-S3:AWS 管理的金鑰,零配置
- KMS:自管理金鑰,符合合規要求
開啟方法:儲存桶→ 屬性 → 預設加密 → 啟用
3. 設定存取日誌(Server Access Logging)
記錄所有存取請求,用於審計和安全分析。
配置:儲存桶→ 屬性 → 伺服器訪問日誌 → 選擇另一個儲存桶存放日誌
4. 避免使用IAM 使用者存取密鑰
用 IAM 角色(如EC2 實例角色)暫時取得權限,而非硬編碼存取金鑰。
成本監控與最佳化
每月帳單檢查項:
- 儲存費用:按儲存類別和容量計費
- 請求費用:PUT/COPY/POST/LIST 請求
- 資料傳輸:到互聯網或跨區域
- 管理功能:如S3 Inventory、分析查詢
成本優化策略:
| 策略 | 預期節省 | 適用場景 |
|---|---|---|
| 啟用Intelligent-Tiering | 20%–40% | 訪問模式不確定 |
| 設定生命週期策略 | 40%–70% | 有明確數據淘汰週期 |
| 壓縮資料上傳 | 30%–60% | 可壓縮的日誌/文字 |
| 限制跨區域傳輸 | 避免意外費用 | 不必要的資料複製 |
工具:使用 AWS Cost Explorer 篩選 Service=S3 查看細分成本。
常見問題解答
Q1:S3 儲存桶突然無法存取,如何排查?
- 檢查 Bucket Policy 是否被誤改
- 檢查 IAM 角色權限是否過期
- 查看 CloudTrail 日誌,看是否有異常操作
- 檢查 阻止公共訪問 設定是否被誤開
Q2:如何實現跨區域複製(Cross-Region Replication)?
在儲存桶→ 管理 → 複製規則 中配置。需開啟版本控制。適合合規要求多備份的場景。
Q3:S3 儲存桶和檔案有大小限制嗎?
- 單一物件最大5TB
- 單一PUT 請求最大5GB(大於5GB 需用分段上傳)
- 儲存桶容量無限
結語:S3 是AWS 生態的”數據湖心臟”
正確配置S3 不僅能確保資料安全,更能大幅降低雲端儲存成本。建議每個出海企業至少熟悉:
- 儲存類別與生命週期策略
- 權限管理(Bucket Policy vs IAM)
- 靜態網站託管與CDN 集成
這三點掌握後,你就能把S3 從」簡單的檔案儲存」升級為高效率的數據管理平台。
🔧 免費取得AWS S3 儲存成本診斷
AWS-onCloudAI 提供免費的儲存架構審查,包括:
- 儲存類別優化建議
- 權限配置安全性審查
- 生命週期策略制定
👉 訪問 aws-oncloudai.com 預約免費諮詢
本文由AWS-onCloudAI 雲端架構團隊撰寫,專注於協助中國企業有效率地使用AWS 雲端服務,降低成本,並增強安全。

