Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
cognito_user_pool_waf_acl_attachedProvider: AWS
Service:
cognitoSeverity: MEDIUM
Categories:
threat-detection, internet-exposedResource type:
AwsWafv2WebAclWhat this check verifies
Amazon Cognito user pools are evaluated for an association with an AWS WAFv2 web ACL that filters and controls requests to the hosted UI and public user pool API endpoints.Risk
Without a web ACL, Cognito endpoints lack layer-7 filtering, enabling:- Credential stuffing and account enumeration
- Bot abuse and high-rate requests degrading service
- Malicious payload probes
Recommendation
Associate an AWS WAFv2 web ACL with each user pool to enforce layer-7 controls. Use defense-in-depth: managed rule groups,rate-based limits, IP reputation, and bot mitigation. Enable request logging and continuously tune rules to reduce false positives. Avoid rule sets incompatible with Cognito endpoints.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws wafv2 associate-web-acl —web-acl-arn <WEB_ACL_ARN> —resource-arn <COGNITO_USER_POOL_ARN>
References
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = cognito_user_pool_waf_acl_attached. 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