sub claim is the ARN of that role, for example arn:aws:iam::123456789012:role/payments-batch, and that ARN is what you map to a service account. Nothing is stored on either side: the workload uses the role credentials it already has.
Each AWS account has its own token issuer. Bifrost trusts only the accounts you add, never AWS as a whole.
Prerequisites
- Permission to change the AWS account’s IAM settings and the workload role’s policy.
- In Bifrost, the User Provisioning permission to add the account as a trusted issuer, and User Provisioning →
UpdateWorkloadIdentitiesto map roles to service accounts.
Step 1: Turn on outbound identity federation
Do this once per AWS account, in the IAM console under Account settings → Outbound web identity federation, or with the AWS CLI:https://<id>.tokens.sts.global.api.aws. You can read it again at any time:
Step 2: Add the account as a trusted issuer
- In Bifrost, open User Provisioning, edit your SSO provider, and go to Provider Configuration → Workload identity.
- Under Additional trusted issuers, select Add issuer, give it a name such as
AWS prod, choose the AWS kind and paste the issuer URL. Mappings refer to the issuer by this name. - Set the audience workloads will request tokens for. Bifrost suggests its own URL, such as
https://bifrost.example.com. - Select Test. Bifrost fetches the issuer’s discovery document and signing keys, so a typo or an account without federation turned on shows up here.
- Save the provider. Trusted issuers are part of the provider’s settings, so they are replaced if you switch to another identity provider.
Step 3: Let the role request tokens
Addsts:GetWebIdentityToken to the policy of the role the workload runs as: the Lambda execution role, ECS task role, EC2 instance profile or EKS pod role.
Step 4: Map the role to a service account
- Open the service account under Governance → Users and go to Workload identity.
- Select Add workload identity, choose your AWS issuer, and paste the IAM role ARN exactly as IAM shows it. ARNs are matched exactly, including the case of the role name.
- Select Add.
Step 5: Call Bifrost from the workload
The workload requests a token from a regional STS endpoint and sends it as the bearer token:GetWebIdentityToken is not available on the global STS endpoint, and needs a recent AWS SDK.
Things to know
- A recreated role has the same ARN. If a role is deleted and another is created with the same name, its tokens match the same mapping. Remove the mapping when you retire a role.
- One issuer per account. Add each AWS account whose workloads should call Bifrost. Once roles are mapped on an issuer, its issuer URL can’t change; add a new account as another issuer.
- Virtual keys keep working. Moving a workload to AWS tokens is opt-in per workload.

