【发布时间】:2022-02-20 04:05:27
【问题描述】:
在 Austin Davis 的 excellent answer 之后,我已经为 terraform 状态设置了一个 s3 后端。我按照 Matt Lavin 的建议添加了加密存储桶的策略。
不幸的是,存储桶策略意味着 terraform state list 现在抛出
加载状态失败:AccessDenied:拒绝访问状态码:403,请求id:XXXXXXXXXXXXXXXX,主机id:XXXX...
我怀疑我错过了在 terraform 端传递或配置某些内容以加密通信,或者缺少能够读取加密状态的附加策略条目。
这是添加到 tf-state 存储桶的策略:
{
"Version": "2012-10-17",
"Id": "RequireEncryption",
"Statement": [
{
"Sid": "RequireEncryptedTransport",
"Effect": "Deny",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::${aws_s3_bucket.terraform_state.bucket}/*"],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
},
"Principal": "*"
},
{
"Sid": "RequireEncryptedStorage",
"Effect": "Deny",
"Action": ["s3:PutObject"],
"Resource": ["arn:aws:s3:::${aws_s3_bucket.terraform_state.bucket}/*"],
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
},
"Principal": "*"
}
]
}
【问题讨论】:
-
"策略加密桶"什么是策略?你到底使用了什么样的加密?自定义 CMK?
-
添加到桶上的策略中
标签: amazon-web-services amazon-s3 terraform terraform-remote-state