在 Terraform 上的 aws_iam_policy 资源上包含标签

fpa*_*tto 4 amazon-web-services amazon-iam terraform terraform-provider-aws aws-policies

我正在尝试按照Terraform 文档创建策略

resource "aws_iam_policy" "policy" {
  name        = "test_policy"
  path        = "/"
  description = "My test policy"

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有关于如何包含标签的描述。即使我可以从 AWS 管理控制台手动提供,我也无法像使用其他资源那样完成它。

tags设置似乎不起作用。如果我尝试对IAM 角色执行相同操作,则会收到错误消息,包括:

  tags = {
    tag-key = "tag-value"
  }
Run Code Online (Sandbox Code Playgroud)

yda*_*coR 5

更新:

此功能已添加到https://github.com/hashicorp/terraform-provider-aws/pull/18276并作为AWS provider v3.35.0 的一部分发布。

您现在应该能够aws_iam_policy按照预期向资源添加标签:

resource "aws_iam_policy" "policy" {
  name        = "test_policy"
  path        = "/"
  description = "My test policy"

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })

  tags = {
    tag-key = "tag-value"
  }
}
Run Code Online (Sandbox Code Playgroud)

标记客户管理的 IAM 策略是2021 年 2 月 11 日推出的一项新功能。目前,AWS 提供商仅对此功能提出了特性请求

一旦有人添加了必要的更改并且它已被合并和发布,您应该期望它与您在问题中提供的语法一起使用。