You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中遍历Map列表获取值并添加至IAM策略

解决方法

要直接从var.iam_user_groups变量中提取指定组的用户ARN列表,只需通过键名直接引用对应的列表即可——你要的是用户ARN,而IAM组资源返回的是组本身的ARN,完全不需要绕到组资源里去。

正确配置示例

将IAM策略的principals部分修改为:

principals {
  type        = "AWS"
  identifiers = var.iam_user_groups["finance-users"]
}

之前写法的问题

  1. 你把资源引用写成了字符串"aws_iam_group.iam_group_team['finance-users'].arn",Terraform不会解析字符串内部的资源引用,必须用原生的变量/资源引用语法。
  2. aws_iam_group.iam_group_team["finance-users"].arn获取的是IAM组自身的ARN,不是组内用户的ARN,和你的需求完全不匹配。你的var.iam_user_groups变量本身就存储了每个组对应的用户ARN列表,直接引用即可。

扩展:合并多个组的用户ARN

如果需要同时加入多个组的用户,可使用concat函数合并列表:

principals {
  type        = "AWS"
  identifiers = concat(
    var.iam_user_groups["finance-users"],
    var.iam_user_groups["all-users"]
  )
}

内容的提问来源于stack exchange,提问作者Kaysss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:45:41