首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想在iam_policy模块上迭代,创建多个模块,并将每个模块附加到它们的iam_assumable_role对应模块。这附近有工作吗?

我想在iam_policy模块上迭代,创建多个模块,并将每个模块附加到它们的iam_assumable_role对应模块。这附近有工作吗?
EN

Stack Overflow用户
提问于 2022-01-25 01:50:47
回答 1查看 177关注 0票数 0

好吧,我希望有办法做到这一点。所以我有一个列表,比如说var.env。我想迭代这个var.env,以制定多个策略,并将这些策略附加到相应的假设角色中。我希望这是有意义的。

这看起来会是。

代码语言:javascript
复制
# list
variable "env" {
  type = list(strings)
  default = ['dev', 'stage', 'prod']
}

# creating the policy documents data
data "aws_iam_policy_document" "policy_document" {
  for_each = var.env

  statement {
    actions = [
      "s3:*"
    ]
    effect = "Allow"
    resources = ["arn:...:mybucket_${each.key}"]
  }
}

# attaching the policy document data to a policy
module "bucket_policy" {
  source   = "terraform-aws-modules/iam/aws//modules/iam-policy"
  version  = "4.10.0"

  for_each = var.env

  name        = "example_${each.key}_bucket_policy"
  path        = "/"
  description = "${each.key} Policy document"

  policy = data.aws_iam_policy_document.policy_document[each.key].json
}

# creating the assumable roles 
module "assumable_role" {
  source   = "terraform-aws-modules/iam/aws//modules/iam-assumable-role"
  version  = "4.10.0"

  for_each = var.env

  create_role = true

  role_name         = "example_${each.key}_bucket_role"
  role_requires_mfa = false

  trusted_role_services = [
    s3.amazonaws.com"
  ]

  # now this DOESN"T WORK but something like this... 
  custom_role_policy_arns = [
    module.bucket_policy.arn[each.key]
  ]
}

我真的很感激你的建议和一切。

事先谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2022-01-25 07:26:18

引用arn的正确方法如下所示。而不是

代码语言:javascript
复制
 module.bucket_policy.arn[each.key]

它应该是

代码语言:javascript
复制
 module.bucket_policy[each.key].arn
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70842565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档