繁体   English   中英

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

[英]Terraform tries to create s3 bucket policy although it exists

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

由于某些超出本讨论范围的原因,我通过 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 状态不知道该策略已经存在。 您需要先使用以下内容导入它:

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 文档说:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM