Description:
The root user account is the most privileged user in an AWS account. MFA adds an extra layer of protection on top of a user name and password. With MFA enabled, when a user signs in to an AWS website, they will be prompted for their user name and password as well as for an authentication code from their AWS MFA device. For Level 2, it is recommended that the root user account be protected with a hardware MFA.
Rationale:
A hardware MFA has a smaller attack surface than a virtual MFA. For example, a hardware MFA does not suffer the attack surface introduced by the mobile smartphone on which a virtual MFA resides.
Note: Using hardware MFA for many, many AWS accounts may create a logistical device management issue. If this is the case, consider implementing this Level 2 recommendation selectively to the highest security AWS accounts and the Level 1 recommendation applied to the remaining accounts.
Perform the following to establish a hardware MFA for the root user account:
Remediation for this recommendation is not available through AWS CLI.
Perform the following to determine if the root user account has a hardware MFA setup:
aws iam get-account-summary | grep "AccountMFAEnabled"
The 'AccountMFAEnabled' property is set to '1' will ensure that the root user account has MFA (Virtual or Hardware) Enabled.
If 'AccountMFAEnabled' property is set to '0' the account is not compliant with this recommendation.
aws iam list-virtual-mfa-devices
If the output contains one MFA with the following Serial Number, it means the MFA is virtual, not hardware and the account is not compliant with this recommendation:
'"SerialNumber": "arn:aws:iam:::mfa/root-account-mfa-device"'.