新存储桶的默认 SSE-C 设置常见问题解答
重要
Amazon Simple Storage Service 现在应用新的默认存储桶安全设置,该设置将对所有新的通用存储桶自动禁用具有客户提供密钥的服务器端加密(SSE-C)。2026 年 4 月,Amazon S3 部署了更新,因此,所有新的通用存储桶都将对所有新的写入请求禁用 SSE-C 加密。对于 AWS 账户中没有 SSE-C 加密对象的现有存储桶,Amazon S3 还对所有新的写入请求禁用了 SSE-C。通过这一更改,需要 SSE-C 加密的应用程序必须在创建新的存储桶后,专门使用 PutBucketEncryption API 操作启用 SSE-C。
以下各部分回答了有关此更新的问题。
1. 新的 SSE-C 设置是否会对所有新创建的存储桶生效?
可以。此部署于 2026 年 4 月在 37 个 AWS 区域完成,包括 AWS 中国和 AWS GovCloud(美国)区域。
注意
在除中东(巴林)和中东(阿联酋)之外的所有 AWS 区域中新创建的所有存储桶将默认禁用 SSE-C。
2. Amazon S3 是否更新了我现有的存储桶配置?
如果您的 AWS 账户中没有任何 SSE-C 加密对象,则 AWS 对所有现有存储桶禁用了 SSE-C 加密。如果您的 AWS 账户中的任何存储桶都包含 SSE-C 加密的对象,则 AWS 未更改该账户中任何存储桶的存储桶配置。新的默认设置适用于所有新的通用存储桶。
3. 我能否对我的存储桶禁用 SSE-C 加密?
可以。您可以调用 PutBucketEncryption API 操作并指定新的 BlockedEncryptionTypes 标头,为所有存储桶禁用 SSE-C 加密。
4. 我能否使用 SSE-C 对新存储桶中的数据进行加密?
可以。Amazon S3 中的大多数现代化使用案例不再使用 SSE-C,因为相比具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)或具有 AWS 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 权限。
5. 阻止 SSE-C 会如何影响对我的存储桶的请求?
为存储桶阻止了 SSE-C 之后,任何指定 SSE-C 加密的 PutObject、CopyObject、PostObject 或者分段上传或复制请求都将被拒绝,并返回 HTTP 403 AccessDenied 错误。