本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 的加密最佳實務
Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。
對於 Amazon S3 中的伺服器端加密,有以下三個選項:
Amazon S3 使用 Amazon S3 受管金鑰 (SSE-S3) 套用伺服器端加密,作為 Amazon S3 中每個儲存貯體的基本加密層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態可在 AWS CloudTrail 日誌、S3 庫存、S3 Storage Lens、Amazon S3 主控台,以及 AWS Command Line Interface (AWS CLI) 和 AWS SDKs 中的其他 Amazon S3 API 回應標頭中使用。如需詳細資訊,請參閱預設加密常見問答集。
如果在上傳時使用伺服器端加密來加密物件,請將 x-amz-server-side-encryption
標頭新增至請求,以通知 Amazon S3 使用 SSE-S3、SSE-KMS 或 SSE-C 加密物件。以下是 x-amz-server-side-encryption
標頭的可能值:
-
AES256
,可通知 Amazon S3 使用 Amazon S3 受管金鑰。 -
aws:kms
,告知 Amazon S3 使用 AWS KMS 受管金鑰。 -
對於 SSE-C,將值設定為
True
或False
如需詳細資訊,請參閱Defense-in-depth需求 1:在如何使用儲存貯體政策和套用深度防禦以協助保護您的 Amazon S3 資料 (部落格文章) 中,資料必須在靜態和傳輸期間加密。 Defense-in-Depth Amazon S3
對於 Amazon S3 中的用戶端加密,有以下兩個選項:
-
存放在 中的金鑰 AWS KMS
-
儲存在應用程式內的金鑰
請考慮此服務的下列加密最佳實務:
-
在 中 AWS Config,實作 s3-bucket-server-side-encryption-enabled AWS 受管規則,以驗證和強制執行 S3 儲存貯體加密。
-
部署 Amazon S3 儲存貯體政策,以驗證所有正在上傳的物件是否都使用
s3:x-amz-server-side-encryption
條件進行加密。如需詳細資訊,請參閱使用 SSE-S3 保護資料中的範例儲存貯體政策和新增儲存貯體政策中的說明。 -
透過在 S3 儲存貯體政策中使用
aws:SecureTransport
條件,僅允許透過 HTTPS (TLS) 進行加密連線。如需詳細資訊,請參閱我應該使用哪些 S3 儲存貯體政策來符合 AWS Config 規則 s3-bucket-ssl-requests-only? -
在 中 AWS Config,實作 s3-bucket-ssl-requests-only AWS 受管規則,要求 請求使用 SSL。
-
在您需要授予 Amazon S3 物件的跨帳戶存取權時,使用客戶受管金鑰。設定金鑰政策,以允許透過其他 AWS 帳戶存取。