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

Posted

技术标签:

【中文标题】在 Terraform 上的 aws_iam_policy 资源上包含标签【英文标题】:Include tags on aws_iam_policy resource on Terraform 【发布时间】:2021-05-31 04:24:25 【问题描述】:

我正在尝试创建一个遵循 Terraform documentation 的策略

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 = "*"
      ,
    ]
  )

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

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

  tags = 
    tag-key = "tag-value"
  

【问题讨论】:

【参考方案1】:

更新:

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

您现在应该可以按照您的预期将标签添加到您的 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"
  


标记客户管理的 IAM 政策是 introduced on 11th February 2021 的一项新功能。目前,AWS 提供商上只有 a feature request 用于此功能。

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

【讨论】:

【参考方案2】:

这是now available from version 3.35.0

* 数据源/aws_iam_policy:添加 policy_idtags 属性 (#18276)

_

【讨论】:

以上是关于在 Terraform 上的 aws_iam_policy 资源上包含标签的主要内容,如果未能解决你的问题,请参考以下文章

Terraform:Cloud Run 服务上的 Cloud Endpoints?

使用 Terraform 导入 Azure 上的现有资源

Terraform 学习总结—— 基于阿里云平台上的 Terraform 实战

Terraform 学习总结—— 基于阿里云平台上的 Terraform 实战

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

Terraform 上的“无效的旧提供程序地址”错误