Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
awslambda_function_url_publicProvider: AWS
Service:
awslambdaSeverity: HIGH
Categories:
internet-exposedResource type:
AwsLambdaFunctionWhat this check verifies
AWS Lambda function URLs are assessed to determine whetherAuthType enforces AWS IAM authentication or permits public invocation.
Applies to functions with a function URL and highlights when requests must be authenticated and authorized via IAM principals.
Risk
An unauthenticated function URL lets anyone invoke code:- Confidentiality: data exposure
- Integrity: unintended changes via over-privileged logic
- Availability: DoS/denial-of-wallet through high request rates
Recommendation
EnforceAWS_IAM on function URLs and apply least privilege:
- Grant
lambda:InvokeFunctionUrlonly to required principals - Avoid
*principals or broad conditions - Limit CORS to trusted origins and methods
- Set reserved concurrency to contain abuse
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws lambda update-function-url-config —function-name <FUNCTION_NAME> —auth-type AWS_IAM
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/Lambda/iam-auth-function-url.html
- https://www.roastdev.com/post/aws-lambda-url-invocations-with-iam-authentication-and-throttling-limits
- https://docs.aws.amazon.com/secretsmanager/latest/userguide/lambda-functions.html
- https://dev.to/aws-builders/hands-on-aws-lambda-function-url-with-aws-iam-authentication-type-180g
- https://www.rahulpnath.com/blog/how-to-secure-and-authenticate-lambda-function-urls/
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = awslambda_function_url_public. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks