Terraform 尝试创建 s3 存储桶策略,尽管它存在



我之前有一个名为my-awesome-bucket的 AWS S3 存储桶terraform创建。

出于超出本次讨论范围的原因,我通过 AWS 控制台手动添加了以下存储桶策略(我只是在此处复制并粘贴(

{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-awesome-bucket/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
]
}

快进到现在,我只是在我的相应中添加以下行 S3 资源定义:

policy = <<EOF
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-awesome-bucket/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
]
}
EOF

有没有人知道为什么我的terraform计划指示将创建策略?(虽然它存在

$ terraform plan
(...)
~ aws_s3_bucket.my-awesome-bucket
policy: "" => "  {n      "Version": "2008-10-17",n      "Statement": [n          {n              "Effect": "Deny",n              "Principal": "*",n              "Action": "s3:*",n              "Resource": "arn:aws:s3:::my-awesome-bucket/*",n              "Condition": {n                  "Bool": {n                      "aws:SecureTransport": "false"n                  }n              }n          }n      ]n  }n"

您的地形状态不知道该策略已存在。您需要先导入如下内容:

terraform import aws_s3_bucket_policy.example my-bucket-name

https://www.terraform.io/docs/providers/aws/r/s3_bucket_policy.html#import

https://www.terraform.io/docs/state/purpose.html

编辑:我重读了你的问题,看起来你在aws_s3_bucket资源中使用了policy论点。地形文档说:

请注意,如果政策文档不够具体(但仍然 有效(,Terraform 可能会将策略视为在 地形规划。在这种情况下,请确保使用 策略的详细/特定版本。

因此,您可能需要将此策略移动到其自己的aws_s3_bucket_policy资源中,并按照最初建议执行导入。

https://www.terraform.io/docs/providers/aws/r/s3_bucket.html#policy

相关内容

  • 没有找到相关文章

最新更新