Skip to content

Commit f7768eb

Browse files
committed
fix: ensure IAM Role name length does not exceed 64 characters
When using a long enough `prefix`, the IAM Roles can exceed the maximum length allowed by AWS. For example: ``` │ Error: expected length of name to be in the range (1 - 64), got github-runners-prod-xxxxxxxxxxxxxx-prod-action-scale-down-lambda-role │ │ with module.multi_runner.module.runners["xxxxxxxxxxxxxx-prod"].aws_iam_role.scale_down, │ on .terraform/modules/multi_runner/modules/runners/scale-down.tf line 88, in resource "aws_iam_role" "scale_down": │ 88: name = "${var.prefix}-action-scale-down-lambda-role" ``` There is nowhere to override this, so your only options are to change the prefix for the entire module. This commit resolves this by truncating the name to fit under the maximum length. This primarily happens on the scale-up and scale-down Lambdas, but I've added it everywhere for consistency. Fixes: #3973
1 parent 4b33b88 commit f7768eb

File tree

12 files changed

+12
-12
lines changed

12 files changed

+12
-12
lines changed

modules/ami-housekeeper/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ resource "aws_cloudwatch_log_group" "ami_housekeeper" {
5555
}
5656

5757
resource "aws_iam_role" "ami_housekeeper" {
58-
name = "${var.prefix}-ami-housekeeper-role"
58+
name = substr("${var.prefix}-ami-housekeeper-role", 0, 63)
5959
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
6060
path = local.role_path
6161
permissions_boundary = var.role_permissions_boundary

modules/lambda/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ resource "aws_cloudwatch_log_group" "main" {
6060
}
6161

6262
resource "aws_iam_role" "main" {
63-
name = "${var.lambda.prefix}-${var.lambda.name}"
63+
name = substr("${var.lambda.prefix}-${var.lambda.name}", 0, 63)
6464
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
6565
path = local.role_path
6666
permissions_boundary = var.lambda.role_permissions_boundary

modules/runner-binaries-syncer/runner-binaries-syncer.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ resource "aws_lambda_function" "syncer" {
5858

5959
resource "aws_iam_role_policy" "lambda_kms" {
6060
count = try(var.server_side_encryption_configuration.rule.apply_server_side_encryption_by_default.kms_master_key_id, null) != null ? 1 : 0
61-
name = "${var.prefix}-lambda-kms-policy-syncer"
61+
name = substr("${var.prefix}-lambda-kms-policy-syncer", 0, 63)
6262
role = aws_iam_role.syncer_lambda.id
6363

6464
policy = templatefile("${path.module}/policies/lambda-kms.json", {

modules/runners/policies-runner.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
data "aws_caller_identity" "current" {}
22

33
resource "aws_iam_role" "runner" {
4-
name = "${var.prefix}-runner-role"
4+
name = substr("${var.prefix}-runner-role", 0, 63)
55
assume_role_policy = templatefile("${path.module}/policies/instance-role-trust-policy.json", {})
66
path = local.role_path
77
permissions_boundary = var.role_permissions_boundary

modules/runners/pool/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ resource "aws_cloudwatch_log_group" "pool" {
7474
}
7575

7676
resource "aws_iam_role" "pool" {
77-
name = "${var.config.prefix}-action-pool-lambda-role"
77+
name = substr("${var.config.prefix}-action-pool-lambda-role", 0, 63)
7878
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
7979
path = var.config.role_path
8080
permissions_boundary = var.config.role_permissions_boundary

modules/runners/scale-down.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ resource "aws_lambda_permission" "scale_down" {
8585
}
8686

8787
resource "aws_iam_role" "scale_down" {
88-
name = "${var.prefix}-action-scale-down-lambda-role"
88+
name = substr("${var.prefix}-action-scale-down-lambda-role", 0, 63)
8989
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
9090
path = local.role_path
9191
permissions_boundary = var.role_permissions_boundary

modules/runners/scale-up.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ resource "aws_lambda_permission" "scale_runners_lambda" {
101101
}
102102

103103
resource "aws_iam_role" "scale_up" {
104-
name = "${var.prefix}-action-scale-up-lambda-role"
104+
name = substr("${var.prefix}-action-scale-up-lambda-role", 0, 63)
105105
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
106106
path = local.role_path
107107
permissions_boundary = var.role_permissions_boundary

modules/runners/ssm-housekeeper.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ resource "aws_lambda_permission" "ssm_housekeeper" {
8383
}
8484

8585
resource "aws_iam_role" "ssm_housekeeper" {
86-
name = "${var.prefix}-ssm-hk-lambda"
86+
name = substr("${var.prefix}-ssm-hk-lambda", 0, 63)
8787
description = "Lambda role for SSM Housekeeper (${var.prefix})"
8888
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
8989
path = local.role_path

modules/setup-iam-permissions/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
data "aws_caller_identity" "current" {}
22

33
resource "aws_iam_role" "deploy" {
4-
name = "${var.prefix}-terraform"
4+
name = substr("${var.prefix}-terraform", 0, 63)
55

66
permissions_boundary = aws_iam_policy.deploy_boundary.arn
77
assume_role_policy = templatefile("${path.module}/policies/assume-role-for-account.json", {

modules/webhook/direct/webhook.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ data "aws_iam_policy_document" "lambda_assume_role_policy" {
9090
}
9191

9292
resource "aws_iam_role" "webhook_lambda" {
93-
name = "${var.config.prefix}-direct-webhook-lambda-role"
93+
name = substr("${var.config.prefix}-direct-webhook-lambda-role", 0, 63)
9494
assume_role_policy = data.aws_iam_policy_document.lambda_assume_role_policy.json
9595
path = var.config.role_path
9696
permissions_boundary = var.config.role_permissions_boundary

0 commit comments

Comments
 (0)