Похоже, что эта политика все еще используется в ресурсе aws_iam_policy.task_role
, когда var.policy_statements
пусто.
Это приведет к созданию aws_iam_policy.task_role
с пустым Statement
(что приводит к тому, что ошибка malformed-policy, которую вы видите).
Я бы порекомендовал установить флаг count
на самой политике, чтобы она даже не пыталась создать ее, когда операторы пусты, например,
resource "aws_iam_policy" "task_role" {
count = length(var.policy_statements) == 0 ? 0 : 1
// Your other args here...
}
Это может иметь каскадные эффекты для других ресурсов (например, тех, которые потребляют aws_iam_policy.task_role
). Вам нужно будет обработать эти эффекты, предоставив значения по умолчанию, которые не нарушаются, или добавив туда count
.