Description
Ensure that the AWS account's IAM password policy requires IAM user passwords to be at least 14 characters long. The password policy applies to all IAM users who sign in to the AWS Management Console with a password.
Rationale
Short passwords are easier to guess and crack through brute-force and credential stuffing attacks. A compromised IAM user password gives an attacker console access to the account, allowing unauthorized changes, data exposure and movement to other resources. Requiring a minimum length of 14 characters greatly increases the number of possible passwords and makes these attacks much harder.
Impact
Strengthens IAM user passwords against brute-force and password-guessing attacks
Existing passwords are not changed immediately; the new length applies the next time each user creates or changes their password
Users must choose longer passwords, which may require communicating the change to them in advance
Default Value
No custom password policy is set by default. Without a custom policy, AWS applies its default rules, which require a minimum password length of 8 characters.
Pre-Requisites
IAM permissions: iam:GetAccountPasswordPolicy and iam:UpdateAccountPasswordPolicy
Agreement on the other password policy settings to keep (for example, character types, password reuse and expiration), because updating the policy replaces all of its settings
Remediation
Test Plan
Console:
Sign in to the AWS Management Console at https://console.aws.amazon.com.
Open the IAM console and select Account settings in the left menu.
In the Password policy section, check the value of Password minimum length.
If no custom password policy is set, or the minimum length is less than 14, follow the implementation steps.
CLI:
Show the current password policy:
aws iam get-account-password-policy
The account fails if MinimumPasswordLength is less than 14, or if the command returns a NoSuchEntity error (no custom policy is set, so the AWS default of 8 characters applies).
Implementation Steps
Console:
Sign in to the AWS Management Console at https://console.aws.amazon.com.
Open the IAM console and select Account settings in the left menu.
In the Password policy section, choose Edit.
Select Custom (if the default policy is in use).
Set Password minimum length to 14 or greater.
Leave the other password settings as they are, unless they also need to be changed.
Choose Save changes.
CLI:
Set the minimum password length to 14:
aws iam update-account-password-policy --minimum-password-length 14
This command replaces the whole password policy, and any setting not included reverts to its default. To keep the existing settings, add the matching options from the Test Plan output, for example:
aws iam update-account-password-policy --minimum-password-length 14 --require-uppercase-characters --require-lowercase-characters --require-numbers --require-symbols --allow-users-to-change-password --password-reuse-prevention 24 --max-password-age 90
Backout Plan
Before making changes, save the current password policy:
aws iam get-account-password-policy > password-policy-backup.json
To roll back:
Sign in to the AWS Management Console at https://console.aws.amazon.com.
Open the IAM console and select Account settings in the left menu.
In the Password policy section, choose Edit.
Set Password minimum length and the other settings back to the values in the saved backup. If no custom policy existed before, select IAM default instead.
Choose Save changes.
Note: rolling back allows shorter, weaker passwords again. Use it only as a temporary measure.
Reference