

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

# Amazon S3 的加密最佳實務
<a name="s3"></a>

[Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 是一種雲端型物件儲存服務，可協助您儲存、保護和擷取任何數量的資料。

對於 Amazon S3 中的伺服器端加密，有以下三個選項：
+ [使用 Amazon S3 受管加密金鑰進行伺服器端加密 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)
+ [使用 AWS Key Management Service (SSE-KMS) 的伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
+ [使用客戶提供加密金鑰進行伺服器端加密 (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html)

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 回應標頭中使用。如需詳細資訊，請參閱[預設加密常見問答集](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)。

如果在上傳時使用伺服器端加密來加密物件，請將 `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`

如需詳細資訊，請參閱如何使用儲存貯體政策和套用深度防禦以協助保護您的 Amazon S3 資料 (AWS 部落格文章） 中的*Defense-in-depth防禦需求 1：資料必須靜態加密，並在傳輸期間加密*。 [ Defense-in-Depth Amazon S3 ](https://aws.amazon.com/blogs/security/how-to-use-bucket-policies-and-apply-defense-in-depth-to-help-secure-your-amazon-s3-data/) 

對於 Amazon S3 中的[用戶端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)，有以下兩個選項：
+ 存放在 中的金鑰 AWS KMS
+ 儲存在應用程式內的金鑰

請考慮此服務的下列加密最佳實務：
+ 在 中 AWS Config，實作 [s3-bucket-server-side-encryption-enabled](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-server-side-encryption-enabled.html) AWS 受管規則，以驗證和強制執行 S3 儲存貯體加密。
+ 部署 Amazon S3 儲存貯體政策，以驗證所有正在上傳的物件是否都使用 `s3:x-amz-server-side-encryption` 條件進行加密。如需詳細資訊，請參閱[使用 SSE-S3 保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)中的範例儲存貯體政策和[新增儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)中的說明。
+ 透過在 S3 儲存貯體政策中使用 `aws:SecureTransport` 條件，僅允許透過 HTTPS (TLS) 進行加密連線。如需詳細資訊，請參閱[我應該使用哪些 S3 儲存貯體政策來符合 AWS Config 規則 s3-bucket-ssl-requests-only？](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/)
+ 在 中 AWS Config，實作 [s3-bucket-ssl-requests-only](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html) AWS 受管規則，要求 請求使用 SSL。
+ 在您需要授予 Amazon S3 物件的跨帳戶存取權時，使用客戶受管金鑰。設定金鑰政策，以允許透過其他 AWS 帳戶存取。