Skip to content

Commit d932f65

Browse files
cvockrodtCasey Vockrodt
andauthored
feat: add policy_name_prefix for IRSA policies (#243)
fix #239 Co-authored-by: Casey Vockrodt <[email protected]>
1 parent 2113ea9 commit d932f65

File tree

3 files changed

+23
-16
lines changed

3 files changed

+23
-16
lines changed

modules/iam-role-for-service-accounts-eks/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ No modules.
210210
| <a name="input_max_session_duration"></a> [max\_session\_duration](#input\_max\_session\_duration) | Maximum CLI/API session duration in seconds between 3600 and 43200 | `number` | `null` | no |
211211
| <a name="input_node_termination_handler_sqs_queue_arns"></a> [node\_termination\_handler\_sqs\_queue\_arns](#input\_node\_termination\_handler\_sqs\_queue\_arns) | List of SQS ARNs that contain node termination events | `list(string)` | <pre>[<br> "*"<br>]</pre> | no |
212212
| <a name="input_oidc_providers"></a> [oidc\_providers](#input\_oidc\_providers) | Map of OIDC providers where each provider map should contain the `provider`, `provider_arn`, and `namespace_service_accounts` | `any` | `{}` | no |
213+
| <a name="input_policy_name_prefix"></a> [policy\_name\_prefix](#input\_policy\_name\_prefix) | IAM policy name prefix | `string` | `"AmazonEKS_"` | no |
213214
| <a name="input_role_description"></a> [role\_description](#input\_role\_description) | IAM Role description | `string` | `null` | no |
214215
| <a name="input_role_name"></a> [role\_name](#input\_role\_name) | Name of IAM role | `string` | `null` | no |
215216
| <a name="input_role_name_prefix"></a> [role\_name\_prefix](#input\_role\_name\_prefix) | IAM role name prefix | `string` | `null` | no |

modules/iam-role-for-service-accounts-eks/policies.tf

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ data "aws_iam_policy_document" "cert_manager" {
3838
resource "aws_iam_policy" "cert_manager" {
3939
count = var.create_role && var.attach_cert_manager_policy ? 1 : 0
4040

41-
name_prefix = "AmazonEKS_Cert_Manager_Policy-"
41+
name_prefix = "${var.policy_name_prefix}Cert_Manager_Policy-"
4242
path = var.role_path
4343
description = "Cert Manager policy to allow management of Route53 hosted zone records"
4444
policy = data.aws_iam_policy_document.cert_manager[0].json
@@ -97,7 +97,7 @@ data "aws_iam_policy_document" "cluster_autoscaler" {
9797
resource "aws_iam_policy" "cluster_autoscaler" {
9898
count = var.create_role && var.attach_cluster_autoscaler_policy ? 1 : 0
9999

100-
name_prefix = "AmazonEKS_Cluster_Autoscaler_Policy-"
100+
name_prefix = "${var.policy_name_prefix}Cluster_Autoscaler_Policy-"
101101
path = var.role_path
102102
description = "Cluster autoscaler policy to allow examination and modification of EC2 Auto Scaling Groups"
103103
policy = data.aws_iam_policy_document.cluster_autoscaler[0].json
@@ -292,7 +292,7 @@ data "aws_iam_policy_document" "ebs_csi" {
292292
resource "aws_iam_policy" "ebs_csi" {
293293
count = var.create_role && var.attach_ebs_csi_policy ? 1 : 0
294294

295-
name_prefix = "AmazonEKS_EBS_CSI_Policy-"
295+
name_prefix = "${var.policy_name_prefix}EBS_CSI_Policy-"
296296
path = var.role_path
297297
description = "Provides permissions to manage EBS volumes via the container storage interface driver"
298298
policy = data.aws_iam_policy_document.ebs_csi[0].json
@@ -352,7 +352,7 @@ data "aws_iam_policy_document" "efs_csi" {
352352
resource "aws_iam_policy" "efs_csi" {
353353
count = var.create_role && var.attach_efs_csi_policy ? 1 : 0
354354

355-
name_prefix = "AmazonEKS_EFS_CSI_Policy-"
355+
name_prefix = "${var.policy_name_prefix}EFS_CSI_Policy-"
356356
path = var.role_path
357357
description = "Provides permissions to manage EFS volumes via the container storage interface driver"
358358
policy = data.aws_iam_policy_document.efs_csi[0].json
@@ -393,7 +393,7 @@ data "aws_iam_policy_document" "external_dns" {
393393
resource "aws_iam_policy" "external_dns" {
394394
count = var.create_role && var.attach_external_dns_policy ? 1 : 0
395395

396-
name_prefix = "AmazonEKS_External_DNS_Policy-"
396+
name_prefix = "${var.policy_name_prefix}External_DNS_Policy-"
397397
path = var.role_path
398398
description = "External DNS policy to allow management of Route53 hosted zone records"
399399
policy = data.aws_iam_policy_document.external_dns[0].json
@@ -435,7 +435,7 @@ data "aws_iam_policy_document" "external_secrets" {
435435
resource "aws_iam_policy" "external_secrets" {
436436
count = var.create_role && var.attach_external_secrets_policy ? 1 : 0
437437

438-
name_prefix = "AmazonEKS_External_Secrets_Policy-"
438+
name_prefix = "${var.policy_name_prefix}External_Secrets_Policy-"
439439
path = var.role_path
440440
description = "Provides permissions to for External Secrets to retrieve secrets from AWS SSM and AWS Secrets Manager"
441441
policy = data.aws_iam_policy_document.external_secrets[0].json
@@ -492,7 +492,7 @@ data "aws_iam_policy_document" "fsx_lustre_csi" {
492492
resource "aws_iam_policy" "fsx_lustre_csi" {
493493
count = var.create_role && var.attach_fsx_lustre_csi_policy ? 1 : 0
494494

495-
name_prefix = "AmazonEKS_FSx_Lustre_CSI_Policy-"
495+
name_prefix = "${var.policy_name_prefix}FSx_Lustre_CSI_Policy-"
496496
path = var.role_path
497497
description = "Provides permissions to manage FSx Lustre volumes via the container storage interface driver"
498498
policy = data.aws_iam_policy_document.fsx_lustre_csi[0].json
@@ -586,7 +586,7 @@ data "aws_iam_policy_document" "karpenter_controller" {
586586
resource "aws_iam_policy" "karpenter_controller" {
587587
count = var.create_role && var.attach_karpenter_controller_policy ? 1 : 0
588588

589-
name_prefix = "AmazonEKS_Karpenter_Controller_Policy-"
589+
name_prefix = "${var.policy_name_prefix}Karpenter_Controller_Policy-"
590590
path = var.role_path
591591
description = "Provides permissions to handle node termination events via the Node Termination Handler"
592592
policy = data.aws_iam_policy_document.karpenter_controller[0].json
@@ -837,7 +837,7 @@ data "aws_iam_policy_document" "load_balancer_controller" {
837837
resource "aws_iam_policy" "load_balancer_controller" {
838838
count = var.create_role && var.attach_load_balancer_controller_policy ? 1 : 0
839839

840-
name_prefix = "AmazonEKS_AWS_Load_Balancer_Controller-"
840+
name_prefix = "${var.policy_name_prefix}AWS_Load_Balancer_Controller-"
841841
path = var.role_path
842842
description = "Provides permissions for AWS Load Balancer Controller addon"
843843
policy = data.aws_iam_policy_document.load_balancer_controller[0].json
@@ -881,7 +881,7 @@ data "aws_iam_policy_document" "load_balancer_controller_targetgroup_only" {
881881
resource "aws_iam_policy" "load_balancer_controller_targetgroup_only" {
882882
count = var.create_role && var.attach_load_balancer_controller_targetgroup_binding_only_policy ? 1 : 0
883883

884-
name_prefix = "AmazonEKS_AWS_Load_Balancer_Controller_TargetGroup_Only-"
884+
name_prefix = "${var.policy_name_prefix}AWS_Load_Balancer_Controller_TargetGroup_Only-"
885885
path = var.role_path
886886
description = "Provides permissions for AWS Load Balancer Controller addon in TargetGroup binding only scenario"
887887
policy = data.aws_iam_policy_document.load_balancer_controller_targetgroup_only[0].json
@@ -994,7 +994,7 @@ data "aws_iam_policy_document" "appmesh_controller" {
994994
resource "aws_iam_policy" "appmesh_controller" {
995995
count = var.create_role && var.attach_appmesh_controller_policy ? 1 : 0
996996

997-
name_prefix = "AmazonEKS_Appmesh_Controller-"
997+
name_prefix = "${var.policy_name_prefix}Appmesh_Controller-"
998998
path = var.role_path
999999
description = "Provides permissions to for appmesh controller"
10001000
policy = data.aws_iam_policy_document.appmesh_controller[0].json
@@ -1036,7 +1036,7 @@ data "aws_iam_policy_document" "appmesh_envoy_proxy" {
10361036
resource "aws_iam_policy" "appmesh_envoy_proxy" {
10371037
count = var.create_role && var.attach_appmesh_envoy_proxy_policy ? 1 : 0
10381038

1039-
name_prefix = "AmazonEKS_Appmesh_Envoy_Proxy-"
1039+
name_prefix = "${var.policy_name_prefix}Appmesh_Envoy_Proxy-"
10401040
path = var.role_path
10411041
description = "Provides permissions to for appmesh envoy proxy"
10421042
policy = data.aws_iam_policy_document.appmesh_envoy_proxy[0].json
@@ -1075,7 +1075,7 @@ data "aws_iam_policy_document" "amazon_managed_service_prometheus" {
10751075
resource "aws_iam_policy" "amazon_managed_service_prometheus" {
10761076
count = var.create_role && var.attach_amazon_managed_service_prometheus_policy ? 1 : 0
10771077

1078-
name_prefix = "AmazonEKS_Managed_Service_Prometheus_Policy-"
1078+
name_prefix = "${var.policy_name_prefix}Managed_Service_Prometheus_Policy-"
10791079
path = var.role_path
10801080
description = "Provides permissions to for Amazon Managed Service for Prometheus"
10811081
policy = data.aws_iam_policy_document.amazon_managed_service_prometheus[0].json
@@ -1122,7 +1122,7 @@ data "aws_iam_policy_document" "node_termination_handler" {
11221122
resource "aws_iam_policy" "node_termination_handler" {
11231123
count = var.create_role && var.attach_node_termination_handler_policy ? 1 : 0
11241124

1125-
name_prefix = "AmazonEKS_Node_Termination_Handler_Policy-"
1125+
name_prefix = "${var.policy_name_prefix}Node_Termination_Handler_Policy-"
11261126
path = var.role_path
11271127
description = "Provides permissions to handle node termination events via the Node Termination Handler"
11281128
policy = data.aws_iam_policy_document.node_termination_handler[0].json
@@ -1182,7 +1182,7 @@ data "aws_iam_policy_document" "velero" {
11821182
resource "aws_iam_policy" "velero" {
11831183
count = var.create_role && var.attach_velero_policy ? 1 : 0
11841184

1185-
name_prefix = "AmazonEKS_Velero_Policy-"
1185+
name_prefix = "${var.policy_name_prefix}Velero_Policy-"
11861186
path = var.role_path
11871187
description = "Provides Velero permissions to backup and restore cluster resources"
11881188
policy = data.aws_iam_policy_document.velero[0].json
@@ -1252,7 +1252,7 @@ data "aws_iam_policy_document" "vpc_cni" {
12521252
resource "aws_iam_policy" "vpc_cni" {
12531253
count = var.create_role && var.attach_vpc_cni_policy ? 1 : 0
12541254

1255-
name_prefix = "AmazonEKS_CNI_Policy-"
1255+
name_prefix = "${var.policy_name_prefix}CNI_Policy-"
12561256
path = var.role_path
12571257
description = "Provides the Amazon VPC CNI Plugin (amazon-vpc-cni-k8s) the permissions it requires to modify the IPv4/IPv6 address configuration on your EKS worker nodes"
12581258
policy = data.aws_iam_policy_document.vpc_cni[0].json

modules/iam-role-for-service-accounts-eks/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ variable "role_name_prefix" {
3434
default = null
3535
}
3636

37+
variable "policy_name_prefix" {
38+
description = "IAM policy name prefix"
39+
type = string
40+
default = "AmazonEKS_"
41+
}
42+
3743
variable "role_policy_arns" {
3844
description = "ARNs of any policies to attach to the IAM role"
3945
type = list(string)

0 commit comments

Comments
 (0)