Skip to main content

More Info:

MFA must be enabled on user accounts. AWS recommends that you configure multi-factor authentication (MFA) to help protect your AWS resources.

Risk Level

Critical

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • AWS Startup Security Baseline
  • AWS Well Architected Framework
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS AWS
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • Cloudanix Best Practice
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • GDPR
  • HIPAA
  • ISO 27001
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • PCI
  • Reserve Bank of India (RBI) Master Direction – Information Technology Framework
  • SOC2
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • Securities and Exchange Board of India (SEBI) - Cloud Security Adoption Framework
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

How to Prevent

Using Console

To prevent the misconfiguration of not having Multi-Factor Authentication (MFA) enabled on user accounts in AWS Identity and Access Management (IAM) using the AWS Management Console, follow these steps:
  1. Navigate to IAM Dashboard:
    • Sign in to the AWS Management Console.
    • In the top navigation bar, select “Services” and then choose “IAM” under the “Security, Identity, & Compliance” section.
  2. Select Users:
    • In the IAM dashboard, click on “Users” in the left-hand navigation pane.
    • This will display a list of all IAM users in your AWS account.
  3. Enable MFA for Each User:
    • Click on the username of the user for whom you want to enable MFA.
    • In the user details page, select the “Security credentials” tab.
    • Under the “Multi-factor authentication (MFA)” section, click on the “Manage” button.
    • Follow the on-screen instructions to assign and activate an MFA device for the user. This typically involves scanning a QR code with an MFA app (like Google Authenticator) and entering the generated code to verify.
  4. Enforce MFA Policy:
    • To ensure that all users have MFA enabled, you can create an IAM policy that requires MFA for specific actions.
    • Go to the “Policies” section in the IAM dashboard.
    • Click on “Create policy” and use the JSON editor to define a policy that requires MFA. For example:
    • Attach this policy to all IAM users or groups to enforce MFA.
By following these steps, you can ensure that MFA is enabled for all IAM user accounts, thereby enhancing the security of your AWS environment.
To prevent the misconfiguration of not having Multi-Factor Authentication (MFA) enabled on user accounts in AWS IAM using the AWS CLI, follow these steps:
  1. Create an MFA Device for the User: First, you need to create an MFA device for the user. This can be a virtual MFA device or a hardware MFA device. Here, we’ll use a virtual MFA device.
    This command will create a virtual MFA device and output a QR code that can be scanned by an MFA application (like Google Authenticator).
  2. Enable MFA for the User: Once the virtual MFA device is created, you need to enable it for the user by associating it with the user account. You will need two consecutive MFA codes from the MFA device.
  3. Update User’s Login Profile to Require MFA: Ensure that the user’s login profile is updated to require MFA. This can be done by setting up an IAM policy that enforces MFA.
  4. Verify MFA Device Association: Finally, verify that the MFA device is correctly associated with the user.
    This command will list all MFA devices associated with the specified user, allowing you to confirm that the MFA device is properly set up.
By following these steps, you can ensure that MFA is enabled on user accounts in AWS IAM using the AWS CLI.
To prevent the misconfiguration of not having Multi-Factor Authentication (MFA) enabled on user accounts in IAM using Python scripts, you can follow these steps for AWS, Azure, and GCP:

AWS

  1. Install Boto3 Library: Ensure you have the Boto3 library installed, which is the AWS SDK for Python.
  2. Create a Python Script to Enable MFA: Use the following script to enforce MFA on IAM user accounts. This script lists all users and attaches an MFA device to each user if not already attached.

Azure

  1. Install Azure SDK for Python: Ensure you have the Azure Identity and Management libraries installed.
  2. Create a Python Script to Enforce MFA: Use the following script to enforce MFA on Azure user accounts. This script assumes you have the necessary permissions to manage user settings.

GCP

  1. Install Google Cloud SDK: Ensure you have the Google Cloud SDK installed.
  2. Create a Python Script to Enforce MFA: Use the following script to enforce MFA on GCP user accounts. This script assumes you have the necessary permissions to manage user settings.
These scripts provide a basic framework to enforce MFA on user accounts in AWS, Azure, and GCP. You may need to adjust the scripts based on your specific requirements and environment.

Additional Reading: