Skip to main content

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.

info

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​

  1. 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
  2. Pipe the search command into the dump 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: 2mo28d

    The 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.
note

Please refer to the AWS IAM documentation for details.

Further Reading​