How to Find AWS Account Root Users Without Hardware MFA Enabled
The root account is the most privileged user in an AWS account. Multi-factor authentication (MFA) adds an extra layer of protection on top of a username and password.
When MFA is enabled, a user is prompted for an authentication code from their configured MFA device in addition to their username and password.
For Level 2, it is recommended that the root account be protected with hardware MFA.
This security check is part of the CIS Amazon Web Services Benchmarks and is rated severity critical.
Prerequisites​
This guide assumes that you have already installed and configured Fix Inventory to collect your AWS resources.
Directions​
-
Execute the following
search
command in Fix Inventory Shell:> search is(aws_root_user) and user_virtual_mfa_devices!=null and user_virtual_mfa_devices!=[]
​kind=aws_root_user, ..., region=fixinventory-poweruser
​kind=aws_root_user, ..., account=poweruser-team -
Pipe the
search
command into thedump
command:> search is(aws_root_user) and user_virtual_mfa_devices!=null and user_virtual_mfa_devices!=[] | dump
​reported:
​ id: /aws/iam/123
​ name: some-name
​ ctime: '2022-12-05T22:53:14Z'
​ kind: aws_root_user
​ age: 2mo28dThe command output will list the details of all non-compliant
aws_root_user
resources.
Remediation​
- Go to IAM console.
- Navigate to Dashboard.
- Activate MFA on your root account.
Please refer to the AWS IAM documentation for details.