Hi,
Terraform v0.15.0 on windows_amd64
hashicorp/aws v3.37.0
In this doc The for_each Meta-Argument - Configuration Language - Terraform by HashiCorp, it mentioned that if we have a var (map) with sensitive values (not the keys), we can create a values to pass to for-each with toset([for)
.
The code below was working fine when I was using v0.14.
variable "secret-key-values" {
description = "List of Secert Key/Value"
type = map
}
resource "aws_secretsmanager_secret" "secret-key" {
for_each = var.secret-key-values
name = each.key
}
resource "aws_secretsmanager_secret_version" "secret-value" {
for_each = var.secret-key-values
secret_id = aws_secretsmanager_secret.secret-key[each.key].id
secret_string = each.value
}
I changed it as below after upgrading the Terraform to v0.15.
resource "aws_secretsmanager_secret" "secret-key" {
for_each = toset([for k,v in var.secret-key-values : k])
name = each.key
}
resource "aws_secretsmanager_secret_version" "secret-value" {
for_each = toset([for k,v in var.secret-key-values : k])
secret_id = aws_secretsmanager_secret.secret-key[each.key].id
secret_string = aws_secretsmanager_secret.secret-key[each.key].value
}
I am still getting this error.
β Error: Invalid for_each argument
β
β on ..\modules\secerts-management\main.tf line 2, in resource "aws_secretsmanager_secret" "secret-key":
β 2: for_each = toset([for k,v in var.secret-key-values : k])
β βββββββββββββββββ
β β var.secret-key-values has a sensitive value
β
β Sensitive values, or values derived from sensitive values, cannot be used
β as for_each arguments. If used, the sensitive value could be exposed as a
β resource instance key.
Did I miss out something? Or, Is it a bug?