如何設定 S3 儲存桶的「預設加密」?—— 初學者指南
更新日期: 2024 年 12 月 18 日
本文為 圖片上傳 AWS S3 系列教學,第 1 篇:
- AWS S3 是什麼?
- boto3 與 django-storages:如何在 Django 中對接 AWS S3
- AWS S3 與 IAM:圖片上傳功能的權限管理指南
- S3 與 Postgres 的比較與應用
- Amazon S3 物件所有權設定解析
- AWS S3「阻止所有公開訪問」設定說明
- Amazon S3 儲存桶版本控制完整指南
- 如何設定 S3 儲存桶的「預設加密」?—— 初學者指南 👈 所在位置
- S3 儲存桶標籤(Tags)簡單介紹:讓你的 S3 管理更輕鬆!
- AWS S3 物件鎖定功能入門指南
- AWS S3 公開存取權完整指南
- AWS CORS 預檢請求與設定指南
- AWS IAM 設定教學:生成訪問密鑰以用於 S3 配置
- django-storages 基本配置:讓應用程式連接 S3 存儲桶
- Django-storages 的完整配置教學:從隱密性到快取控制
- Django-storages 完整配置指南:從文件存儲到訪問路徑
- Django-storages 配置:環境變數設定
- Django-storages 與 STORAGES 配置:未來相容性的最佳實踐
- 如何在 Django 中移除 DEBUG URL 的靜態檔案配置
建議閱讀本文前,先閱讀完 圖片上傳功能 系列文
在使用 Amazon S3 儲存桶儲存資料時,「預設加密」功能能有效保護物件的安全。
這篇文章將帶你了解各種加密選項及適合的使用場景,讓你能快速做出合適的選擇。
加密類型說明
使用 Amazon S3 托管密鑰進行服務端加密(SSE-S3)
- 說明:Amazon S3 會自動使用 AWS 提供的密鑰來加密你的物件。
- 特點:
- 密鑰由 AWS 自動管理,無需手動設置或維護。
- 適用於大多數應用場景,提供安全且便捷的加密功能。
- 免費 提供,沒有額外費用。
- 適合場景:
- 如果你沒有特殊的加密需求,SSE-S3 是最簡單且推薦的選項。
使用 AWS Key Management Service(SSE-KMS)進行服務端加密
- 說明:AWS Key Management Service (KMS) 提供更細緻的密鑰管理及審核功能。
- 特點:
- 你可以自行控制密鑰(KMS 密鑰)並審核加密操作。
- 每次加密操作都會記錄在 AWS CloudTrail 中,方便追蹤。
- 額外費用:KMS 密鑰的使用會按請求次數計費。
- 適合場景:
- 當你需要 更高的安全性 和 密鑰控制,例如符合法規或內部稽核要求時。
使用 AWS Key Management Service 客戶密鑰(DSSE-KMS)
- 說明:這是 SSE-KMS 的高級版本,提供額外的加密層保護。
- 特點:
- 在現有加密層上增加額外的加密保護,提升安全性。
- 設定較複雜,且成本可能較高。
- 適合場景:
- 用於極高的安全性需求場景,例如金融、醫療、法律法規等領域。
存儲桶密鑰選項
在加密設定中,你還可選擇「存儲桶層級密鑰」的啟用或禁用:
- 禁用:不啟用存儲桶層級密鑰,加密設定將依賴個別物件的設定。
- 啟用:配合 SSE-KMS 使用,能有效減少頻繁存取時的密鑰請求成本,適用於高頻存取的場景。
建議選項
根據你的需求,這裡提供以下建議:
- 一般安全需求,無需複雜管理:
- 選擇 SSE-S3(Amazon S3 托管密鑰)。
- 這是最簡單、方便且免費的選項。
- 需要更高加密控制與記錄,例如符合法規或審計需求:
- 選擇 SSE-KMS(AWS Key Management Service)。
- 注意:此選項會產生額外的費用。
- 極高安全性需求(如金融、醫療產業):
- 選擇 DSSE-KMS,但需考慮設定複雜度與成本。
結論
對於大部分使用者來說,SSE-S3(Amazon S3 托管密鑰) 是最推薦的加密選項,簡單易用且無需額外成本。
若你的專案有進一步的加密需求,再考慮 SSE-KMS 或 DSSE-KMS。