新存储桶的默认 SSE-C 设置常见问题解答
重要
从 2026 年 4 月开始,Amazon 将对所有新存储桶禁用具有客户提供密钥的服务器端加密(SSE-C)。此外,对于 Amazon Web Services 账户中没有任何 SSE-C 加密数据的所有现有存储桶,都将禁用 SSE-C 加密。通过这些更改,少数需要 SSE-C 加密的应用程序必须在创建存储桶后,专门通过 PutBucketEncryption API 启用 SSE-C。在这些情况下,您可能需要更新自动化脚本、Amazon CloudFormation 模板或其他基础设施配置工具来配置这些设置。有关更多信息,请参阅 Amazon Storage 博客文章
以下各部分回答了有关此更新的问题。
1. 2026 年 4 月,新的 SSE-C 设置是否会对所有新创建的存储桶生效?
可以。在 2026 年 4 月期间,新的默认设置将逐步在所有 Amazon 区域推出。
2. 这次推出需要多长时间才能涵盖所有 Amazon 区域?
此更新将需要数周时间才能推出。当我们开始部署此更新时,我们将发布一篇“新增内容”帖子。
3. 我怎么知道更新已完成?
您可以创建新的存储桶,然后调用 GetBucketEncryption API 操作来确定是否已禁用 SSE-C 加密,从而轻松地确定您所在的 Amazon 区域是否已完成更改。更新完成后,默认情况下,所有新的通用存储桶都将自动禁用 SSE-C 加密。您可以在创建 S3 存储桶后,通过调用 PutBucketEncryption API 操作调整这些设置。
4. Amazon S3 会更新我现有的桶配置吗?
如果您的 Amazon 账户中没有任何 SSE-C 加密对象,则 Amazon 将在所有现有存储桶上禁用 SSE-C 加密。如果您的 Amazon 账户中的所有存储桶都包含 SSE-C 加密对象,则 Amazon 不会更改该账户中任何存储桶的存储桶配置。您所在 Amazon 区域的 CreateBucket 更改完成后,新的默认设置将应用于所有新的通用存储桶。
5. 我能否在更新完成之前对存储桶禁用 SSE-C 加密?
可以。您可以调用 PutBucketEncryption API 操作并指定新的 BlockedEncryptionTypes 标头,为所有存储桶禁用 SSE-C 加密。
6. 我能否使用 SSE-C 对新存储桶中的数据进行加密?
可以。Amazon S3 中的大多数现代化使用案例不再使用 SSE-C,因为相比具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)或具有 Amazon KMS 密钥的服务器端加密(SSE-KMS),这种方法欠缺灵活性。如果您需要在新存储桶中使用 SSE-C 加密,则可以创建新的存储桶,然后在单独的 PutBucketEncryption 请求中启用 SSE-C 加密。
示例
aws s3api create-bucket \ bucket amzn-s3-demo-bucket \ region us-east-1 \ aws s3api put-bucket-encryption \ -- bucket amzn-s3-demo-bucket \ -- server-side-encryption-configuration \ '{ \Rules\: [{ { \ApplyServerSideEncryptionByDefault\: { \SSEAlgorithm\: \AES256\, }, \BlockedEncryptionTypes\: [ \EncryptionType\:\NONE\] } }] }'
注意
您必须拥有调用 PutBucketEncryption API 的 s3:PutEncryptionConfiguration 权限。
7. 阻止 SSE-C 会如何影响对我的存储桶的请求?
为存储桶阻止了 SSE-C 之后,任何指定 SSE-C 加密的 PutObject、CopyObject、PostObject 或者分段上传或复制请求都将被拒绝,并返回 HTTP 403 AccessDenied 错误。