Security, Compliance, and Governance · Topic 1 of 8
Federation, Application Auth and Workload Identity
Choose IAM Identity Center with SAML and SCIM for staff, Cognito and OAuth for app users, and EKS Pod Identity or Roles Anywhere for workloads.
- 6 min
- SAML 2.0 signs people in; SCIM keeps users and groups in sync. They solve different problems.
- Permission sets in Identity Center become roles in each assigned account.
- Cognito user pools authenticate and issue JWTs; identity pools hand out AWS credentials.
What it is
Every request to AWS comes from an identity, and the professional exam asks you to pick the right identity system for three different callers. Employees need single sign on to many accounts, customers need to sign in to your application, and workloads need credentials without stored secrets.
The common thread is federation: trust an identity that already exists somewhere else and exchange it for short-lived AWS credentials. Long-term access keys are almost never the answer.
How it works
Workforce federation with IAM Identity Center
IAM Identity Center is the recommended way to give people access to many accounts in an organization. You connect one identity source: its own directory, Active Directory, or an external identity provider (IdP) such as Okta or Microsoft Entra ID.
Two standard protocols do different jobs. SAML 2.0 handles authentication, so the user signs in at the IdP and Identity Center trusts the assertion. SCIM (System for Cross-domain Identity Management) handles provisioning, so users and groups created or removed in the IdP appear or disappear in Identity Center automatically.
Access is granted by assigning a group a permission set in an account. Identity Center creates a matching role in each assigned account, so a change to the permission set reaches every account at once.
Direct IAM federation
IAM can also trust an IdP directly. An IAM SAML provider plus AssumeRoleWithSAML suits a single account or a legacy setup. An IAM OpenID Connect (OIDC) provider plus AssumeRoleWithWebIdentity suits workloads that hold an OIDC token, such as a CI/CD system that deploys into AWS without stored keys.
| Need | Choose |
|---|---|
| Staff sign in once to many accounts | IAM Identity Center with SAML 2.0 |
| Users and groups stay in sync with the IdP | SCIM provisioning into Identity Center |
| Pipeline or external service holds an OIDC token | IAM OIDC provider and a role trust policy |
| Single account with an existing SAML IdP | IAM SAML provider |
Application users with Amazon Cognito
A user pool is a user directory and OAuth 2.0 / OIDC provider for your app. It handles sign up, sign in, MFA and federation with social or enterprise IdPs, and it issues JSON Web Tokens (ID, access and refresh tokens).
An identity pool exchanges a token (from a user pool or another IdP) for temporary AWS credentials. Use it when the client itself must call AWS services, such as uploading to an S3 prefix for that user.
OAuth 2.0 grants matter here. The authorization code grant (with PKCE for public clients) suits interactive users. The client credentials grant suits machine to machine calls, where a user pool app client gets an access token with custom scopes from a resource server.
For fine-grained permissions inside the app, Amazon Verified Permissions evaluates Cedar policies against the token claims.
Workload identity on Amazon EKS
EKS Pod Identity gives a Kubernetes service account an IAM role. You install the EKS Pod Identity Agent add-on and create a pod identity association (cluster, namespace, service account, role). The role trusts the service principal pods.eks.amazonaws.com, so the same role can be reused across clusters without an OIDC provider per cluster.
IAM Roles for Service Accounts (IRSA) is the older option and still works. It needs an OIDC provider for each cluster and a trust policy that names that provider.
Workloads outside AWS with IAM Roles Anywhere
Servers, containers and applications that run on premises or in another cloud can get temporary credentials through IAM Roles Anywhere. The workload holds an X.509 certificate issued by your certificate authority (CA).
You register the CA as a trust anchor, either AWS Private CA or an external CA certificate. A profile lists which roles can be assumed and can add a session policy, and each role trusts the IAM Roles Anywhere service principal.
The trust boundary is the account: any certificate from a trust anchor in the account can assume any role that trusts the service, unless the role trust policy adds conditions such as the trust anchor ARN or certificate attributes.
How the exam asks about this
- "Employees use an existing IdP, and access to 80 accounts must be removed automatically when someone leaves." -> IAM Identity Center with SAML 2.0 for sign in and SCIM for provisioning.
- "A mobile app must let each signed-in user upload only to their own S3 prefix." -> Cognito user pool for sign in, identity pool for credentials, with a role policy scoped by the identity ID.
- "On-premises servers use long-term access keys to reach S3, and the company already runs a private CA." -> IAM Roles Anywhere with the CA as a trust anchor.
What to remember for the exam
- SAML 2.0 signs people in; SCIM keeps users and groups in sync. They solve different problems.
- Permission sets in Identity Center become roles in each assigned account.
- Cognito user pools authenticate and issue JWTs; identity pools hand out AWS credentials.
- Client credentials grant is for machine to machine; authorization code grant is for users.
- EKS Pod Identity needs no per-cluster OIDC provider; IRSA does.
- IAM Roles Anywhere replaces long-term keys outside AWS using X.509 certificates and trust anchors.
Creating IAM users with access keys for people or external servers is almost always a wrong answer. The exam wants federation and temporary credentials.
Common mistakes
Treating SCIM as a sign in protocol. SCIM only provisions users and groups. Authentication still happens through SAML with the IdP.
Using Identity Center for customers. Identity Center is for your workforce. Customers of your application belong in a Cognito user pool.
Choosing an identity pool when only API access is needed. If the backend validates a JWT at API Gateway or an ALB, the client does not need AWS credentials at all, so the identity pool adds nothing.
Check yourself
Which protocol keeps Identity Center users and groups in sync with an external IdP?
SCIM provisions and removes users and groups automatically, while SAML 2.0 handles the sign in itself.
What does a Cognito identity pool add on top of a user pool?
It exchanges the user's token for temporary AWS credentials through an IAM role, so the client can call AWS services directly.
What does an on-premises workload need to use IAM Roles Anywhere?
An X.509 certificate from a CA registered as a trust anchor, plus a profile and a role that trusts the IAM Roles Anywhere service.
Topic 1 of 8 in Security, Compliance, and Governance
Test yourself on Security, Compliance, and Governance
The full AWS SAP-C03 question bank has 850 questions, with timed practice exams and an explanation for every answer.
This study guide is independent and is not affiliated with, endorsed by, or sponsored by AWS. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.