Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
iam_user_accesskey_unusedProvider: AWS
Service:
iamSeverity: MEDIUM
Categories:
secretsResource type:
AwsIamUserWhat this check verifies
IAM users are evaluated for active access keys whoselast-used timestamp exceeds max_unused_access_keys_days (default 45). Users without access keys, or whose keys were used within this window, are reported separately.
Risk
Active yet unused keys expand the attack surface. If leaked, adversaries gain API access for data exfiltration, unauthorized changes, and resource abuse, harming confidentiality, integrity, and availability. Stale credentials also enable persistence and unexpected cost spikes.Recommendation
Disable or delete unused access keys promptly and prefer IAM roles with temporary credentials. Enforce least privilege, rotation, and time-bounded access. Monitorlast-used metadata and automate deactivation of idle keys. Use federation/SSO to avoid long-lived user keys.
Remediation
- CLI
- Dashboard steps
aws iam update-access-key —user-name <USER_NAME> —access-key-id <ACCESS_KEY_ID> —status Inactive
References
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/iam-controls.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement-staging/knowledge-base/aws/IAM/access-keys-rotated-45-days.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_accesskey_unused. 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