The column that says TRUE for both
“What do we scan to prove passwordless?” splits into limbs a rule settles, one an inventory hands to a reviewer, and two that no AWS API holds — whether the second factor is phishing-resistant, and whether the identity is one person. Two MFA recipes, same rule engine, different ratings, show where the line falls.
The indicator is called Adopting Passwordless Methods, and its text asks for passwordless sign-in where feasible and, where not, strong passwords with phishing-resistant multi-factor authentication. The question your team will be asked is “what do we scan to prove that?” The honest answer has the shape the last two steps taught: several claims, two of which a rule settles outright — and the one the indicator is named for is not held by any API in the estate.
“Phishing-resistant” is a term of art. NIST’s authentication guideline defines it as an authenticator that cannot hand its secret to an impostor site even if the user is fooled, and says plainly that anything a person types in— a six-digit code from an app, a text message — does not qualify. Passkeys and security keys do. AWS supports all of these for the same user, and its own guidance recommends the passkey. So the question is not “is MFA on?” It is “which kindis on?” — and that is a different column, one the scan does not have.
“Do we use passwordless methods?”
A second factor stands behind every password
Every IAM user with a console password has an MFA device enabled — an empty non-compliant set from the managed rule, or mfa_active TRUE on every password_enabled row of the credential report.
measured · answered by A rule with a line
No credential belongs to nobody
The root user holds no access key and the account no signing certificate — two 0/1 flags in the account summary, and a managed rule that reads the first of them.
measured · answered by A rule with a line
The ways in are counted, and the workforce way is federated
How many IAM users exist, which SAML and OIDC trusts are registered, whether an Identity Center instance is the workforce path — integers and ARNs whose verdict is a comparison against the design you intended, where 'passwordless when feasible' means the user count is meant to reach zero.
cited · answered by An inventory to compare
The factor is phishing-resistant
That the second factor is a passkey or security key rather than a typed six-digit code. The credential report's mfa_active is TRUE for both; the kind of challenge that was actually issued is known to the identity provider that issued it.
cited · answered by The identity provider's own report
Each identity is one person
That an IAM user or a federated subject is one named human on the roster rather than a login three engineers share — the word 'unique' in IA-2, established by joining the listing to the personnel record.
cited · answered by No scan — a personnel record
The two measured limbs are again proofs of absence: no password without a factor behind it, no credential that belongs to nobody. The unmeasured limbs come in two kinds this time, and the step turns on keeping them apart. One is the familiar inventory — a complete count whose verdict is a comparison you make. The other two are facts the estate never held in the first place: what kind of factor was presented, and whether the identity presenting it is one person.
Here is the distinction in two recipes from this site’s own corpus. Same plane, the same rule engine reading the same IAM users, neighbouring subject matter — and different ratings:
AWS Config compliance result for the managed rule proving every IAM user with a console password has MFA enabled
fetch
$ aws configservice get-compliance-details-by-config-rule --config-rule-name mfa-enabled-for-iam-console-access --compliance-types NON_COMPLIANT$ aws configservice describe-configuration-recorder-status$ aws configservice describe-config-rule-evaluation-status --config-rule-names mfa-enabled-for-iam-console-accessmaps to: ia-2 · cadence: continuous · full recipe: /collect/config-mfa-enabled-console-access
One managed rule, one empty set as the pass. Every IAM user with a console password is a row, and the row is COMPLIANT or it is not; nothing is left for a reader to decide. That is why it rates as it does — and why the recipe's own notes tell you to pair it with the companion rule for users who have no console password, because the rule's scope is exactly its name and no wider.
Every way a workforce user can authenticate into the account, counted and named in one pass — how many IAM users and federated trusts exist, which SAML and OIDC providers are registered, whether an IAM Identity Center instance is the workforce entry path — together with the state of the two credentials that belong to no person: the root user's access key and the account's X.509 signing certificate
fetch
$ aws iam get-account-summary --query 'SummaryMap.{Users:Users,Providers:Providers,MFADevices:MFADevices,MFADevicesInUse:MFADevicesInUse,AccountAccessKeysPresent:AccountAccessKeysPresent,AccountSigningCertificatesPresent:AccountSigningCertificatesPresent}'$ aws iam list-saml-providers --query 'SAMLProviderList[].{Arn:Arn,ValidUntil:ValidUntil,CreateDate:CreateDate}'$ aws iam list-open-id-connect-providers$ aws sso-admin list-instances --query 'Instances[].{InstanceArn:InstanceArn,IdentityStoreId:IdentityStoreId,Status:Status}'$ aws configservice get-compliance-details-by-config-rule --config-rule-name iam-user-mfa-enabled --compliance-types NON_COMPLIANT$ aws configservice get-compliance-details-by-config-rule --config-rule-name iam-root-access-key-check --compliance-types NON_COMPLIANTmaps to: ia-2 · cadence: monthly · full recipe: /collect/identity-sources-and-root-credential-lockdown
This recipe contains measured limbs — two of its commands are managed rules with the same empty-set pass as the recipe above. It rates lower anyway, and its notes say why in one word: unique. It can count every IAM user and every federation trust, and it cannot say that any of them is one named human rather than a login three engineers share. The recipe rates itself on the limb it cannot decide, not on the ones it can. One word of the control is the whole distance between these two badges.
Now look at what neither recipe claims. The credential report and the managed rule both reduce a user’s second factor to one bit: enabled or not. AWS’s own documentation for the report lists mfa_activeas TRUE when “an MFA device has been enabled” — any device. The console shows a type per user (Virtual, Security key, Hardware), but no recipe in this corpus reads it, and for the users this indicator most wants — the federated ones, signing in through Identity Center or an external identity provider — IAM never sees the factor at all. The challenge was issued somewhere else, and only that somewhere else knows what kind it was.
So the judgement, stated plainly: the presence of a second factor is measured — continuously, per user, verdict in the output. The kind of factor is cited: it is a report you pull from your identity provider, and an assessor reads it beside the empty non-compliant set. And the person behind the identity is a record — the roster, and the process that keeps a subject in the identity store bound to one employee and removes it when they leave. A team that answers the question with the managed rule alone has proved that MFA is on. It has not proved that the method is passwordless, or that the factor is the kind the indicator names.
Eight questions follow. Sort each into the thing that answers it. Two belong to the identity provider and two to a personnel record, and one of the provider’s two is designed to feel like a column of the credential report.
The deliverable this step points at is a short one: from your identity provider, the list of enrolled authenticators by type, per user, dated — and the policy that forbids enrolling the other kinds. Laid beside the managed rule’s empty set, that is the whole indicator. If your provider can export it, the evidence is a query. If your users are IAM users with virtual devices, the export will say so, and the honest finding is the one the indicator anticipates: passwordless where feasible, and a plan for where it is not yet.
Every recipe named here is at /collect, and the controls behind this indicator — including the ones that close as documents about people rather than principals — are on /frontier.
Exit check — a customer asks “what do we scan to prove passwordless?” What do you say first?
Split the question before answering it. That every console password has a factor behind it, and that no credential belongs to nobody, are rules with a line — collected continuously, verdict in the output. How many ways into the account exist, and which is the workforce path, is an inventory whose verdict is a comparison against the design you intended. What kind of factor was presented is known only to the identity provider that issued the challenge — the estate reduces it to one bit. Whether the identity is one person is a record. If you can also say why the identity-sources recipe and the managed rule both rate partial — one because its verdict is a comparison, the other because its check is written and still cannot see the factor — and why neither proves the factor is phishing-resistant, the step held.