Profile Applicability:
- Level 1
Description:
Amazon Cognito provides authentication, authorization, and user management services for applications. Password policies for Cognito user pools define the rules for creating secure passwords. Requiring at least one lowercase letter in user passwords is an important aspect of ensuring strong password policies and enhancing security. This SOP ensures that the Cognito user pool password policy requires at least one lowercase letter in every user's password.
Rationale:
Security: Requiring at least one lowercase letter helps prevent users from choosing simple or predictable passwords, thereby increasing the overall password complexity and reducing the risk of unauthorized access.
Compliance: Many security and compliance frameworks (e.g., SOC 2, HIPAA, PCI-DSS) require strong password policies that include the use of lowercase letters as part of a broader set of password complexity rules.
Best Practices: Requiring lowercase letters, along with other character types (numbers, symbols), adheres to security best practices for password strength.
Impact:
Pros:
Enhanced Security: Password complexity increases with the requirement for at least one lowercase letter, making it harder for attackers to guess or crack passwords.
Compliance: Ensures the user pool complies with strong password policies for regulatory and security frameworks.
Preventing Weak Passwords: Reduces the chance of users selecting weak, easily guessable passwords.
Cons:
User Frustration: Some users may find complex password requirements inconvenient, especially if they are not familiar with how to create strong passwords.
Support Overhead: May increase the need for password reset requests from users who have difficulty complying with the policy.
Default Value:
By default, Cognito User Pools do not enforce the use of a lowercase letter in the password policy. The requirement must be explicitly added to the password policy.
Pre-requisite:
AWS IAM Permissions:
cognito-idp:DescribeUserPool
cognito-idp:UpdateUserPool
AWS CLI installed and configured.
Cognito User Pool created and operational.
Test Plan:
Using AWS Console:
Sign in to the AWS Management Console.
Navigate to Amazon Cognito under Services.
Select User Pools and choose the user pool you want to check.
Under General settings, select Password policy.
Ensure that the Require at least one lowercase letter option is selected.
If the option is selected, the password policy will enforce the use of lowercase letters.
If the option is not selected, proceed to enable it as per the Implementation Steps below.
Using AWS CLI:
To describe the Cognito user pool and check the password policy, run:
aws cognito-idp describe-user-pool --user-pool-id <user-pool-id> --query 'UserPool.Policies.PasswordPolicy'
Verify that the RequireLowercase field is set to true:
{ "MinimumLength": 8, "RequireUppercase": true, "RequireLowercase": true, "RequireNumbers": true, "RequireSymbols": true }
If RequireLowercase is false, follow the Implementation Steps to enable the requirement.
Implementation Steps:
Using AWS Console:
Sign in to the AWS Management Console and navigate to Amazon Cognito.
In the Cognito Console, select User Pools and choose the user pool you want to update.
Under General settings, select Password policy.
Enable the Require at least one lowercase letter checkbox.
Save the changes to enforce the updated password policy.
Using AWS CLI:
To update the user pool password policy and require at least one lowercase letter, run the following command:
aws cognito-idp update-user-pool --user-pool-id <user-pool-id> --policies '{"PasswordPolicy": {"RequireLowercase": true}}'
Verify the change by running:
aws cognito-idp describe-user-pool --user-pool-id <user-pool-id> --query 'UserPool.Policies.PasswordPolicy.RequireLowercase'
Ensure that the output shows true for RequireLowercase.
Backout Plan:
Using AWS Console:
If the password policy changes cause issues, navigate to the User Pool in the AWS Cognito Console.
Under General Settings, go to Policies.
Deselect Require at least one lowercase letter.
Save the changes.
Using AWS CLI:
To disable the requirement for at least one lowercase letter, run the following command:
aws cognito-idp update-user-pool --user-pool-id <USER_POOL_ID> --password-policy "MinLowercase=0,MinimumLength=8,RequireUppercase=true,RequireNumbers=true" --region <REGION>
Verify the changes:
aws cognito-idp describe-user-pool --user-pool-id <USER_POOL_ID> --region <REGION>