resource "aws_iam_role_policy" "ecr_irsa_policy" { name = "${var.registry_repository_name}-policy" role = aws_iam_role.ecr_irsa_role.id policy = jsonencode({ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "VisualEditor0", "Effect" : "Allow", "Action" : [ "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ], "Resource" : "arn:aws:ecr:${var.region}:${var.account_id}:repository/${var.registry_repository_name}" }, { "Sid" : "VisualEditor1", "Effect" : "Allow", "Action" : "ecr:GetAuthorizationToken", "Resource" : "*" } ] }) } resource "aws_iam_role" "ecr_irsa_role" { name = "${var.registry_repository_name}-role" assume_role_policy = jsonencode({ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "Federated" : "arn:aws:iam::${var.account_id}:oidc-provider/${var.oidc_provider}" }, "Action" : "sts:AssumeRoleWithWebIdentity", "Condition" : { "StringEquals" : { "${var.oidc_provider}:aud" : "sts.amazonaws.com", "${var.oidc_provider}:sub" : "system:serviceaccount:mendix:mendix-builder" } } } ] }) }