Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cdcd24a

Browse files
authored
r/aws_lambda_permission(test): scope down invoke function url permissions (#43975)
Previously the `_FunctionURLs` acceptance test configurations granted permissions to a wildcard (`*`) principal. The permissions have been scoped down to an individual IAM role for least privileged access instead. ```console % make testacc PKG=lambda TESTS=TestAccLambdaPermission_FunctionURLs make: Verifying source code with gofmt... ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.24.6 test ./internal/service/lambda/... -v -count 1 -parallel 20 -run='TestAccLambdaPermission_FunctionURLs' -timeout 360m -vet=off 2025/08/20 19:57:29 Creating Terraform AWS Provider (SDKv2-style)... 2025/08/20 19:57:29 Initializing Terraform AWS Provider (SDKv2-style)... --- PASS: TestAccLambdaPermission_FunctionURLs_none (30.39s) --- PASS: TestAccLambdaPermission_FunctionURLs_iam (36.38s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/lambda 43.043s ```
1 parent 9163339 commit cdcd24a

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

internal/service/lambda/permission_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,7 @@ func TestAccLambdaPermission_FunctionURLs_iam(t *testing.T) {
644644

645645
resourceName := "aws_lambda_permission.test"
646646
functionResourceName := "aws_lambda_function.test"
647+
roleResourceName := "aws_iam_role.test"
647648

648649
resource.ParallelTest(t, resource.TestCase{
649650
PreCheck: func() { acctest.PreCheck(ctx, t) },
@@ -656,7 +657,7 @@ func TestAccLambdaPermission_FunctionURLs_iam(t *testing.T) {
656657
Check: resource.ComposeTestCheckFunc(
657658
testAccCheckPermissionExists(ctx, resourceName, &statement),
658659
resource.TestCheckResourceAttr(resourceName, names.AttrAction, "lambda:InvokeFunctionUrl"),
659-
resource.TestCheckResourceAttr(resourceName, names.AttrPrincipal, "*"),
660+
resource.TestCheckResourceAttrPair(resourceName, names.AttrPrincipal, roleResourceName, names.AttrARN),
660661
resource.TestCheckResourceAttr(resourceName, "statement_id", "AllowExecutionWithIAM"),
661662
resource.TestCheckResourceAttr(resourceName, "qualifier", ""),
662663
resource.TestCheckResourceAttrPair(resourceName, "function_name", functionResourceName, "function_name"),
@@ -680,6 +681,7 @@ func TestAccLambdaPermission_FunctionURLs_none(t *testing.T) {
680681

681682
resourceName := "aws_lambda_permission.test"
682683
functionResourceName := "aws_lambda_function.test"
684+
roleResourceName := "aws_iam_role.test"
683685

684686
resource.ParallelTest(t, resource.TestCase{
685687
PreCheck: func() { acctest.PreCheck(ctx, t) },
@@ -692,7 +694,7 @@ func TestAccLambdaPermission_FunctionURLs_none(t *testing.T) {
692694
Check: resource.ComposeTestCheckFunc(
693695
testAccCheckPermissionExists(ctx, resourceName, &statement),
694696
resource.TestCheckResourceAttr(resourceName, names.AttrAction, "lambda:InvokeFunctionUrl"),
695-
resource.TestCheckResourceAttr(resourceName, names.AttrPrincipal, "*"),
697+
resource.TestCheckResourceAttrPair(resourceName, names.AttrPrincipal, roleResourceName, names.AttrARN),
696698
resource.TestCheckResourceAttr(resourceName, "statement_id", "AllowExecutionFromWithoutAuth"),
697699
resource.TestCheckResourceAttr(resourceName, "qualifier", ""),
698700
resource.TestCheckResourceAttrPair(resourceName, "function_name", functionResourceName, "function_name"),
@@ -1060,7 +1062,7 @@ resource "aws_lambda_permission" "test" {
10601062
statement_id = "AllowExecutionWithIAM"
10611063
action = "lambda:InvokeFunctionUrl"
10621064
function_name = aws_lambda_function.test.function_name
1063-
principal = "*"
1065+
principal = aws_iam_role.test.arn
10641066
function_url_auth_type = "AWS_IAM"
10651067
}
10661068
`)
@@ -1072,7 +1074,7 @@ resource "aws_lambda_permission" "test" {
10721074
statement_id = "AllowExecutionFromWithoutAuth"
10731075
action = "lambda:InvokeFunctionUrl"
10741076
function_name = aws_lambda_function.test.function_name
1075-
principal = "*"
1077+
principal = aws_iam_role.test.arn
10761078
function_url_auth_type = "NONE"
10771079
}
10781080
`)

0 commit comments

Comments
 (0)