IAM Day 4 Lecture
SCS-C03 · Domain 4 · Identity and Access Management · Day 4 of 6

Human identities: sign-in, federation and MFA

Day 3 gave machines temporary credentials. Today is about people: employees signing in through IAM Identity Center, SAML or Active Directory, MFA, and the customers of your apps signing in with Amazon Cognito. We finish with how to troubleshoot a failed sign-in.

Skill 4.1.1 Identity Center, Cognito, MFA, IdP integrationSkill 4.1.3 troubleshoot authentication~90 min read + 30 min lab
01

IAM Identity Center and permission sets

IAM Identity Center (the old name was AWS SSO) is AWS's recommended way to give people access to many AWS accounts. You connect one identity source, create permission sets (templates of policies), and assign a user or group + a permission set + an account. Identity Center then creates an IAM role in that account for you. People sign in once at the AWS access portal and pick the account and role they need. No IAM users, no long-term keys.

Concept profile

Permission set

often confused with IAM role
?What is it?

A template of policies in Identity Center. When you assign it to an account, Identity Center creates and manages a matching IAM role there.

⚙How does it work?
  • Enable Identity Center in the organization's management account (or use a delegated administrator member account).
  • Create a permission set: AWS managed, customer managed (by name), inline policies, optional permissions boundary, session duration.
  • Assign group + permission set + account(s).
  • Identity Center creates role AWSReservedSSO_<set>_<hash> under path /aws-reserved/sso.amazonaws.com/ and keeps it in sync when you change the set.
  • User signs in to the access portal and gets temporary role credentials (console or CLI with aws sso login).
{ }Structure
SettingDefaultMaximum
AWS account session (permission set)1 hour12 hours
AWS access portal session8 hours90 days
⇄Permission set vs IAM role
Permission setIAM role
Lives inIdentity Center (one place)One account
Reused across accountsYes, one set → many accountsNo, copy per account
Who edits the roleOnly Identity Center (role is managed)You
Who uses itPeople from the identity sourceAnyone the trust policy allows
Customer managed policyReferenced by name; must exist in each accountAttached by ARN
!Common mistakes the exam tests
  • Editing an AWSReservedSSO_ role directly in IAM. You can't; change the permission set.
  • Referencing a customer managed policy that doesn't exist (same name and path) in every target account: provisioning fails.
  • Using an account instance of Identity Center to grant AWS account access. Only the organization instance does multi-account permissions.
  • Thinking Identity Center adds IAM users to accounts. It creates roles; users get temporary credentials.
  • Forgetting SCPs still apply to the role in each member account.
✓Benefits and use cases
  • One login for all accounts and business apps.
  • Central place to grant and remove access when people join or leave.
  • Short-lived credentials for the CLI (aws sso login).
  • CloudTrail shows the real user name as the role session name.
Identity source Okta · Entra ID · AD or built-in directory SAML + SCIM IAM Identity Center • Users and groups • Permission sets • Assignments: group + set + account • MFA settings • Access portal • Session 1–12 h Prod accountAWSReservedSSO_DBAdmin_3f1a…Dev accountAWSReservedSSO_DBAdmin_9c2e…Audit accountAWSReservedSSO_ReadOnly_77b0…
One permission set, many accounts. Identity Center creates and owns the roles.
Think of it like · a company badge office

Instead of each building issuing its own keys, one badge office prints access onto your staff card.

AWS conceptFamiliar thing
IAM Identity Center≈The central badge office
Identity source≈HR's list of staff
Permission set≈An access profile like “Lab technician”
Assignment≈“Profile X works in building Y for team Z”
AWSReservedSSO_ role≈The door lock the badge office installs in each building; building managers can't rewire it
Access portal≈The turnstile where you tap your card once a day
Real AWS example · what CloudTrail shows for an Identity Center user

When Minh uses the DBAdmin permission set in the Prod account, every API call is logged with the role and the Identity Center user name.

"userIdentity": {
  "type": "AssumedRole",
  "arn": "arn:aws:sts::111122223333:assumed-role/
          AWSReservedSSO_DBAdmin_3f1a2b4c5d6e7f80/minh@example.com",
  "sessionContext": { "sessionIssuer": {
      "arn": "arn:aws:iam::111122223333:role/aws-reserved/
              sso.amazonaws.com/eu-west-1/AWSReservedSSO_DBAdmin_3f1a2b4c5d6e7f80" } }
}

The part after the last slash is the role session name, which is the person's user name. That's how you answer “which human did this?”.

Exam-style scenario

A company has 40 AWS accounts in AWS Organizations and staff in Microsoft Entra ID. Today each account has its own IAM users. The security team wants single sign-on, central access management by Entra ID group, and no long-term credentials. What should they do?

  1. A. Create an IAM SAML provider and roles in each of the 40 accounts.
  2. B. Enable IAM Identity Center in the organization, connect Entra ID as an external IdP with SCIM provisioning, create permission sets, and assign Entra groups to accounts.
  3. C. Deploy AD Connector in each account.
  4. D. Use Amazon Cognito user pools federated with Entra ID.
Show the worked answer

Answer: B

Identity Center is the multi-account workforce answer. SCIM keeps users and groups in sync from Entra ID, and permission sets give the same role in every account without copying anything.

Why not the others

  • A: Works but means 40 copies of providers and roles to maintain; not the BEST.
  • C: AD Connector is for on-premises Active Directory, not Entra ID, and doesn't do multi-account access by itself.
  • D: Cognito is for customers of your applications, not employees accessing AWS accounts.
How the exam tests this
  • “Many accounts, one sign-in for employees”→ IAM Identity Center + permission sets.
  • “Roles named AWSReservedSSO_…”→ Created by Identity Center; edit the permission set.
  • “Permission set provisioning fails in one account”→ Customer managed policy missing in that account.
  • “Who did it?”→ Role session name in CloudTrail = Identity Center user name.
Must remember
  • Permission set → AWSReservedSSO_ role in each assigned account.
  • Account session: default 1 h, max 12 h. Portal: default 8 h, max 90 days.
  • Customer managed policies are referenced by name; create them in every account first.
  • Only the organization instance grants AWS account access.
02

Identity sources, SCIM and attributes

Identity Center needs to know who your people are. It has exactly one identity source at a time: the built-in Identity Center directory, Active Directory (AWS Managed Microsoft AD or AD Connector), or an external IdP such as Okta or Entra ID. With an external IdP, two separate standards do two separate jobs: SAML 2.0 signs people in, and SCIM copies users and groups into Identity Center so you can assign them.

Concept profile

SCIM provisioning

often confused with SAML authentication
?What is it?

System for Cross-domain Identity Management: an API standard your IdP uses to create, update and delete users and groups in Identity Center automatically.

⚙How does it work?
  • In Identity Center, enable automatic provisioning: you get a SCIM endpoint and an access token.
  • Paste both into the IdP's AWS app.
  • The IdP pushes users and group memberships; when someone leaves, the IdP disables or removes them.
  • Assignments then work on the synced groups.
{ }Structure
Identity sourceWhere users liveNotes
Identity Center directoryIdentity CenterDefault; good for small teams
Active DirectoryManaged Microsoft AD or on-prem AD via AD ConnectorSync users and groups by configured scope; Simple AD not supported
External IdPOkta, Entra ID, Ping…SAML for sign-in, SCIM for provisioning
⇄SCIM vs SAML authentication
SCIMSAML
JobProvisioning: create/update/delete users and groupsAuthentication: sign the user in
When it runsIn the background, all the timeEach time someone signs in
Without itYou must create users manually in Identity Center to matchNo single sign-on
CarriesUser and group recordsA signed assertion with attributes
!Common mistakes the exam tests
  • Thinking SAML alone creates users in Identity Center. It doesn't; that's SCIM (or manual creation).
  • Expecting two identity sources at once. There is only one per organization instance.
  • Changing the identity source and expecting assignments to survive; switching sources can remove users, groups and assignments.
  • Forgetting the SCIM access token expires and must be rotated, or provisioning silently stops.
✓Benefits and use cases
  • Joiner/mover/leaver handled in one place (HR → IdP → AWS).
  • ABAC from IdP attributes like department or cost center.
  • Group-based assignments that follow org changes.

Attributes for access control (ABAC in Identity Center)

Identity Center can pass user attributes, such as Department or CostCenter, into every role session as session tags. Your permission set policies then check aws:PrincipalTag/Department against resource tags. Values come from the Identity Center directory, AD attributes, SCIM-synced attributes, or a SAML attribute named https://aws.amazon.com/SAML/Attributes/AccessControl:<Key>. If both the Identity Center mapping and the SAML assertion supply a value, the Identity Center mapping wins.

Think of it like · a hotel guest list vs the front door

The hotel needs the guest list before you arrive, and you still show ID at the door.

AWS conceptFamiliar thing
SCIM≈The travel agency sending the guest list to the hotel in advance
SAML sign-in≈Showing your passport at the front desk each time
Identity source≈The one agency the hotel accepts lists from
Attribute for access control≈The note on your booking: “VIP floor”
aws:PrincipalTag in a policy≈The lift only goes to the VIP floor if your booking says so
Real AWS example · ABAC permission set policy

One inline policy in one permission set lets every engineer reach only the EC2 instances of their own team.

{ "Effect": "Allow",
  "Action": ["ec2:StartInstances", "ec2:StopInstances"],
  "Resource": "arn:aws:ec2:*:*:instance/*",
  "Condition": { "StringEquals": {
      "aws:ResourceTag/Team": "${aws:PrincipalTag/Team}" } } }

Enable Attributes for access control, map key Team to the user attribute (for example ${path:enterprise.department}), and new teams need no policy change.

Exam-style scenario

A company federates Okta with IAM Identity Center using SAML only. HR deletes a leaver in Okta, but auditors find the user and their group memberships still listed in Identity Center weeks later. New hires also have to be created by hand before they can be assigned. What fixes BOTH problems?

  1. A. Shorten the AWS access portal session to 1 hour.
  2. B. Enable automatic provisioning (SCIM) between Okta and Identity Center.
  3. C. Switch the identity source to the Identity Center directory.
  4. D. Add an SCP that denies the leaver.
Show the worked answer

Answer: B

SCIM keeps Identity Center's users and groups in step with Okta, so new hires appear automatically and leavers are removed or disabled.

Why not the others

  • A: Shorter sessions don't create or remove users.
  • C: Makes the manual work worse.
  • D: Treats a symptom for one user; doesn't automate anything.
How the exam tests this
  • “Users and groups must sync automatically from the IdP”→ SCIM automatic provisioning.
  • “Grant access by department without new permission sets”→ Attributes for access control + aws:PrincipalTag.
  • “Use on-prem AD with Identity Center”→ AD Connector or Managed Microsoft AD (not Simple AD).
Must remember
  • One identity source per Identity Center instance.
  • SAML = sign-in. SCIM = provisioning.
  • Attributes become session tags; Identity Center mapping beats SAML values.
  • SAML attribute name: …/SAML/Attributes/AccessControl:Key.
03

SAML 2.0 and OIDC federation with IAM

Before Identity Center, companies federated directly with IAM, and the exam still tests it. You create an IAM identity provider (SAML or OIDC) in the account, then roles that trust it. Your IdP signs people in and hands them a token; STS swaps it for temporary role credentials with AssumeRoleWithSAML or AssumeRoleWithWebIdentity. It's per account, so it fits one account or a special case, while Identity Center fits many accounts.

Concept profile

SAML 2.0 federation

often confused with OIDC federation
?What is it?

An XML-based standard where your IdP sends AWS a signed assertion about the user. AWS trusts the IdP through an IAM SAML provider holding the IdP's metadata (signing certificate).

⚙How does it work?
  • Create an IAM SAML provider from the IdP's metadata XML.
  • Create roles whose trust policy allows sts:AssumeRoleWithSAML from that provider, with saml:aud = the sign-in endpoint.
  • In the IdP, map groups to role ARNs in the Role attribute.
  • Users sign in at the IdP and land in the AWS console or get CLI credentials.
{ }Structure
Assertion attributes AWS reads:
https://aws.amazon.com/SAML/Attributes/Role             "arn:…:role/Admin,arn:…:saml-provider/Okta"
https://aws.amazon.com/SAML/Attributes/RoleSessionName  "minh@example.com"
https://aws.amazon.com/SAML/Attributes/SessionDuration  "3600"   (900–43200 s, ≤ role max)
https://aws.amazon.com/SAML/Attributes/PrincipalTag:Dept "Finance"  (needs sts:TagSession)
⇄SAML vs OIDC federation
SAML 2.0OIDC (web identity)
FormatSigned XML assertionJSON Web Token (JWT)
STS APIAssumeRoleWithSAMLAssumeRoleWithWebIdentity
Typical IdPAD FS, Okta, Entra ID (workforce)GitHub Actions, EKS, Google, Cognito
Trust policy keyssaml:aud, saml:sub, saml:iss<provider>:aud, <provider>:sub
Console sign-inYes, via the SAML sign-in endpointNo direct console sign-in
!Common mistakes the exam tests
  • IdP certificate rotated but the IAM SAML provider metadata wasn't updated: every sign-in fails.
  • saml:aud doesn't match the endpoint the IdP posts to (global vs regional sign-in URL).
  • Role ARN or provider ARN in the Role attribute has a typo or is in the wrong order.
  • Asking for a SessionDuration longer than the role's maximum session duration.
  • Choosing direct IAM federation for 50 accounts when Identity Center is the BEST answer.
✓Benefits and use cases
  • One account federated with an existing corporate IdP.
  • Apps that need SAML-to-role mapping you control in the IdP.
  • OIDC for CI/CD pipelines and Kubernetes (Day 3).
Browser / CLIemployee1Your IdPAD FS · Okta · Entra2AWS STSsign-in endpoint3Console / APItemporary role① User signs in at the IdP (password + the IdP's MFA).② IdP returns a signed SAML assertion: Role, RoleSessionName, optional SessionDuration and tags.③ Browser posts it to https://region.signin.aws.amazon.com/saml (CLI: AssumeRoleWithSAML).④ STS checks the IAM SAML provider certificate and the role's trust policy (saml:aud), then issues credentials.
The IdP proves who you are; STS decides which role you get.
Think of it like · an embassy visa

Your home country (the IdP) vouches for you; the destination (AWS) decides what you may do there.

AWS conceptFamiliar thing
IdP≈Your home country's passport office
SAML assertion≈A signed letter: “this is Minh, a Finance employee”
IAM SAML provider≈The embassy's copy of the passport office's official stamp
Role trust policy≈The visa rules: which letters are accepted
Temporary credentials≈A visa valid for a few hours
Certificate rotation≈A new official stamp; the embassy must get a copy or it rejects every letter
Real AWS example · trust policy for SAML federation

Only assertions from this provider, posted to the regional sign-in endpoint, can assume the role.

{ "Effect": "Allow",
  "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/Okta" },
  "Action": ["sts:AssumeRoleWithSAML", "sts:TagSession"],
  "Condition": { "StringEquals": {
      "saml:aud": "https://eu-west-1.signin.aws.amazon.com/saml" } } }

AWS recommends regional sign-in endpoints for resilience. If you change the IdP's ACS URL to a regional endpoint, update saml:aud too.

Exam-style scenario

Employees federate from AD FS into one AWS account with SAML. On Monday every user gets an error when signing in to the console; nothing changed in AWS. The AD FS team says they renewed the token-signing certificate over the weekend. What should the engineer do?

  1. A. Increase the role's maximum session duration.
  2. B. Download the new AD FS federation metadata and update the IAM SAML identity provider in the account.
  3. C. Add sts:TagSession to the trust policy.
  4. D. Recreate the IAM roles.
Show the worked answer

Answer: B

AWS validates the assertion signature with the certificate stored in the IAM SAML provider. After a renewal, the stored copy is stale, so every assertion fails until you upload the new metadata.

Why not the others

  • A: Duration isn't the problem; validation fails first.
  • C: Only needed when tags are passed; it wouldn't fail all users suddenly.
  • D: Roles are fine and recreating them would break trust elsewhere.
How the exam tests this
  • “Federate with a SAML IdP for console access in one account”→ IAM SAML provider + roles trusting it.
  • “All federated sign-ins fail after IdP maintenance”→ Update IdP metadata (certificate) in IAM.
  • “Session lasts longer than requested… or fails”→ SessionDuration attribute vs role max.
  • “JWT, not XML”→ OIDC → AssumeRoleWithWebIdentity.
Must remember
  • SAML → AssumeRoleWithSAML; OIDC → AssumeRoleWithWebIdentity.
  • Trust policy: Principal.Federated + saml:aud = sign-in endpoint.
  • Role attribute = roleArn,providerArn; RoleSessionName is required.
  • Many accounts? Identity Center, not per-account SAML.
04

AWS Directory Service

Many companies already run Microsoft Active Directory. AWS Directory Service lets AWS workloads and services use AD. The exam loves the three choices: AWS Managed Microsoft AD (a real AD that AWS runs for you), AD Connector (a proxy back to your on-premises AD, stores nothing in AWS) and Simple AD (a small Samba-based AD-compatible directory).

Concept profile

AD Connector

often confused with AWS Managed Microsoft AD
?What is it?

A directory gateway that forwards authentication requests from AWS services to your on-premises AD domain controllers. No user data is stored or cached in AWS.

⚙How does it work?
  • Deploy into two subnets in your VPC with network access (VPN or Direct Connect) to on-prem DCs.
  • Give it a service account in on-prem AD.
  • AWS services (Identity Center, WorkSpaces, console access, domain join for EC2) send sign-ins to it.
  • It forwards them to your DCs; optional MFA through your RADIUS server.
{ }Structure
AWS Managed Microsoft ADReal Windows AD run by AWS2+ domain controllers, 2 AZsTrusts with on-prem ADMFA via RADIUSIdentity Center: yesAD ConnectorProxy, stores no usersForwards to on-prem DCsNeeds VPN / Direct ConnectMFA via your RADIUSIdentity Center: yesSimple ADSamba 4, AD-compatibleSmall, basic needs, LDAPNo trustsNo MFAIdentity Center: noUsers live in AWS: Managed AD and Simple AD. Users stay on-premises: AD Connector.
Three directories, three jobs.
⇄AD Connector vs AWS Managed Microsoft AD
AD ConnectorManaged Microsoft AD
Users stored in AWSNo (proxy only)Yes, real AD in AWS
Works if on-prem link is downNoYes (and can trust on-prem AD)
Trustsn/aOne-way or two-way forest trusts
AD-aware apps in AWS (SQL Server, FSx, RDS)LimitedYes
SizeSmall / Large connectorStandard (≈30k objects) / Enterprise (≈500k)
!Common mistakes the exam tests
  • Picking AD Connector when the requirement says “keep working if the on-premises connection fails” or “AD-aware workloads in AWS”: that's Managed Microsoft AD.
  • Picking Simple AD when MFA or trusts are needed: Simple AD supports neither.
  • Using Simple AD as an Identity Center identity source: not supported.
  • Thinking AD Connector syncs users into AWS. It doesn't store any.
✓Benefits and use cases
  • Reuse existing AD credentials for AWS apps without copying users.
  • Lift-and-shift Windows apps that need a domain.
  • Hybrid identity with a trust between on-prem AD and Managed AD.
Think of it like · a phone line, a branch office, and a small shop

Three ways to bring the head office's staff list to a new city.

AWS conceptFamiliar thing
AD Connector≈A phone line to head office: every question is answered there; if the line drops, no answers
Managed Microsoft AD≈A real branch office with its own copy of records, which can trust head office
Trust relationship≈The two offices agreeing to honour each other's staff badges
Simple AD≈A small shop that keeps a simple notebook; no deals with head office
RADIUS MFA≈A security guard who asks for a second code at the door
Real AWS example · domain-joining EC2 instances automatically

With Managed Microsoft AD (or AD Connector), new Windows instances can join the domain at launch through Systems Manager.

aws ssm create-association --name AWS-JoinDirectoryServiceDomain \
  --targets Key=tag:DomainJoin,Values=yes \
  --parameters directoryId=d-1234567890,directoryName=corp.example.com,\
dnsIpAddresses=10.0.1.10,10.0.2.10

The instance profile needs AmazonSSMManagedInstanceCore and AmazonSSMDirectoryServiceAccess. The users who log on are AD users, not IAM users.

Exam-style scenario

A company wants employees to sign in to Amazon WorkSpaces with their existing on-premises AD passwords. They do not want any user data copied to AWS, and they already have a Direct Connect link and a RADIUS MFA server. What is the MOST suitable option?

  1. A. Simple AD with users recreated in AWS.
  2. B. AD Connector pointed at the on-premises domain controllers, with RADIUS MFA enabled.
  3. C. AWS Managed Microsoft AD with a two-way trust.
  4. D. Amazon Cognito user pool.
Show the worked answer

Answer: B

AD Connector proxies sign-ins to on-prem AD without storing users in AWS and supports MFA through existing RADIUS infrastructure.

Why not the others

  • A: Copies users and Simple AD has no MFA.
  • C: Works, but runs a full directory in AWS; the requirement says no user data in AWS and nothing needs AD inside AWS.
  • D: Cognito is for application customers.
How the exam tests this
  • “Existing on-prem AD, nothing stored in AWS”→ AD Connector.
  • “Must work if the on-prem link fails / AD-aware apps / trusts”→ Managed Microsoft AD.
  • “Cheap, small, basic LDAP, no MFA”→ Simple AD.
  • “MFA for AD users”→ RADIUS with Managed AD or AD Connector.
Must remember
  • AD Connector = proxy, no data in AWS, needs the on-prem link.
  • Managed Microsoft AD = real AD, multi-AZ, trusts, RADIUS MFA.
  • Simple AD = Samba 4: no trusts, no MFA, not for Identity Center.
  • Identity Center sources: Managed AD or AD Connector.
05

Multi-factor authentication (MFA)

MFA adds “something you have” to “something you know”. In AWS it appears in three places: IAM users and the root user (devices registered in IAM), IAM Identity Center (its own MFA settings for its directory or AD), and external IdPs (MFA happens at Okta or Entra ID before AWS ever sees the user). Policies can then require MFA with condition keys.

Concept profile

MFA condition keys

often confused with MFA devices
?What is it?

aws:MultiFactorAuthPresent (true/false) and aws:MultiFactorAuthAge (seconds since MFA) let a policy check whether the request's credentials were obtained with MFA.

⚙How does it work?
  • The user signs in with MFA (console) or calls STS with --serial-number and --token-code.
  • STS marks the temporary credentials as MFA-authenticated.
  • Policies check the keys. Long-term access keys used directly never carry them, so the key is missing.
  • That is why Deny policies use BoolIfExists: missing counts as not MFA.
{ }Structure
MFA typeNotes
Passkeys and FIDO security keysRecommended; phishing-resistant
Virtual authenticator app (TOTP)Phone app with 6-digit codes
Hardware TOTP tokenPhysical code generator
SMSNot supported for IAM users any more

Up to 8 MFA devices per IAM user or root user. MFA is enforced for root users of all account types.

⇄MFA condition keys vs MFA devices
MFA condition keysMFA devices
What it isA check inside a policyThe thing that produces the second factor
WhereIdentity, resource or trust policiesRegistered on an IAM user, root, Identity Center user or IdP
Answers“Was MFA used for these credentials?”“Can this person prove the second factor?”
Missing caseNo key at all for long-term keysn/a
!Common mistakes the exam tests
  • Using Bool with "false" in a Deny: requests made with long-term access keys have no key, so they are NOT denied. Use BoolIfExists.
  • Using BoolIfExists with "true" in an Allow: requests with no key would be allowed.
  • Configuring MFA in Identity Center when the identity source is an external IdP. MFA happens in the IdP.
  • Expecting SMS MFA for IAM users.
✓Benefits and use cases
  • Protect root and admin access.
  • Require MFA only for sensitive actions (delete, terminate, IAM changes).
  • Recent-MFA checks with aws:MultiFactorAuthAge.
Think of it like · a bank vault

The vault opens only if you bring both your key and your PIN.

AWS conceptFamiliar thing
Password≈The vault key (something you know)
MFA device≈The PIN pad token (something you have)
aws:MultiFactorAuthPresent≈The guard's question: “Did you enter the PIN?”
Missing key (long-term access keys)≈A visitor who came through the back door, so the guard never asked
BoolIfExists≈The guard's rule: “If I didn't see you enter the PIN, you didn't”
Real AWS example · deny everything except MFA setup until the user has used MFA

The classic AWS policy for IAM users. It still lets users register their own MFA device.

{ "Sid": "DenyAllExceptListedIfNoMFA",
  "Effect": "Deny",
  "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice",
                 "iam:GetUser", "iam:ListMFADevices", "iam:ListVirtualMFADevices",
                 "iam:ResyncMFADevice", "sts:GetSessionToken" ],
  "Resource": "*",
  "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } }

NotAction + Deny means “deny everything except these”. With BoolIfExists, CLI calls signed with long-term keys (no MFA key) are denied too, so users must call GetSessionToken with MFA first.

Exam-style scenario

A company federates Okta with IAM Identity Center. The auditor asks the team to require phishing-resistant MFA for every AWS sign-in. An engineer opens the Identity Center MFA settings and enables “Every time they sign in”. Users still sign in without a security key. Why, and what is the fix?

  1. A. The setting takes 24 hours to apply.
  2. B. With an external IdP, authentication (including MFA) is done by Okta; enforce FIDO/passkey MFA in Okta's sign-on policy for the AWS app.
  3. C. Identity Center doesn't support security keys.
  4. D. Add aws:MultiFactorAuthPresent to every permission set.
Show the worked answer

Answer: B

Identity Center's own MFA settings apply when Identity Center does the authentication (its directory or AD). With an external IdP, Identity Center trusts the IdP's assertion, so MFA policy lives in the IdP.

Why not the others

  • A: There's no such delay.
  • C: It does support them for its own directory.
  • D: Doesn't force the IdP to use a security key; the policy only sees the session.
How the exam tests this
  • “Deny actions unless MFA, including CLI with access keys”→ BoolIfExists … "false" in a Deny.
  • “Require MFA within the last hour for deleting”→ aws:MultiFactorAuthAge NumericLessThan 3600.
  • “External IdP, enforce MFA”→ Configure it in the IdP.
  • “Most phishing-resistant MFA”→ Passkeys / FIDO security keys.
Must remember
  • Long-term keys used directly → MFA key is absent.
  • Deny + BoolIfExists false; never Allow + BoolIfExists true.
  • Up to 8 MFA devices per user; root MFA is enforced.
  • External IdP → MFA in the IdP.
06

Amazon Cognito: user pools and identity pools

Identity Center is for your staff. Amazon Cognito is for the customers of your web and mobile apps. It has two parts that the exam loves to swap: a user pool is a user directory that signs people in and issues JWT tokens; an identity pool exchanges a token for temporary AWS credentials so the app can call AWS services such as S3 or DynamoDB directly.

Concept profile

Cognito user pool

often confused with Cognito identity pool
?What is it?

An OIDC-based user directory and authorization server for your app: sign-up, sign-in, MFA, social and enterprise federation, and tokens.

⚙How does it work?
  • The user signs in with managed login (hosted UI) or your own UI, or through Google, Apple, SAML or OIDC IdPs.
  • The user pool returns an ID token (who), an access token (scopes/groups) and a refresh token.
  • Your API (API Gateway Cognito authorizer, ALB) validates the JWT.
  • Optionally the app gives the token to an identity pool to get AWS credentials.
{ }Structure
App user mobile / web sign in User pool “Who are you?” Sign-up, sign-in, MFASocial / SAML / OIDC IdPsThreat protection → ID, access, refresh tokens (JWT) Identity pool “What AWS can you use?” Token → IAM roleAuthenticated roleGuest role (optional) → STS temporary credentials AWS S3 DynamoDB … APIs you own (API Gateway, ALB) can trust the user pool JWT directly; AWS APIs need the identity pool.
User pool = who you are. Identity pool = which AWS role you get.
⇄Cognito user pool vs Cognito identity pool
User poolIdentity pool
Question answeredWho is this user? (authentication)What AWS may they use? (authorization)
OutputJWTs: ID, access, refreshSTS temporary credentials
Used to callYour own APIsAWS APIs (S3, DynamoDB…)
GuestsNoOptional unauthenticated role
Access controlGroups, scopes, Lambda triggersRole per auth state, rules, groups, ABAC tags
!Common mistakes the exam tests
  • Using a user pool alone to upload directly to S3: you need an identity pool (or a backend).
  • Giving the unauthenticated (guest) role broad permissions.
  • Trust policy for identity pool roles missing the cognito-identity.amazonaws.com:aud condition (pool ID).
  • Mixing up the ID token (identity claims) and access token (scopes) for API authorization.
✓Benefits and use cases
  • Customer sign-up and sign-in with MFA and threat protection.
  • Mobile apps uploading straight to the user's own S3 prefix.
  • Partner or enterprise users signing in to your SaaS through SAML/OIDC.

Threat protection (previously called advanced security features) in user pools can detect compromised credentials and score sign-in risk (adaptive authentication), then allow, require MFA or block. Lambda triggers let you customize sign-up and sign-in, for example a pre-token-generation trigger that adds claims.

Think of it like · a theme park

Getting in and riding are two different checks.

AWS conceptFamiliar thing
User pool≈The ticket office: checks who you are and gives you a wristband
JWT ID / access token≈The wristband with your name and ticket type
Identity pool≈The ride desk that swaps a wristband for a ride pass
Authenticated role≈Full-day ride pass
Unauthenticated role≈A free pass for the kids' area only
Your own API trusting the JWT≈A park restaurant that only needs to see the wristband
Real AWS example · identity pool role that only reaches the user's own S3 folder

The trust policy pins the pool and authenticated users; the permissions policy uses the Cognito identity ID as a policy variable.

// Trust policy
{ "Effect": "Allow",
  "Principal": { "Federated": "cognito-identity.amazonaws.com" },
  "Action": "sts:AssumeRoleWithWebIdentity",
  "Condition": {
    "StringEquals": { "cognito-identity.amazonaws.com:aud": "eu-west-1:1a2b3c4d-…" },
    "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } }

// Permissions policy
{ "Effect": "Allow",
  "Action": ["s3:GetObject", "s3:PutObject"],
  "Resource": "arn:aws:s3:::photos-app/users/${cognito-identity.amazonaws.com:sub}/*" }

Every user gets the same role but can only touch their own prefix. The same trick works for DynamoDB with dynamodb:LeadingKeys.

Exam-style scenario

A mobile app signs users in with a Cognito user pool. Users must upload photos directly to S3, each user only into their own folder, without the app embedding AWS keys. What should the developer add?

  1. A. An IAM user per app user.
  2. B. A Cognito identity pool that accepts the user pool token and maps authenticated users to a role with an S3 policy using ${cognito-identity.amazonaws.com:sub}.
  3. C. An API Gateway Cognito authorizer.
  4. D. Embed a read/write access key in the app.
Show the worked answer

Answer: B

The identity pool turns the user pool token into temporary AWS credentials for a role. The policy variable restricts each user to their own prefix.

Why not the others

  • A: Doesn't scale and creates long-term keys.
  • C: Protects your API, but doesn't give the app S3 credentials.
  • D: Long-term keys in an app are always wrong.
How the exam tests this
  • “App customers sign up / sign in”→ User pool.
  • “App must call S3/DynamoDB directly”→ Identity pool → STS credentials.
  • “Guest users read public content”→ Identity pool unauthenticated role, least privilege.
  • “Block sign-ins with leaked passwords”→ User pool threat protection.
Must remember
  • User pool → JWT (ID, access, refresh). Identity pool → AWS credentials.
  • Identity pool roles trust cognito-identity.amazonaws.com with aud + amr.
  • Per-user isolation: ${cognito-identity.amazonaws.com:sub}.
  • Staff → Identity Center; customers → Cognito.
07

Troubleshooting authentication

Skill 4.1.3 asks you to troubleshoot sign-in problems with CloudTrail, Cognito, permission sets and Directory Service. The trick is to find which step failed: did the person fail to sign in, fail to get credentials for a role, or get credentials but then hit AccessDenied? Each step leaves different evidence.

Concept profile

Authentication failure

often confused with authorization failure
?What is it?

The identity couldn't prove who it is, or couldn't get credentials. Authorization failure means the identity is known but the policy evaluation said no.

⚙How does it work?
  • Check the IdP or Identity Center sign-in result (CloudTrail event source signin.amazonaws.com, events like ConsoleLogin, CredentialChallenge, UserAuthentication).
  • Check the STS event: AssumeRoleWithSAML, AssumeRoleWithWebIdentity, AssumeRole with an errorCode.
  • If credentials were issued, the problem is policies: read the denied event's errorMessage (it names the policy type that denied).
  • Identity Center API and provisioning events use sso.amazonaws.com, identitystore.amazonaws.com, identitystore-scim.amazonaws.com.
{ }Structure
SymptomLikely cause
All SAML sign-ins fail suddenlyIdP certificate rotated, IAM SAML provider metadata stale
“Not authorized to perform sts:AssumeRoleWithSAML”Trust policy: wrong provider, saml:aud, or missing sts:TagSession
User signs in to portal but sees no accountNo assignment for user or group (or SCIM not syncing the group)
Permission set fails to provision to an accountCustomer managed policy or boundary missing in that account
AD users can't sign in via AD ConnectorNetwork to DCs, DNS, or the connector's service account
Cognito: NotAuthorizedExceptionWrong password, user disabled, or app client secret/flow
Identity pool: not authorized for AssumeRoleWithWebIdentityRole trust aud/amr, or no role for that auth type
⇄Authentication failure vs authorization failure
Authentication failureAuthorization failure
QuestionWho are you? Can you have credentials?Are you allowed to do this?
Where it failsIdP, Identity Center, Cognito, STSAny service API
EvidenceSign-in events, STS errors, IdP logsAccessDenied with policy type in message
Fix inIdP config, metadata, trust policy, assignmentsIdentity/resource policies, SCP, RCP, boundary
!Common mistakes the exam tests
  • Editing permissions policies when the role can't even be assumed (the trust policy is the problem).
  • Looking for console sign-in events in the wrong Region: Identity Center events are recorded in the Region where Identity Center is enabled.
  • Forgetting the IdP side: many failures are only visible in the IdP's logs.
  • Blaming IAM when the SCIM token expired and the new group never synced.
✓Benefits and use cases
  • Faster root cause in incidents.
  • Proves who signed in, from where and with which method (MFA).
  • Exam “ordering” questions: put the troubleshooting steps in order.
1. Sign-inIdP / Identity Center /Cognito rejects userLook: IdP logs,signin.amazonaws.com2. Get credentialsSTS refuses the roleTrust policy, saml:aud,TagSession, aud/subLook: AssumeRole* events3. Use credentialsAccessDenied on APIPolicy evaluation:SCP, boundary, policiesLook: errorCode in trailFirst decide WHICH step failed. Days 1–2 fix step 3, Day 3 fixes step 2, today fixes step 1.
Find the broken step first, then open the right log.
Think of it like · an airport

You can be stopped at check-in, at passport control, or at the gate.

AWS conceptFamiliar thing
Sign-in (IdP / Cognito)≈Check-in desk: is this really you?
STS / trust policy≈Passport control: may you enter this country (account/role)?
Policy evaluation≈The gate: does your boarding pass allow this flight (action)?
CloudTrail≈The airport's CCTV and logbook
IdP metadata≈The list of passports the airport accepts
Real AWS example · a failed AssumeRoleWithSAML in CloudTrail

The error tells you the problem is at the STS step, not in the permissions.

{ "eventSource": "sts.amazonaws.com",
  "eventName": "AssumeRoleWithSAML",
  "errorCode": "AccessDenied",
  "errorMessage": "Not authorized to perform sts:AssumeRoleWithSAML",
  "requestParameters": {
     "roleArn": "arn:aws:iam::111122223333:role/Finance",
     "principalArn": "arn:aws:iam::111122223333:saml-provider/Okta" } }

Next steps: open the Finance role's trust policy and compare the provider ARN, saml:aud and actions (TagSession?) with the request.

Exam-style scenario

A user in IAM Identity Center reports that after signing in to the access portal they can't see the Billing account, although yesterday a colleague in the same Okta group could. SCIM provisioning is enabled. What should the administrator check FIRST?

  1. A. The Billing account's SCPs.
  2. B. Whether the user and the Okta group membership have synced to Identity Center and the group has an assignment for the Billing account.
  3. C. The permission set's inline policy.
  4. D. CloudTrail data events for S3.
Show the worked answer

Answer: B

Not seeing an account at all in the portal is an assignment problem, not a policy problem. Check that SCIM synced the user into the group and that the group is assigned to that account.

Why not the others

  • A: SCPs limit actions after sign-in; they don't hide accounts from the portal.
  • C: Policies don't decide whether the account appears.
  • D: Unrelated to portal access.
How the exam tests this
  • “Federated user can't assume role, error mentions AssumeRoleWithSAML”→ Check the trust policy and SAML provider.
  • “User can't see the account in the portal”→ Check assignments and SCIM sync.
  • “User got in but AccessDenied”→ Normal policy evaluation (Days 1–2).
  • “Find who signed in and whether MFA was used”→ CloudTrail sign-in events.
Must remember
  • Three steps: sign in → get credentials → use credentials.
  • Sign-in events: signin.amazonaws.com.
  • No account in the portal = assignment; AccessDenied = policy.
  • Trust policy problems show up on the STS event.
08

Cheatsheet extras: AD FS trusts, AD trust directions and Cognito sign-up checks

You learned SAML federation in section 3. Your cheat sheet adds the AD FS vocabulary that older questions use (“trusted identity provider”, “relying party”, “two-way trust”) and two related traps: Active Directory trust directions and Cognito sign-up checks.

Concept profile

AD FS federation trust

often confused with an Active Directory forest trust
?What is it?

The pair of settings that lets users sign in to AWS with their AD account through Active Directory Federation Services: AWS trusts AD FS as an identity provider, and AD FS trusts AWS as a relying party.

⚙How does it work?
  • In AWS: create an IAM SAML identity provider from the AD FS federation metadata (“AWS trusts AD FS”). Create roles whose trust policy allows sts:AssumeRoleWithSAML from that provider.
  • In AD FS: add a relying party trust for AWS using https://signin.aws.amazon.com/static/saml-metadata.xml (“AD FS trusts AWS”).
  • Claim rules send NameID, RoleSessionName (for example the e-mail) and Role = role-arn,provider-arn.
  • A common pattern names AD groups like AWS-111122223333-Dev; a claim rule turns each group into the matching IAM role ARN. AD groups map to roles, never to IAM groups or users.
  • Identity data stays on-premises; AWS only sees the signed assertion. CloudTrail shows the AssumeRoleWithSAML call and the session name.
{ }Structure
Userbrowser AD FSIdP in your data centre Active Directoryusers + groups AWS sign-in endpointsignin.aws.amazon.com/saml AWS STSAssumeRoleWithSAML Consoleas the role ① sign in ② check AD ③ SAML ④ POST assertion ⑤ ⑥ redirect
Your cheat sheet’s six steps: AD FS proves who you are, STS turns the proof into role credentials.
⇄AD FS federation trust vs an Active Directory forest trust
AD FS federation trustAD forest trust (Managed Microsoft AD)
BetweenAD FS and AWS (SAML)Two AD domains/forests (Kerberos/NTLM)
GivesConsole/CLI access as an IAM roleUsers of one domain can use resources of the other (domain-joined EC2, RDS SQL Server, FSx, WorkSpaces)
Set up inIAM SAML provider + AD FS relying party trustAWS Directory Service trust + the on-premises domain
Direction words“AWS trusts the IdP”, “AD FS trusts AWS as relying party”One-way incoming / outgoing, or two-way
Exam hint“sign in to the console with AD credentials, identities stay on-premises”“AD-aware workloads in AWS, on-prem admins need access”
!Common mistakes the exam tests
  • Configuring AWS as a relying party in “Active Directory”: it is configured in AD FS.
  • Mapping AD groups to IAM groups or creating IAM users for each employee.
  • Forgetting to update the IAM SAML provider after AD FS renews its token-signing certificate (section 3).
  • Choosing AWS Managed Microsoft AD when the question says “identity data must stay on-premises”: that creates a directory in AWS.
✓Benefits and use cases
  • Single sign-on for a few accounts with an existing AD FS farm.
  • No passwords stored in AWS.
  • For many accounts, the modern answer is IAM Identity Center with the same AD (AD Connector or Managed AD) or the same IdP over SAML/SCIM.

AD trust directions in one picture

A trust has a trusting domain (it owns the resources) and a trusted domain (it owns the users). Access flows the opposite way to the trust. In the AWS Directory Service console you create the trust on your AWS Managed Microsoft AD:

AWS console choiceWho trusts whomResult
One-way: outgoingAWS domain trusts the on-prem domainOn-prem users can use AWS resources; AWS-domain users can’t reach on-prem
One-way: incomingOn-prem domain trusts the AWS domainAWS-domain users can use on-prem resources; not the other way
Two-wayBothBoth sides can use each other’s resources (needed by some apps and by IAM Identity Center with a forest trust)
Wording trap. The same one-way trust is “outgoing” when you look from the AWS domain and “incoming” when you look from on-premises. Read what the question wants: “cloud users must not reach on-premises, on-premises admins must manage AWS resources” means the AWS domain trusts the on-premises domain, and nothing more.

Cognito: checking a sign-up before it happens

A Cognito user pool can call Lambda functions at fixed points. The Pre sign-up trigger runs before a user is created and can reject the registration (for example by country, e-mail domain or a fraud score). Other useful triggers: Pre authentication (block a sign-in), Post authentication, Pre token generation (add or remove claims), Define/Create/Verify auth challenge (custom MFA), User migration and Custom message. AWS WAF can also be associated with a user pool, but it filters all requests by IP or geography; it isn’t a validation step inside registration.

Think of it like · two kinds of “trust” at an embassy

The word “trust” means two different things here.

AWS conceptFamiliar thing
IAM SAML provider≈Your border accepting passports printed by a friendly country
AD FS relying party trust≈The friendly country agreeing to print passports that your border will read
Role claim≈The visa stamp that says which door the traveller may use
AD forest trust (outgoing from AWS)≈Your office lets visitors from head office use your meeting rooms, but your staff don’t get head-office badges
Pre sign-up trigger≈A receptionist who checks the visitor list before printing a new badge
Real AWS example · the role trust policy and the Role claim value

The trust policy names the SAML provider. The AD FS claim rule sends the matching pair of ARNs.

// Trust policy on role ADFS-Dev
{ "Effect": "Allow",
  "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ADFS" },
  "Action": "sts:AssumeRoleWithSAML",
  "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml" } } }

// Value of claim https://aws.amazon.com/SAML/Attributes/Role for a user in AD group AWS-111122223333-Dev
arn:aws:iam::111122223333:saml-provider/ADFS,arn:aws:iam::111122223333:role/ADFS-Dev

If the claim names a provider ARN that isn’t in the trust policy, sign-in fails with “not authorized to perform sts:AssumeRoleWithSAML”.

Exam-style scenario

A company runs RDS for SQL Server and Windows EC2 instances joined to a new AWS Managed Microsoft AD. Policy says cloud accounts must live in a separate domain and must not reach on-premises systems, while on-premises administrators (in the existing AD) must manage the AWS servers. Which TWO steps meet this most securely?

  1. A. Manage the servers with AWS Service Catalog.
  2. B. Create a two-way forest trust between the two domains.
  3. C. Use AWS Managed Microsoft AD for the AWS workloads.
  4. D. Create a one-way trust in which the AWS Managed Microsoft AD domain trusts the on-premises domain (“One-way: outgoing” in the AWS console).
  5. E. Create a one-way trust in which the on-premises domain trusts the AWS domain.
Show the worked answer

Answer: C and D

The AWS domain keeps cloud accounts separate. Trusting the on-premises domain lets its admins in, while AWS-domain users get nothing on-premises.

Why not the others

  • A: Service Catalog provisions products; it isn’t an identity boundary.
  • B: Two-way would let cloud users reach on-premises.
  • E: That gives access in the wrong direction.
How the exam tests this
  • “Configure AWS as … in AD FS”→ Relying party trust.
  • “Map on-premises AD groups to …”→ IAM roles.
  • “Console with AD credentials, identities stay on-premises”→ AD FS + SAML 2.0 (or Identity Center with AD Connector).
  • “On-prem users manage AWS-domain servers, not the reverse”→ One-way trust: AWS domain trusts on-prem (outgoing from AWS).
  • “Reject sign-ups from outside the country with custom logic”→ Cognito Pre sign-up Lambda trigger.
Must remember
  • AWS trusts AD FS = IAM SAML provider.
  • AD FS trusts AWS = relying party trust.
  • Role claim = roleArn,providerArn; AD group → role.
  • Trust direction is opposite to access direction.
  • Pre sign-up trigger can reject a registration.

Latest AWS update · IAM Identity Center in more than one Region (2026)

Identity Center used to live in a single Region: if that Region had a problem, nobody could sign in to their accounts through it. In February 2026 AWS added multi-Region replication for organization instances that use an external IdP, and in July 2026 extended it to the Identity Center directory. You pick extra Regions; users, groups and assignments are copied there automatically. Administration stays in the primary Region, but users can still reach their AWS accounts through a replica Region if the primary one is disrupted.

The instance must first be encrypted with a multi-Region customer managed KMS key. An AWS owned key isn’t enough, and a single-Region customer managed key can’t be used in the replica Regions. Replication is available in the 17 Regions that are enabled by default. Keep a break-glass path (Day 1 / Governance Day 1) anyway.
Think of it like · a company badge office with branch offices
AWS conceptFamiliar thing
Primary Region≈Head office, where new badges and rules are made
Replica Region≈A branch that keeps a copy of the staff list and can let people in if head office is closed
Multi-Region KMS key≈The same master key copied to every branch safe, so each branch can open the files
How the exam tests this
  • “Workforce must keep account access if the Identity Center Region fails”→ Multi-Region replication + multi-Region customer managed KMS key.
  • “Where do admins change permission sets after replication?”→ The primary Region only.
  • “Second Identity Center organization instance in another Region”→ Not possible: one organization instance per organization.
Must remember
  • Replication needs a multi-Region customer managed KMS key.
  • Admin in the primary Region; sign-in also from replicas.
  • External IdP (Feb 2026) and Identity Center directory (Jul 2026).
09

Lecture summary map

Day 4 on one screen: the mind map, the “front doors” picture, and the keyword chart.

1. Mind map

① Identity CenterPermission set → roleAWSReservedSSO_ rolesSession 1 h … 12 h② Sources & SCIMOne identity sourceSAML signs inSCIM syncs users③ SAML / OIDCIAM SAML providersaml:aud = endpointCert rotate → metadata④ Directory ServiceAD Connector = proxyManaged AD = real ADSimple AD: no MFA⑤ MFABoolIfExists in DenyPasskeys best, no SMSExternal IdP does MFA⑥ CognitoUser pool → JWTIdentity pool → credsGuest role: minimal⑦ TroubleshootingSign in → STS → policyNo account = assignmentSTS error = trustIAM Day 4human identities
Tap a branch to jump back to that part of the lecture. Try redrawing this map from memory on paper.

2. Which front door does each person use?

Employees, contractors→IAM Identity CenterSAML/SCIM from your IdP or ADLegacy: one account, one IdP→IAM SAML / OIDC providerAssumeRoleWithSAMLWindows apps, domain join→Directory ServiceManaged AD / AD ConnectorCustomers of your app→Cognito user poolJWT tokensCustomers calling AWS directly→Cognito identity poolAssumeRoleWithWebIdentityMachines (Day 3)→Roles · Roles Anywhereno long-term keys
Cover the middle column and try to name the service for each kind of person.

3. “If the question says… pick…”

Employees, many accounts, single sign-onIAM Identity Center + permission sets
Can't edit role AWSReservedSSO_…Change the permission set
Users/groups must sync from Okta or Entra IDSCIM automatic provisioning
Access by department attributeAttributes for access control → aws:PrincipalTag
One account, existing SAML IdPIAM SAML provider + AssumeRoleWithSAML
All SAML sign-ins fail after IdP maintenanceUpdate IdP metadata in IAM
On-prem AD, store nothing in AWSAD Connector
AD in AWS, trusts, survive link outageAWS Managed Microsoft AD
Deny unless MFA, CLI keys includedBoolIfExists aws:MultiFactorAuthPresent false
Customers sign up and sign inCognito user pool
App calls S3 directly per userCognito identity pool + ${cognito-identity…:sub}
User sees no account in the portalCheck assignment / SCIM sync
Day 4 in one sentence

Staff come in through Identity Center, customers through Cognito, and every door hands out only a temporary badge after someone else has checked the ID.

10

Must-remember cheat sheet

1. Identity Center: permission set → AWSReservedSSO_ role per account.
2. Account session 1 h default / 12 h max; portal 8 h / 90 days.
3. Customer managed policy in a set = by name, must exist in each account.
4. Only the organization instance does multi-account access.
5. One identity source. SAML signs in, SCIM provisions.
6. Attributes for access control → aws:PrincipalTag; IdC mapping beats SAML.
7. SAML trust policy: Principal.Federated + saml:aud.
8. IdP cert rotated → update metadata in the IAM SAML provider.
9. AD Connector = proxy; Managed AD = real AD + trusts.
10. Simple AD: no MFA, no trusts, not an IdC source.
11. Deny + BoolIfExists “false” catches access-key calls.
12. MFA: passkeys best, no SMS, up to 8 devices.
13. User pool → JWT; identity pool → AWS creds.
14. Identity pool trust: aud (pool ID) + amr.
15. Leaked-password protection: Cognito threat protection.
16. Troubleshoot: sign in → STS → policy.
17. AD FS: AWS trusts AD FS (SAML provider); AD FS trusts AWS (relying party).
18. AD trusts: access flows opposite to trust; outgoing from AWS = on-prem users in.
19. Identity Center multi-Region: needs a multi-Region customer managed KMS key; admin stays in the primary Region.
11

Core quiz

Check the basics first. Pick an answer, then press Check.

12

Hard quiz

Harder than most real exam questions on purpose. One is an ordering question, like the new SCS-C03 format. Aim for 9 out of 12 before Day 5.

13

Practice test questions (from your mock exams)

These questions come from your own mock exams (the SCS-003 mock 1–9 files in your study folder), matched to this lecture. Wording was tidied and checked against current AWS behavior; where a mock answer was outdated or wrong, the explanation says so. The source is shown at the end of each explanation, like “(Mock 5 · Q12)”. Pick an answer, then press Check. Questions marked (New) were written in October 2026 for exam-guide skills or AWS changes that the mocks don’t cover.

14

Hands-on lab (30 minutes)

  1. In a sandbox organization, enable IAM Identity Center (organization instance) and keep the Identity Center directory as source. Create a user and group lab-readers.
  2. Create permission set LabReadOnly with ReadOnlyAccess and a 2-hour session, and assign the group to one account.
  3. Open IAM in that account and find the AWSReservedSSO_LabReadOnly_… role. Try to edit it and read the message.
  4. Run aws configure sso, then aws sso login and aws sts get-caller-identity. Note the role session name.
  5. In CloudTrail Event history, filter by event source signin.amazonaws.com and find your sign-in.
  6. Bonus: create a Cognito user pool and identity pool, sign in with the hosted login page and call GetCredentialsForIdentity.