Skip to content
This repository was archived by the owner on Jan 16, 2025. It is now read-only.

Commit fb72ee8

Browse files
fix: added permissions for lambda to attach lambda to the VPC. (#2734)
* fix: added permissions for lambda to attach lambda to the VPC. * fix: formatting. * fix: create the policy conditionally. * fix: updated as per review comments. Co-authored-by: navdeepg2021 <[email protected]>
1 parent aaca516 commit fb72ee8

File tree

7 files changed

+61
-0
lines changed

7 files changed

+61
-0
lines changed
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": [
7+
"ec2:CreateNetworkInterface",
8+
"ec2:DescribeNetworkInterfaces",
9+
"ec2:DeleteNetworkInterface"
10+
],
11+
"Resource": "*"
12+
}
13+
]
14+
}

Diff for: modules/runner-binaries-syncer/runner-binaries-syncer.tf

+8
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,14 @@ resource "aws_iam_role_policy" "lambda_logging" {
100100
})
101101
}
102102

103+
resource "aws_iam_role_policy" "lambda_syncer_vpc" {
104+
count = length(var.lambda_subnet_ids) > 0 && length(var.lambda_security_group_ids) > 0 ? 1 : 0
105+
name = "${var.prefix}-lambda-syncer-vpc"
106+
role = aws_iam_role.syncer_lambda.id
107+
108+
policy = file("${path.module}/policies/lambda-vpc.json")
109+
}
110+
103111
resource "aws_iam_role_policy" "syncer" {
104112
name = "${var.prefix}-lambda-syncer-s3-policy"
105113
role = aws_iam_role.syncer_lambda.id

Diff for: modules/runners/policies/lambda-vpc.json

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": [
7+
"ec2:CreateNetworkInterface",
8+
"ec2:DescribeNetworkInterfaces",
9+
"ec2:DeleteNetworkInterface"
10+
],
11+
"Resource": "*"
12+
}
13+
]
14+
}

Diff for: modules/runners/pool/main.tf

+8
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ resource "aws_iam_role_policy" "pool_logging" {
8181
})
8282
}
8383

84+
resource "aws_iam_role_policy" "lambda_pool_vpc" {
85+
count = length(var.config.lambda.subnet_ids) > 0 && length(var.config.lambda.security_group_ids) > 0 ? 1 : 0
86+
name = "${var.config.prefix}-lambda-pool-vpc"
87+
role = aws_iam_role.pool.id
88+
89+
policy = file("${path.module}/../policies/lambda-vpc.json")
90+
}
91+
8492
resource "aws_iam_role_policy_attachment" "pool_vpc_execution_role" {
8593
count = length(var.config.lambda.subnet_ids) > 0 ? 1 : 0
8694
role = aws_iam_role.pool.name

Diff for: modules/runners/scale-down.tf

+8
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ resource "aws_iam_role_policy" "scale_down_logging" {
9696
})
9797
}
9898

99+
resource "aws_iam_role_policy" "lambda_scale_down_vpc" {
100+
count = length(var.lambda_subnet_ids) > 0 && length(var.lambda_security_group_ids) > 0 ? 1 : 0
101+
name = "${var.prefix}-lambda-scale-down-vpc"
102+
role = aws_iam_role.scale_down.id
103+
104+
policy = file("${path.module}/policies/lambda-vpc.json")
105+
}
106+
99107
resource "aws_iam_role_policy_attachment" "scale_down_vpc_execution_role" {
100108
count = length(var.lambda_subnet_ids) > 0 ? 1 : 0
101109
role = aws_iam_role.scale_down.name

Diff for: modules/runners/scale-up.tf

+8
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ resource "aws_iam_role_policy" "service_linked_role" {
106106
policy = templatefile("${path.module}/policies/service-linked-role-create-policy.json", { aws_partition = var.aws_partition })
107107
}
108108

109+
resource "aws_iam_role_policy" "lambda_scale_up_vpc" {
110+
count = length(var.lambda_subnet_ids) > 0 && length(var.lambda_security_group_ids) > 0 ? 1 : 0
111+
name = "${var.prefix}-lambda-scale-up-vpc"
112+
role = aws_iam_role.scale_up.id
113+
114+
policy = file("${path.module}/policies/lambda-vpc.json")
115+
}
116+
109117
resource "aws_iam_role_policy_attachment" "scale_up_vpc_execution_role" {
110118
count = length(var.lambda_subnet_ids) > 0 ? 1 : 0
111119
role = aws_iam_role.scale_up.name

Diff for: modules/webhook/webhook.tf

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ resource "aws_iam_role_policy" "webhook_sqs" {
7979
sqs_resource_arn = var.sqs_build_queue.arn
8080
})
8181
}
82+
8283
resource "aws_iam_role_policy" "webhook_workflow_job_sqs" {
8384
count = var.sqs_workflow_job_queue != null ? 1 : 0
8485
name = "${var.prefix}-lambda-webhook-publish-workflow-job-sqs-policy"

0 commit comments

Comments
 (0)