Skip to content

Commit a1b3ffd

Browse files
authored
Fixing policy creation for ecs (#55)
* Fixing policy creation for ecs * Fixing role * Fix index * Shortening name
1 parent f02e047 commit a1b3ffd

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

operations/deployment/terraform/aws/aws_variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -965,7 +965,7 @@ variable "aws_ecs_task_name" {
965965
variable "aws_ecs_task_execution_role" {
966966
type = string
967967
description = "Elastic Container Service task execution role name."
968-
default = "ecsTaskExecutionRole"
968+
default = ""
969969
}
970970

971971
variable "aws_ecs_task_json_definition_file" {

operations/deployment/terraform/modules/aws/ecs/aws_ecs.tf

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ resource "aws_ecs_task_definition" "ecs_task" {
3131
requires_compatibilities = [local.aws_ecs_task_type[count.index]]
3232
cpu = local.aws_ecs_task_cpu[count.index]
3333
memory = local.aws_ecs_task_mem[count.index]
34-
execution_role_arn = data.aws_iam_role.ecsTaskExecutionRole.arn
34+
execution_role_arn = local.ecsTaskExecutionRole
3535
container_definitions = sensitive(jsonencode([
3636
{
3737
"image": local.aws_ecs_app_image[count.index],
@@ -69,7 +69,7 @@ resource "aws_ecs_task_definition" "ecs_task_from_json" {
6969
requires_compatibilities = ["${local.aws_ecs_task_type[count.index +length(local.aws_ecs_app_image)]}"]
7070
cpu = local.aws_ecs_task_cpu[count.index+length(local.aws_ecs_app_image)]
7171
memory = local.aws_ecs_task_mem[count.index+length(local.aws_ecs_app_image)]
72-
execution_role_arn = data.aws_iam_role.ecsTaskExecutionRole.arn
72+
execution_role_arn = local.ecsTaskExecutionRole
7373
container_definitions = sensitive(file("../../ansible/clone_repo/app/${var.app_repo_name}/${local.aws_ecs_task_json_definition_file[count.index]}"))
7474
}
7575

@@ -111,7 +111,35 @@ resource "aws_cloudwatch_log_group" "ecs_cw_log_group" {
111111
}
112112

113113
# IAM
114-
115114
data "aws_iam_role" "ecsTaskExecutionRole" {
115+
count = var.aws_ecs_task_execution_role != "" ? 1 : 0
116116
name = var.aws_ecs_task_execution_role
117+
}
118+
119+
resource "aws_iam_role" "ecsTaskExecutionRole" {
120+
count = var.aws_ecs_task_execution_role != "" ? 0 : 1
121+
name = "${var.aws_resource_identifier}-ecs"
122+
assume_role_policy = jsonencode({
123+
"Version" : "2012-10-17",
124+
"Statement" : [
125+
{
126+
"Effect" : "Allow",
127+
"Principal" : {
128+
"Service" : "ecs-tasks.amazonaws.com"
129+
},
130+
"Action" : "sts:AssumeRole"
131+
}
132+
]
133+
})
134+
}
135+
136+
resource "aws_iam_policy_attachment" "ecsTaskExecutionRolePolicy" {
137+
count = var.aws_ecs_task_execution_role != "" ? 0 : 1
138+
name = "AmazonECSTaskExecutionRolePolicyAttachment"
139+
roles = [aws_iam_role.ecsTaskExecutionRole[0].name]
140+
policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
141+
}
142+
143+
locals {
144+
ecsTaskExecutionRole = var.aws_ecs_task_execution_role != "" ? data.aws_iam_role.ecsTaskExecutionRole[0].arn : aws_iam_role.ecsTaskExecutionRole[0].arn
117145
}

0 commit comments

Comments
 (0)