Lambda function is publicly invocable
- Severity
- Medium
- Service
- Lambda
- Check ID
- LAMBDA_PUBLIC
What this check finds
Lambdas should not be publicly callable. Other resources such as an API Gateway should be used to call the Lambda.
Passing looks like: Lambda not internet accessible.
How to fix it
Remove the public resource-based policy from the Lambda function.
AWS CLI
aws lambda get-policy --function-name FUNCTION_NAMEThen remove the public statement:
aws lambda remove-permission --function-name FUNCTION_NAME --statement-id STATEMENT_IDUse API Gateway or an ALB as the public endpoint instead.
Names in capitals are placeholders for your own resource. Review a command before you run it.
Compliance controls it is evidence for
A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works
| Framework | Controls |
|---|---|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
Checked on every scan
KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs
More Lambda checks
- HighLambda function is using a deprecated or end-of-life runtime
- HighLambda function URL is publicly invocable without authentication
- LowLambda function has no resource-based policy
- LowLambda function has zero invocations in the past 30 days
- LowLambda function memory utilization below 25% of configured limit