簡體   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