运行Terraform Plan时遇S3策略错误:无效条件键求助
解决Terraform配置S3桶策略时的"MalformedPolicy"错误
错误原因
你配置里用到的三个条件键 s3:x-amz-server-side-encryption-customer-algorithm、s3:x-amz-server-side-encryption-customer-key、s3:x-amz-server-side-encryption-customer-key-MD5 不属于S3桶策略允许的合法条件键。它们是SSE-C(客户提供密钥的服务器端加密)相关的请求参数,仅用于API请求或预签名URL生成场景,不能放在桶策略的Condition中做权限校验。
正确配置示例
如果你的需求是强制桶内对象必须启用服务器端加密,改用合法的条件键 s3:x-amz-server-side-encryption 即可,比如强制使用AES256加密:
Condition = { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } }
如果是要强制使用SSE-C加密,桶策略无法直接校验请求中的客户密钥参数,建议通过S3桶的加密配置强制开启加密,或结合IAM权限限制请求必须携带SSE-C相关参数。
内容的提问来源于stack exchange,提问作者Prateek Sharma
相关产品推荐
相关产品推荐

