Skip to content

Keyboard shortcuts

Go

  • Scope — the control cataloggm
  • Plan — your last certification classgp
  • Collect — the recipe indexgc
  • The control you are workinggw
  • Startgh

Move

  • Next rowj
  • Previous rowk
  • Previous in this run[
  • Next in this run]
  • Filter this page's list/
  • Search everythingK

Act

  • Copy this page's permalinky
  • Toggle dark moded
  • This sheet?

Rows are whatever the current page lists — controls on Scope, recipes on Plan and Collect.

Control index

Account-wide credential report proving MFA is active per principal and that passwords/access keys are rotated within policy

The API supplies the facts, but a human judgement against a documented baseline turns them into evidence.

partial — needs judgementclimonthlyIAM

Fetch

$ aws iam generate-credential-report
$ aws iam get-credential-report --query GeneratedTime --output text
$ aws iam get-credential-report --query Content --output text | base64 --decode

Expected output

CSV, one row per IAM principal with columns including password_enabled, mfa_active, password_last_changed, access_key_1_active, access_key_1_last_rotated, access_key_2_last_rotated

Assertions — what makes it a pass

Assertions for Account-wide credential report proving MFA is active per principal and that passwords/access keys are rotated within policy: the field checked, the condition it must satisfy, the rows it applies to, and the controls a pass proves.
FieldMust beForProves
credential-report-generated-timemax_age_days 1The report being read was generated within the last day — a stored report is served for up to four hours, and nothing else bounds its age.every rowIA-02IA-05
credential-report[].mfa_activeeq "TRUE"Every principal with a console password has MFA active.password_enabled eq "TRUE"IA-02
credential-report[].access_key_1_last_rotatedmax_age_days 90Every active first access key was rotated within the last 90 days.access_key_1_active eq "TRUE"IA-05
credential-report[].access_key_2_last_rotatedmax_age_days 90Every active second access key was rotated within the last 90 days.access_key_2_active eq "TRUE"IA-05

Authored opinion, like the commands. Units live in the operator name — max-age-days is days, and nothing here is converted for you.

Map — what it proves

  • recipe2
Key Security Indicators
NIST 800-53 controls
  • recipean authored recipe collects evidence for this control
  • KSI onlya Key Security Indicator reaches it, but no recipe is authored yet
  • orphanno Key Security Indicator reaches it — a person writes it up instead

What else these families can fetch:IA 6/30

GovCloud

identical API and CSV schema; principal ARNs use partition arn:aws-us-gov

Notes & assertions

Assert mfa_active=true for every password_enabled=true principal, and (now - access_key_N_last_rotated) <= 90d for every active key. generate-credential-report is async; poll get-credential-report until State=COMPLETE (report is regenerated at most every 4 hours). mfa_active is TRUE for a virtual TOTP device as well as a FIDO key, and the CSV covers IAM users and the root user only — a human confirms from the identity provider's own report that console authentication is phishing-resistant (the IA-02 (01)/(02) guidance) and that federated Identity Center or external-IdP sign-ins are covered elsewhere. The 90-day threshold is CIS Benchmark 1.14's, not FedRAMP's. Filed under IA-02 and IA-05 base: key age tests IA-05 (g), not AC-02 (01)'s automated account management or IA-05 (01)'s password rules.

References

This AWS mapping is authored opinion (overlay v3.0.0), versioned separately from the dataset and written against ruleset 2026.07.14.01. The upstream FedRAMP dataset names none of these tools.

The Identity and Access Management run (16)

  • automatable
  • partial — needs judgement
  • narrative — no API proves this

Every authored recipe filed under IAM, in the order the plan works them. The mark says how much of the evidence the command produces on its own.