Skip to content

Commit 1b8cad1

Browse files
authoredApr 3, 2024
feat: Allow configuring max_session_duration for the ECS Task Execution role (#186)
feat: Configure max_session_duration for the ECS Task Execution role
1 parent 31b4352 commit 1b8cad1

File tree

5 files changed

+10
-0
lines changed

5 files changed

+10
-0
lines changed
 

‎main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ module "service" {
130130
task_exec_iam_role_permissions_boundary = try(each.value.task_exec_iam_role_permissions_boundary, null)
131131
task_exec_iam_role_tags = try(each.value.task_exec_iam_role_tags, {})
132132
task_exec_iam_role_policies = try(each.value.task_exec_iam_role_policies, {})
133+
task_exec_iam_role_max_session_duration = try(each.value.task_exec_iam_role_max_session_duration, null)
133134

134135
# Task execution IAM role policy
135136
create_task_exec_policy = try(each.value.create_task_exec_policy, true)

‎modules/service/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ module "ecs_service" {
296296
| <a name="input_task_definition_placement_constraints"></a> [task\_definition\_placement\_constraints](#input\_task\_definition\_placement\_constraints) | Configuration block for rules that are taken into consideration during task placement (up to max of 10). This is set at the task definition, see `placement_constraints` for setting at the service | `any` | `{}` | no |
297297
| <a name="input_task_exec_iam_role_arn"></a> [task\_exec\_iam\_role\_arn](#input\_task\_exec\_iam\_role\_arn) | Existing IAM role ARN | `string` | `null` | no |
298298
| <a name="input_task_exec_iam_role_description"></a> [task\_exec\_iam\_role\_description](#input\_task\_exec\_iam\_role\_description) | Description of the role | `string` | `null` | no |
299+
| <a name="input_task_exec_iam_role_max_session_duration"></a> [task\_exec\_iam\_role\_max\_session\_duration](#input\_task\_exec\_iam\_role\_max\_session\_duration) | Maximum session duration (in seconds) for ECS task execution role. Default is 3600. | `number` | `null` | no |
299300
| <a name="input_task_exec_iam_role_name"></a> [task\_exec\_iam\_role\_name](#input\_task\_exec\_iam\_role\_name) | Name to use on IAM role created | `string` | `null` | no |
300301
| <a name="input_task_exec_iam_role_path"></a> [task\_exec\_iam\_role\_path](#input\_task\_exec\_iam\_role\_path) | IAM role path | `string` | `null` | no |
301302
| <a name="input_task_exec_iam_role_permissions_boundary"></a> [task\_exec\_iam\_role\_permissions\_boundary](#input\_task\_exec\_iam\_role\_permissions\_boundary) | ARN of the policy that is used to set the permissions boundary for the IAM role | `string` | `null` | no |

‎modules/service/main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,7 @@ resource "aws_iam_role" "task_exec" {
776776
description = coalesce(var.task_exec_iam_role_description, "Task execution role for ${local.task_exec_iam_role_name}")
777777

778778
assume_role_policy = data.aws_iam_policy_document.task_exec_assume[0].json
779+
max_session_duration = var.task_exec_iam_role_max_session_duration
779780
permissions_boundary = var.task_exec_iam_role_permissions_boundary
780781
force_detach_policies = true
781782

‎modules/service/variables.tf

+6
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,12 @@ variable "task_exec_iam_role_policies" {
438438
default = {}
439439
}
440440

441+
variable "task_exec_iam_role_max_session_duration" {
442+
description = "Maximum session duration (in seconds) for ECS task execution role. Default is 3600."
443+
type = number
444+
default = null
445+
}
446+
441447
variable "create_task_exec_policy" {
442448
description = "Determines whether the ECS task definition IAM policy should be created. This includes permissions included in AmazonECSTaskExecutionRolePolicy as well as access to secrets and SSM parameters"
443449
type = bool

‎wrappers/service/main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ module "wrapper" {
100100
task_definition_placement_constraints = try(each.value.task_definition_placement_constraints, var.defaults.task_definition_placement_constraints, {})
101101
task_exec_iam_role_arn = try(each.value.task_exec_iam_role_arn, var.defaults.task_exec_iam_role_arn, null)
102102
task_exec_iam_role_description = try(each.value.task_exec_iam_role_description, var.defaults.task_exec_iam_role_description, null)
103+
task_exec_iam_role_max_session_duration = try(each.value.task_exec_iam_role_max_session_duration, var.defaults.task_exec_iam_role_max_session_duration, null)
103104
task_exec_iam_role_name = try(each.value.task_exec_iam_role_name, var.defaults.task_exec_iam_role_name, null)
104105
task_exec_iam_role_path = try(each.value.task_exec_iam_role_path, var.defaults.task_exec_iam_role_path, null)
105106
task_exec_iam_role_permissions_boundary = try(each.value.task_exec_iam_role_permissions_boundary, var.defaults.task_exec_iam_role_permissions_boundary, null)

0 commit comments

Comments
 (0)