Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
apigatewayv2_api_authorizers_enabledProvider: AWS
Service:
apigatewayv2Severity: MEDIUM
Categories:
identity-accessResource type:
AwsApiGatewayV2ApiWhat this check verifies
API Gateway v2 APIs use authorizers (JWT/Cognito or Lambda) to authenticate requests. This evaluates whether an API has an authorizer configured to control access to its routes.Risk
Without an authorizer, anyone can invoke routes.- Confidentiality: exposure of data and metadata
- Integrity: unauthorized state changes or actions
- Availability/Cost: automated abuse of backends, traffic spikes, and unexpected spend
Recommendation
Enable an authorizer (JWT/Cognito or Lambda) so only authenticated principals can invoke routes.- Enforce least privilege with scopes/claims or policy decisions
- Apply defense in depth with resource policies, throttling, and WAF
- Avoid public routes unless explicitly required
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws apigatewayv2 create-authorizer —api-id <API_ID> —authorizer-type REQUEST —name <example_resource_name> —authorizer-uri arn:aws:apigateway:<REGION>:lambda:path/2015-03-31/functions/<LAMBDA_FUNCTION_ARN>/invocations —identity-source ‘$request.header.Authorization’
References
- https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html
- https://support.icompaas.com/support/solutions/articles/62000127114-ensure-api-gateway-has-configured-authorizers
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = apigatewayv2_api_authorizers_enabled. 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