Skip to content

Commit 04f0d47

Browse files
committed
fix: allow empty kms and ssm arns
I'd like the option to remove access to KMS and SSM permissions on my IRSA roles while still providing the ability to use this module with the default encryption key provided by AWS. When I attempt to provide an empty list, the IAM policy is invalid because a resource definition is required.
1 parent 304c8b5 commit 04f0d47

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

modules/iam-role-for-service-accounts-eks/policies.tf

+16-9
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,16 @@ data "aws_iam_policy_document" "external_secrets" {
539539
resources = ["*"]
540540
}
541541

542-
statement {
543-
actions = [
544-
"ssm:GetParameter",
545-
"ssm:GetParameters",
546-
]
547-
resources = var.external_secrets_ssm_parameter_arns
542+
dynamic "statement" {
543+
for_each = length(var.external_secrets_ssm_parameter_arns) > 0 ? [1] : []
544+
content {
545+
actions = [
546+
"ssm:GetParameter",
547+
"ssm:GetParameters",
548+
]
549+
550+
resources = var.external_secrets_ssm_parameter_arns
551+
}
548552
}
549553

550554
statement {
@@ -562,9 +566,12 @@ data "aws_iam_policy_document" "external_secrets" {
562566
resources = var.external_secrets_secrets_manager_arns
563567
}
564568

565-
statement {
566-
actions = ["kms:Decrypt"]
567-
resources = var.external_secrets_kms_key_arns
569+
dynamic "statement" {
570+
for_each = length(var.external_secrets_kms_key_arns) > 0 ? [1] : []
571+
content {
572+
actions = ["kms:Decrypt"]
573+
resources = var.external_secrets_kms_key_arns
574+
}
568575
}
569576

570577
dynamic "statement" {

0 commit comments

Comments
 (0)