Skip to content

Commit 4b527cd

Browse files
committed
Add explicit_task_exec_secret_arns to complete example
1 parent a1049c0 commit 4b527cd

File tree

4 files changed

+18
-6
lines changed

4 files changed

+18
-6
lines changed

examples/complete/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ module "ecs" {
5050
cpu = 1024
5151
memory = 4096
5252

53+
explicit_task_exec_secret_arns = true
54+
5355
# Container definition(s)
5456
container_definitions = {
5557

main.tf

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,11 @@ module "service" {
134134
task_exec_iam_role_max_session_duration = try(each.value.task_exec_iam_role_max_session_duration, null)
135135

136136
# Task execution IAM role policy
137-
create_task_exec_policy = try(each.value.create_task_exec_policy, true)
138-
task_exec_ssm_param_arns = lookup(each.value, "task_exec_ssm_param_arns", ["arn:aws:ssm:*:*:parameter/*"])
139-
task_exec_secret_arns = lookup(each.value, "task_exec_secret_arns", ["arn:aws:secretsmanager:*:*:secret:*"])
140-
task_exec_iam_statements = lookup(each.value, "task_exec_iam_statements", {})
137+
create_task_exec_policy = try(each.value.create_task_exec_policy, true)
138+
task_exec_ssm_param_arns = lookup(each.value, "task_exec_ssm_param_arns", ["arn:aws:ssm:*:*:parameter/*"])
139+
task_exec_secret_arns = lookup(each.value, "task_exec_secret_arns", ["arn:aws:secretsmanager:*:*:secret:*"])
140+
explicit_task_exec_secret_arns = lookup(each.value, "explicit_task_exec_secret_arns", false)
141+
task_exec_iam_statements = lookup(each.value, "task_exec_iam_statements", {})
141142

142143
# Tasks - IAM role
143144
create_tasks_iam_role = try(each.value.create_tasks_iam_role, true)

modules/service/main.tf

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ locals {
2626
}
2727

2828
create_service = var.create && var.create_service
29+
30+
container_definitions_secrets = flatten([for k, v in module.container_definition : v.container_definition.secrets])
31+
task_exec_secret_arns = var.explicit_task_exec_secret_arns ? [for v in local.container_definitions_secrets : v.valueFrom] : var.task_exec_secret_arns
2932
}
3033

3134
resource "aws_ecs_service" "this" {
@@ -836,12 +839,12 @@ data "aws_iam_policy_document" "task_exec" {
836839
}
837840

838841
dynamic "statement" {
839-
for_each = length(var.task_exec_secret_arns) > 0 ? [1] : []
842+
for_each = length(local.task_exec_secret_arns) > 0 ? [1] : []
840843

841844
content {
842845
sid = "GetSecrets"
843846
actions = ["secretsmanager:GetSecretValue"]
844-
resources = var.task_exec_secret_arns
847+
resources = local.task_exec_secret_arns
845848
}
846849
}
847850

modules/service/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,12 @@ variable "task_exec_secret_arns" {
462462
default = ["arn:aws:secretsmanager:*:*:secret:*"]
463463
}
464464

465+
variable "explicit_task_exec_secret_arns" {
466+
description = "Change the task_exec_secret_arns behavior to get the list of ARNs from the secrets defined in containers_definitions"
467+
type = bool
468+
default = false
469+
}
470+
465471
variable "task_exec_iam_statements" {
466472
description = "A map of IAM policy [statements](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document#statement) for custom permission usage"
467473
type = any

0 commit comments

Comments
 (0)