@@ -7,10 +7,12 @@ terraform {
77 }
88 }
99}
10- data "aws_partition" "current" {} # Used for GovCloud/China partition-aware ARN construction
10+ data "aws_partition" "current" {}
11+ data "aws_caller_identity" "current" {}
1112
1213locals {
13- is_arm = can (regex (" [a-zA-Z]+\\ d+g[a-z]*\\ ..+" , var. stack_pelotech_nat_instance_type ))
14+ permissions_boundary_arn = var. permissions_boundary != " " ? " arn:${ data . aws_partition . current . partition } :iam::${ data . aws_caller_identity . current . account_id } :policy/${ var . permissions_boundary } " : null
15+ is_arm = can (regex (" [a-zA-Z]+\\ d+g[a-z]*\\ ..+" , var. stack_pelotech_nat_instance_type ))
1416 admin_access_entries = {
1517 for index , item in var . stack_admin_arns : " admin_${ index } " => {
1618 principal_arn = item
@@ -152,15 +154,16 @@ resource "aws_vpc_endpoint" "eks_vpc_endpoints" {
152154}
153155
154156module "eks" {
155- source = " terraform-aws-modules/eks/aws"
156- version = " 21.15.1"
157- name = var. stack_name
158- kubernetes_version = var. eks_cluster_version
159- create = var. stack_create
160- create_node_security_group = var. create_node_security_group
161- endpoint_private_access = true
162- endpoint_public_access = var. cluster_endpoint_public_access
163- enabled_log_types = var. cluster_enabled_log_types
157+ source = " terraform-aws-modules/eks/aws"
158+ version = " 21.15.1"
159+ name = var. stack_name
160+ kubernetes_version = var. eks_cluster_version
161+ create = var. stack_create
162+ create_node_security_group = var. create_node_security_group
163+ iam_role_permissions_boundary = local. permissions_boundary_arn
164+ endpoint_private_access = true
165+ endpoint_public_access = var. cluster_endpoint_public_access
166+ enabled_log_types = var. cluster_enabled_log_types
164167
165168 vpc_id = var. stack_existing_vpc_config != null ? var. stack_existing_vpc_config . vpc_id : module. vpc . vpc_id
166169 subnet_ids = var. stack_existing_vpc_config != null ? var. stack_existing_vpc_config . subnet_ids : module. vpc . private_subnets
@@ -175,6 +178,7 @@ module "eks" {
175178 eks_managed_node_groups = var. stack_enable_default_eks_managed_node_group ? {
176179 " initial-${var.stack_name}" = {
177180 iam_role_use_name_prefix = false
181+ iam_role_permissions_boundary = local.permissions_boundary_arn
178182 instance_types = var.initial_instance_types
179183 min_size = var.initial_node_min_size
180184 max_size = var.initial_node_max_size
@@ -243,6 +247,8 @@ module "karpenter" {
243247 iam_role_use_name_prefix = false
244248 node_iam_role_use_name_prefix = false
245249 create_pod_identity_association = false
250+ iam_role_permissions_boundary_arn = local. permissions_boundary_arn
251+ node_iam_role_permissions_boundary = local. permissions_boundary_arn
246252 iam_role_source_assume_policy_documents = [data . aws_iam_policy_document . source . json ]
247253 tags = merge (var. stack_tags , {
248254 })
@@ -265,6 +271,7 @@ module "load_balancer_controller_irsa_role" {
265271 namespace_service_accounts = [" alb:aws-load-balancer-controller" ]
266272 }
267273 }
274+ permissions_boundary = local. permissions_boundary_arn
268275 tags = merge (var. stack_tags , {
269276 })
270277}
@@ -285,6 +292,7 @@ module "ebs_csi_driver_irsa_role" {
285292 namespace_service_accounts = [" kube-system:ebs-csi-driver" ]
286293 }
287294 }
295+ permissions_boundary = local. permissions_boundary_arn
288296 tags = merge (var. stack_tags , {
289297 })
290298}
@@ -329,6 +337,7 @@ module "s3_driver_irsa_role" {
329337 namespace_service_accounts = [" kube-system:s3-csi-driver" ]
330338 }
331339 }
340+ permissions_boundary = local. permissions_boundary_arn
332341 tags = merge (var. stack_tags , {
333342 })
334343}
@@ -351,6 +360,7 @@ module "external_dns_irsa_role" {
351360 namespace_service_accounts = [" external-dns:external-dns-controller" ]
352361 }
353362 }
363+ permissions_boundary = local. permissions_boundary_arn
354364 tags = merge (var. stack_tags , {
355365 })
356366}
@@ -374,6 +384,7 @@ module "cert_manager_irsa_role" {
374384 namespace_service_accounts = [" cert-manager:cert-manager" ]
375385 }
376386 }
387+ permissions_boundary = local. permissions_boundary_arn
377388 tags = merge (var. stack_tags , {
378389 })
379390}
0 commit comments