Control: 1.11 Do not create access keys during initial setup for IAM users with a console password
Description
AWS console defaults to no check boxes selected when creating a new IAM user. When creating the IAM User credentials you have to determine what type of access they require.
Programmatic access: The IAM user might need to make API calls, use the AWS CLI, or use the Tools for Windows PowerShell. In that case, create an access key (access key ID and a secret access key) for that user.
AWS Management Console access: If the user needs to access the AWS Management Console, create a password for the user.
Requiring the additional steps be taken by the user for programmatic access after their profile has been created will give a stronger indication of intent that access keys are [a] necessary for their work and [b] once the access key is established on an account that the keys may be in use somewhere in the organization.
Note: Even if it is known the user will need access keys, require them to create the keys themselves or put in a support ticket to have them created as a separate step from user creation.
Remediation
Perform the following to delete access keys that do not pass the audit:
From Console:
- Log into the AWS Management Console:
- Click
Services
. - Click
IAM
. - Click on
Users
. - Click on
Security Credentials
. - As an Administrator
- Click on the X (
Delete
) for keys that were created at the same time as the user profile but have not been used.
- As an IAM User
- Click on the X (
Delete
) for keys that were created at the same time as the user profile but have not been used.
From Command Line:
aws iam delete-access-key --access-key-id <access-key-id-listed> --user-name <users-name>
Usage
Run the control in your terminal:
powerpipe control run aws_compliance.control.cis_v400_1_11
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run aws_compliance.control.cis_v400_1_11 --share
SQL
This control uses a named query:
iam_user_access_keys_and_password_at_setup