turbot/steampipe-mod-aws-compliance

Control: 1.5 Ensure IAM password policy requires at least one uppercase letter

Description

Password policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure password are comprised of different character sets. It is recommended that the password policy require at least one uppercase letter.

Setting a password complexity policy increases account resiliency against brute force login attempts.

Remediation

Perform the following to set the password policy as prescribed:

Via AWS Console

  1. Login to AWS Console (with appropriate permissions to View Identity Access Management Account Settings).
  2. Go to IAM Service on the AWS Console.
  3. Click on Account Settings on the Left Pane.
  4. Check "Requires at least one uppercase letter".
  5. Click "Apply password policy".

Via CLI

aws iam update-account-password-policy --require-uppercase-characters

Note: All commands starting with "aws iam update-account-password-policy" can be combined into a single command.

Usage

Run the control in your terminal:

powerpipe control run aws_compliance.control.cis_v120_1_5

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run aws_compliance.control.cis_v120_1_5 --share

SQL

This control uses a named query:

select
'arn:' || a.partition || ':::' || a.account_id as resource,
case
when require_uppercase_characters then 'ok'
else 'alarm'
end as status,
case
when minimum_password_length is null then 'No password policy set.'
when require_uppercase_characters then 'Uppercase character required.'
else 'Uppercase character not required.'
end as reason
, a.account_id
from
aws_account as a
left join aws_iam_account_password_policy as pol on a.account_id = pol.account_id;

Tags