Cloud Defense Logo

Products

Solutions

Company

Book A Live Demo

Ensure Only One Active Access Key - Rule

This rule ensures there is only one active access key available for any single IAM user.

RuleEnsure there is only one active access key available for any single IAM user
Frameworkcis_v140
Severity
Low

Ensure There Is Only One Active Access Key Available for Any Single IAM User for CIS v1.4.0

Background

The Center for Internet Security (CIS) AWS Foundations Benchmark v1.4.0 recommends that IAM users should have only one active access key at a time. This practice helps to limit risks associated with key rotation and accidental exposure. Access keys are used for programmatic access to AWS services and should be managed carefully to ensure the security of your AWS environment.

Rule Description

Each IAM user must be limited to one active access key. Limiting the number of access keys minimizes the chances of an access key being lost, misused, or compromised. Additionally, it simplifies the process of key rotation, as there are fewer keys to manage.

Troubleshooting & Remediation Steps

Detect Multiple Access Keys

To identify IAM users with multiple active access keys, you can use the AWS Management Console, AWS CLI, or AWS SDKs.

Using AWS CLI:

aws iam list-users --output text --query 'Users[*].[UserName]' | tr "\t" "\n" | while read -r user; do
    ACTIVE_KEYS=$(aws iam list-access-keys --user-name "$user" --output text --query 'AccessKeyMetadata[?Status==`Active`].AccessKeyId' | wc -l)
    if [ "$ACTIVE_KEYS" -gt 1 ]; then
        echo "User $user has $ACTIVE_KEYS active access keys."
    fi
done

This command lists all users, checks the number of active access keys for each user, and prints a message for users with more than one active access key.

Remediation

If multiple active keys are found for a user, the oldest key(s) should typically be deactivated or deleted:

Deactivate an Access Key:

aws iam update-access-key --access-key-id [ACCESS_KEY_ID] --user-name [USER_NAME] --status Inactive

Replace

[ACCESS_KEY_ID]
with the actual access key ID and
[USER_NAME]
with the IAM user's name.

Delete an Access Key:

aws iam delete-access-key --access-key-id [ACCESS_KEY_ID] --user-name [USER_NAME]

Replace

[ACCESS_KEY_ID]
with the actual access key ID and
[USER_NAME]
with the IAM user's name.

Note: Before deactivating or deleting any keys, ensure that they are not in use or needed for any applications or automated processes.

Key Rotation

To avoid downtime, it is vital to follow a key rotation process:

  1. 1.
    Create a new access key for the IAM user.
  2. 2.
    Update all applications and services with the new access key.
  3. 3.
    Verify that the new key is working as expected.
  4. 4.
    Deactivate or delete the old access key following the aforementioned CLI commands.

Compliance Audit

Perform regular audits to ensure compliance with this policy. You can set up automated monitoring using AWS Config or a custom lambda function to trigger alerts or actions when multiple access keys are detected.

SEO-Friendly and SEO-Acceleration Considerations

The provided information is structured to be concise, thorough, and target key phrases relevant to the CIS AWS Foundations Benchmark, IAM user best practices, AWS access key management, and AWS CLI commands. The steps and commands are useful for anyone searching for a guide to enforce or verify the one-access-key-per-IAM-user rule, thus driving traffic from search engines from individuals looking to enhance their AWS security posture. The text avoids fluff to enhance readability and user retention.

Remember, continuous revision following SEO best practices and current trends must be undertaken to ensure ongoing optimization.

Is your System Free of Underlying Vulnerabilities?
Find Out Now