在terraform中组合两个插值函数,将访问密钥分配给用户列表

在terraform中组合两个插值函数,将访问密钥分配给用户列表,terraform,amazon-iam,Terraform,Amazon Iam,我最近开始使用aws+terrafom。 我有一个要在循环中创建的用户列表,并为他们分配访问密钥。 我不确定我是否使用了错误的方法或方法来解决它 我修改了模块aws_iam_user来创建带有count的用户列表,效果很好。当我试图为每个用户创建密钥时,只有第一个用户才能获得凭据 variable "name" { type = "list" default = ["neo", "trinity", "morpheous"] } resource "aws_iam_user" "thi

我最近开始使用aws+terrafom。 我有一个要在循环中创建的用户列表,并为他们分配访问密钥。 我不确定我是否使用了错误的方法或方法来解决它

我修改了模块aws_iam_user来创建带有count的用户列表,效果很好。当我试图为每个用户创建密钥时,只有第一个用户才能获得凭据

variable "name" {
  type = "list"
  default = ["neo", "trinity", "morpheous"]
}

resource "aws_iam_user" "this" {
  count = "${length(var.name)}"
  name = "${element(var.name,count.index )}"
}

resource "aws_iam_access_key" "this" {
  count = "${length(var.name)}"
  user = "${element(aws_iam_user.this.*.name,count.index)}"
}

我希望每个用户都能获得访问密钥,但它只将它们分配给第一个。

不确定您使用的是Terraform的哪个版本,但您不需要添加通配符

resource "aws_iam_access_key" "this" {
  count = "${length(var.name)}"
  user = aws_iam_user.this[count.index].name
}

不确定您在Terraform的哪个版本中,但您不需要添加通配符

resource "aws_iam_access_key" "this" {
  count = "${length(var.name)}"
  user = aws_iam_user.this[count.index].name
}

很高兴它有帮助:)很高兴它有帮助:)