terraform-aws-mwaa
terraform-aws-mwaa copied to clipboard
iam_role_additional_policies and external IAM Roles
When bringing external iam role with below config
create_iam_role = false
execution_role_arn = data.aws_iam_role.mwaa.arn
iam_role_additional_policies = []
TF throws below error
│ Error: Invalid object key
│
│ on .terraform/modules/mwaa/locals.tf line 14, in locals:
│ 14: iam_role_additional_policies = { for k, v in toset(concat([var.iam_role_additional_policies])) : k => v if var.execution_role_arn != null }
│
Upon verification, terraform-aws-eks uses a similar pattern, but with different variable types
iam_role_additional_policies
in var should be map(string)
rather than list(string)
Also, the if
conditional should not be checking external role, it should be checking create_iam_role
The concact should enclose var.iam_role_additional_policies
with []
. Detail see below screenshot
> { for k, v in toset(concat([[]])) : k => v if "asdf" != null }
╷
│ Error: Invalid object key
│
│ on <console-input> line 1:
│ (source code not available)
│
│ The key expression produced an invalid result: string required.
╵
> { for k, v in toset(concat([[]])) : k => v if null != null }
{}
> { for k, v in toset(concat([])) : k => v if "asdf" != null }
{}
if needed, we can discuss about the detail using aws internal channels.