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
In a nutshell
  • 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.

Workforcecorporate IdPSAML and SCIMIAM Identity Centerpermission setstemporary credentialsMember accountsApp userssign intokensCognitouser poolexchangeAWS credentials or API access

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.

NeedChoose
Staff sign in once to many accountsIAM Identity Center with SAML 2.0
Users and groups stay in sync with the IdPSCIM provisioning into Identity Center
Pipeline or external service holds an OIDC tokenIAM OIDC provider and a role trust policy
Single account with an existing SAML IdPIAM 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.

Userbrowser or mobilesign inUser poolJWT tokensvalidateAPI Gateway or ALBauthorizerUser poolJWT tokensexchangeIdentity poolIAM rolecallsS3 or DynamoDB

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.

On premises serverX.509 certificateCreateSessionIAM Roles Anywheretrust anchor and profileassumeIAM roletemporary credentials

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.
Watch out

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.