本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
封鎖或取消封鎖一般用途儲存貯體的 SSE-C
Amazon S3 中的大多數現代使用案例不再搭配客戶提供的金鑰 (SSE-C) 使用伺服器端加密,因為它缺乏使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密或 AWS KMS 金鑰 (SSE-KMS) 的伺服器端加密彈性。每次與 SSE-C 加密資料互動時,SSE-C 需要提供加密金鑰,因此與從 S3 儲存貯體讀取資料的其他使用者、角色 AWS 或服務共用 SSE-C 金鑰,以便操作您的資料並不切實際。
若要限制您可以在一般用途儲存貯體中使用的伺服器端加密類型,您可以選擇透過更新儲存貯體的預設加密組態來封鎖 SSE-C 寫入請求。此儲存貯體層級組態會封鎖上傳指定 SSE-C 物件的請求。 當儲存貯體的 SSE-C 遭到封鎖時,任何指定 SSE-C 加密的 PutObject、PostObject、 CopyObject或 分段上傳或複寫請求都會遭到 HTTP 403 AccessDenied錯誤拒絕。
此設定是 PutBucketEncryption API 上的參數,如果您有 s3:PutEncryptionConfiguration許可,也可以使用 S3 主控台、 AWS CLI 和 AWS SDKs進行更新。
有效值為 SSE-C,可封鎖一般用途儲存貯體的 SSE-C 加密,以及 NONE,允許使用 SSE-C 寫入儲存貯體。
重要
從 2026 年 4 月開始, AWS 將使用客戶提供的金鑰 (SSE-C) 停用所有新儲存貯體的伺服器端加密。此外,對於 中沒有任何 SSE-C 加密資料的所有現有儲存貯體 AWS 帳戶 ,將停用 SSE-C 加密。隨著這些變更,需要 SSE-C 加密的少數應用程式在建立儲存貯體之後,必須刻意透過 PutBucketEncryption API 啟用使用 SSE-C。在這些情況下,您可能需要更新自動化指令碼、 CloudFormation 範本或其他基礎設施組態工具來設定這些設定。如需詳細資訊,請參閱 AWS Storage 部落格文章
許可
使用 PutBucketEncryption API 或 S3 主控台、 AWS SDKs或 AWS CLI 來封鎖或取消封鎖一般用途儲存貯體的加密類型。您必須擁有下列許可:
s3:PutEncryptionConfiguration
使用 GetBucketEncryption API 或 S3 主控台、 AWS SDKs或 AWS CLI 來檢視一般用途儲存貯體的封鎖加密類型。您必須擁有下列許可:
s3:GetEncryptionConfiguration
封鎖 SSE-C 加密之前的考量事項
封鎖任何儲存貯體的 SSE-C 之後,會套用下列加密行為:
在您封鎖 SSE-C 加密之前,儲存貯體中已存在之物件的加密沒有變更。
封鎖 SSE-C 加密之後,只要您在請求上提供必要的 SSE-C 標頭,您就可以繼續對使用 SSE-C 加密的現有物件提出 GetObject 和 HeadObject 請求。
當儲存貯體的 SSE-C 遭到封鎖時,任何指定 SSE-C
PutObjectCopyObject加密的PostObject、、 或 分段上傳請求都會遭到 HTTP 403AccessDenied錯誤拒絕。如果複寫的目的地儲存貯體已封鎖 SSE-C,且複寫的來源物件已使用 SSE-C 加密,複寫將會失敗,並顯示 HTTP 403
AccessDenied錯誤。
如果您想要在封鎖此加密類型之前,檢閱您是否在任何儲存貯體中使用 SSE-C 加密,您可以使用 AWS CloudTrail
步驟
您可以使用 Amazon S3 主控台、 AWS Command Line Interface ()、Amazon S3 REST API 和 AWS SDKs,針對一般用途儲存貯體使用客戶提供的金鑰 (SSE-C AWS CLI) 來封鎖或取消封鎖伺服器端加密。
若要使用 Amazon S3 主控台封鎖或取消封鎖儲存貯體的 SSE-C 加密:
登入 AWS 管理主控台,並在 https://https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。
在左側導覽窗格中,選擇一般用途儲存貯體。
選取您要封鎖 SSE-C 加密的儲存貯體。
選取儲存貯體的屬性索引標籤。
導覽至儲存貯體的預設加密屬性面板,然後選取編輯。
在封鎖加密類型區段中,核取使用客戶提供金鑰 (SSE-C) 的伺服器端加密旁的方塊,以封鎖 SSE-C 加密,或取消核取此方塊以允許 SSE-C。
選取 Save Changes (儲存變更)。
若要安裝 AWS CLI,請參閱《 AWS 使用者指南》中的安裝 CLI。 AWS Command Line Interface
下列 CLI 範例說明如何使用 來封鎖或取消封鎖一般用途儲存貯體的 SSE-C 加密 AWS CLI。若要使用此命令,請以您自己的資訊取代使用者輸入預留位置。
請求封鎖一般用途儲存貯體的 SSE-C 加密:
aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "SSE-C" } }] }'
請求在一般用途儲存貯體上使用 SSE-C 加密:
aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "NONE" } }] }'
如需有關 Amazon S3 REST API 支援為一般用途儲存貯體破解或取消封鎖 SSE-C 加密的資訊,請參閱《Amazon Simple Storage Service API 參考》中的下列章節:
在 PutBucketEncryption 和 GetBucketEncryption API 操作的 ServerSideEncryptionRule 資料類型中使用的 BlockedEncryptionTypes 資料類型。 ServerSideEncryptionRule GetBucketEncryption