Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
cloudwatch_log_metric_filter_sign_in_without_mfaProvider: AWS
Service:
cloudwatchSeverity: MEDIUM
Categories:
loggingResource type:
AwsCloudWatchAlarmWhat this check verifies
CloudTrail logs in CloudWatch are assessed for a metric filter and alarm that detect console logins where$.eventName = ConsoleLogin and $.additionalEventData.MFAUsed != \"Yes\".
This reflects whether alerting exists for sign-ins that occur without MFA.
Risk
Without alerting on non-MFA console logins, successful use of stolen passwords can go undetected, enabling:- Unauthorized console access and IAM changes
- Data exfiltration or deletion
Recommendation
Enforce MFA for all console-capable identities and maintain alerts forConsoleLogin with MFAUsed != \"Yes\".
Apply least privilege, route alarms to monitored channels, and tune for SSO to reduce noise. Test alarms regularly and review coverage as part of defense in depth.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/CloudWatchLogs/console-sign-in-without-mfa.html
- https://www.tenable.com/audits/items/CIS_Amazon_Web_Services_Foundations_v3.0.0_L1.audit:1957056ee174cc38502d5f5f1864333b
- https://www.clouddefense.ai/compliance-rules/gdpr/data-protection/log-metric-filter-console-login-mfa
- https://www.intelligentdiscovery.io/controls/cloudwatch/cloudwatch-alarm-no-mfa
- https://support.icompaas.com/support/solutions/articles/62000083605-ensure-a-log-metric-filter-and-alarm-exist-for-management-console-sign-in-without-mfa
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = cloudwatch_log_metric_filter_sign_in_without_mfa. 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