Overview
The root 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 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.
Link to order AWS compatible hardware MFA device: http://onlinenoram.gemalto.com/
Remediation guidance
Perform the following to establish a hardware MFA for the root account:
- Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam/.
Note: to manage MFA devices for the root AWS 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 MFAon your root account. - Choose
Activate MFA - In the wizard, choose
A hardware MFAdevice and then chooseNext Step. - In the
Serial Numberbox, enter the serial number that is found on the back of the MFA device. - In the
Authentication Code 1box, 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 2box. 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.
References
- CCE-78911-5
- CIS CSC v6.0 #5.6, #11.4, #12.6, #16.11
- Order Hardware MFA: http://onlinenoram.gemalto.com/
- 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
Notes
added the CLI for audit based on the output of 'aws iam list-virtual-mfa-devices' Remediation should be only through the AWS Console.
Service-wide remediation
Recommended when many resources are affected: fix the platform baseline first so new resources inherit the secure setting, then remediate the existing flagged resources in batches.
AWS
Use AWS Organizations guardrails, AWS Config rules or conformance packs where they fit, approved account baselines, and IaC modules so new resources inherit the secure setting.
Operational rollout
- Fix the baseline first at the account, subscription, project, cluster, or tenant scope that owns this control.
- Remediate the currently affected resources in batches, starting with internet-exposed and production assets.
- Re-scan and track approved exceptions with an owner and expiry date.
Query logic
These are the stored checks tied to this control.
Hardware MFA is enabled for the "root" account (Hardware MFA)
Connectors
Covered asset types
Expected check: eq []
AWSIAM14{...AssetFragment}
AWS