Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
iam_user_two_active_access_keyProvider: AWS
Service:
iamSeverity: MEDIUM
Categories:
identity-access, secretsResource type:
AwsIamUserWhat this check verifies
IAM users are evaluated for having twoActive access keys simultaneously.
The check identifies users whose two access key slots are enabled at the same time.
Risk
Two active keys per user widen exposure and weaken credential governance.- Any leaked key enables unauthorized API actions, risking data exfiltration and resource changes
- Rotation and response become error-prone, allowing attacker persistence if one key remains unnoticed
Recommendation
Maintain oneActive access key per IAM user; permit only a brief overlap for rotation, then promptly deactivate and delete the old key. Prefer temporary credentials via roles/federation over long-lived keys. Apply least privilege, periodic rotation, and monitor for unused or aged keys.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws iam update-access-key —user-name <IAM_USER_NAME> —access-key-id <ACCESS_KEY_ID> —status Inactive
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/IAM/unnecessary-access-keys.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html
- https://support.icompaas.com/support/solutions/articles/62000233813-ensure-iam-users-have-two-active-access-keys
- https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = iam_user_two_active_access_key. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks