lacework-global-69
Enable hardware Multi-Factor Authentication (MFA) for the 'root' user account (Manual)
This rule has been changed to manual, see Adjusted Rules for CIS AWS 1.4.0 for details.
Profile Applicability
• Level 2
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 must provide their user name and password as well as an authentication code from their AWS MFA device. For Level 2, best practices recommend protecting the 'root' user account 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.
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.
Audit
Perform the following to determine if the 'root' user account has a hardware MFA setup:
- Run the following command to determine if the 'root' account has 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.
- If
AccountMFAEnabled
property is set to1
, determine 'root' account has Hardware MFA enabled. Run the following command to list all virtual MFA devices:
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::<aws_account_number>:mfa/root-account-mfa-device"
Remediation
Perform the following to establish a hardware MFA for the 'root' user account:
- Sign in to the AWS Management Console and open the Identity and Access Management (IAM) console at https://console.aws.amazon.com/iam/.note
To manage MFA devices for the AWS 'root' user account, you must use your 'root' account credentials to sign in to AWS. You cannot manage MFA devices for the 'root' account using other credentials.
- Choose
Dashboard
, and underSecurity Status
, expandActivate MFA
on your root account. - Choose
Activate MFA
. - In the wizard, choose
A hardware MFA
device and then chooseNext Step
. - In the
Serial Number
box, enter the serial number found on the back of the MFA device. - In the
Authentication Code 1
box, enter the six-digit number displayed by the MFA device. You might need to press the button on the front of the device to display the number. - Wait 30 seconds while the device refreshes the code, and then enter the next six-digit number into the
Authentication Code 2
box. You might need to press the button on the front of the device again to display the second number. - Choose
Next Step
. The MFA device is now associated with the AWS account. The next time you use your AWS account credentials to sign in, you must type a code from the hardware MFA device.
Remediation for this recommendation is not available through AWS CLI.
References
CCE-78911-5
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_physical.html#enable-hw-mfa-for-root
https://docs.aws.amazon.com/securityhub/latest/userguide/iam-controls.html#iam-6
Additional Information
IAM User account 'root' for us-gov cloud regions does not have console access. This control is not applicable for us-gov cloud regions.