AWS Account Access
Overview
AWS account access manager assigns your existing IAM roles to users in your IAM Identity Center organization instance. This guide connects it to Britive so those roles become checkout-able profiles.
What you’ll accomplish:
- Enable account access manager on your AWS organization’s management account
- Allow account access manager to assume the IAM roles you want to grant
- Onboard the application in Britive, scan it, and verify a checkout end to end
This app type does not use SAML for the role being checked out. If you have onboarded an AWS or AWS Identity Center application before, the trust policy here is different — see Step 2.
How It Works
At checkout, Britive creates an entitlement in account access manager binding the user to an account and role. The user then reaches that account through the AWS account access portal. At check-in, Britive deletes the entitlement.
Checkout → account-access:CreateEntitlement → user opens account access portal
→ sts:AssumeRole (account-access.amazonaws.com) → account console or CLI
Check-in → account-access:DeleteEntitlement → access removedBecause the grant is the entitlement rather than a credential, no long-lived keys exist and nothing is issued to the user by Britive.
Before You Begin
- An AWS organization with a management account, and administrator access to it
- An IAM Identity Center organization instance, with users synchronized from your identity source
- A Britive tenant with administrator access
- The Britive integration role already configured in the management account — see Getting Started
- AWS CLI 2.33.29 or later, if you plan to use the CLI steps
Confirm that account access manager is available in your IAM Identity Center primary Region. See AWS prerequisites and considerations.
If your organization filters web traffic — through a corporate VPN, firewall, or secure web gateway — allow the account access manager endpoints before users sign in. See AWS network allowlisting requirements.
Step 1 — Enable account access manager and get the application ARN
Account access manager can only be enabled in the region where IAM Identity Center was first enabled for the organization — its primary region.
AWS KMS — only if your IAM Identity Center instance uses a customer managed key, including a multi-Region instance. Skip this if it does not.
AWS requires account access manager to have kms:Decrypt on that key so it can decrypt IAM Identity Center data when connecting to the instance. Without it, account access manager may fail to connect, or later operations fail with a kms:Decrypt access-denied error.
Grant the permission through the IAM Identity Center customer managed key policy — it is not added to the Britive integration role — before you enable account access manager. See Baseline KMS key policy.
From the management account, enable trusted service access for account access manager:
aws organizations enable-aws-service-access \
--service-principal account-access.amazonaws.comThen collect the application ARN and the Application URL.
- Sign in to the management account and open
https://<primary-region>.console.aws.amazon.com/account-access/. - If the page offers Enable Account Access, select it.
- Open the Settings page. The application ARN is shown there, and the Application URL is in the Instance details section.
- Note both values.
IAM Identity Center also lists an application named AWS account access whose ARN begins with arn:aws:sso::. That ARN is not supported. Use only the ARN from the account access manager Settings page, which begins with arn:aws:account-access:.
Step 2 — Allow account access manager to assume the role
Add this statement to the trust policy of every IAM role you want to grant through Britive.
{
"Effect": "Allow",
"Principal": { "Service": "account-access.amazonaws.com" },
"Action": ["sts:AssumeRole", "sts:SetContext"],
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<management-account-id>",
"aws:SourceArn": "<account-access-manager-arn>"
}
}
}Both actions are required. A role missing either one is discovered by the scan but cannot be added to a profile.
Step 3 — Grant the integration role account access permissions
Britive creates and deletes entitlements, so the integration role needs write access to the account-access namespace — not read-only access as with other AWS application types.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DiscoverApplications",
"Effect": "Allow",
"Action": "account-access:ListApplications",
"Resource": "*"
},
{
"Sid": "ManageEntitlements",
"Effect": "Allow",
"Action": [
"account-access:ListEntitlements",
"account-access:CreateEntitlement",
"account-access:DeleteEntitlement"
],
"Resource": "arn:aws:account-access:<region>:<management-account-id>:application/<application-id>"
}
]
}Britive uses ListApplications during Save and Test to confirm the application ARN exists in the configured management account and Region. AWS does not support resource-level scoping for this action, so it requires "Resource": "*".
Attach this alongside the read permissions the integration role already carries for scanning.
Step 4 — Add the application in Britive
In the Britive console, go to System Administration → Tenant Apps → Add Applications and select AWS Account Access. Complete both tabs, then select Save and Test.
| Field | Value |
|---|---|
| Management Account ID | The organization’s management account number |
| AWS Account Access Application ARN | The arn:aws:account-access: ARN from Step 1 |
| Identity Provider Name | The per-tenant IAM SAML provider |
| Integration Role Name | britive-integration-role by default |
| Duration of the backend AWS connection | 1 hour by default |
| Region | The organization’s IAM Identity Center primary region |
| Login URL | The Application URL from Step 1 |
| Maximum session duration for profiles | 12:00 by default |
Save and Test resolves the application ARN against your account. A failure naming the ARN means the value is wrong or belongs to another account or region.
Step 5 — Scan the organization and its accounts
Run an organization scan
The organization’s member accounts appear as environments.
Run an environment scan on the management account
Identity Center users are ingested here — only at the management account — along with that account’s own IAM roles.
Run an environment scan on each member account
IAM roles are ingested per account. Roles differ between accounts, so scan every account you intend to grant.
Step 6 — Create a profile and check out
Create a profile containing a scanned role, add a member, and have that member check it out from My Access.
Verify
Confirm the entitlement exists in AWS
aws account-access list-entitlements \
--application-arn <account-access-manager-arn> \
--filter '{"principalRole":{"account":"<member-account-id>"}}' \
--region <primary-region>The filter is required — the API rejects an unfiltered call, and accepts account, principal, or roleArn. The response lists an entitlement for the checked-out user, account, and role.
Reach the account as the entitled user
Open the Application URL from Step 1 and sign in as the user the profile was checked out for — not as an AWS administrator. The entitled account and role are listed, and opening it lands in that account’s console.
For CLI access, sign in through the browser first, then run aws login to pick up the role session.
Check in
Return to My Access and select Check In. Re-running list-entitlements returns no entitlement, and the account disappears from the portal.
Troubleshoot
| Symptom | Likely cause | Fix |
|---|---|---|
| Save and Test fails naming the application ARN | The ARN does not exist in this account or region, or it is an arn:aws:sso:: ARN | Take the ARN from the account access manager Settings page |
| Save and Test reports it cannot verify the ARN | The integration role lacks account-access:ListApplications | Attach the policy in Step 3 |
| A scanned role cannot be added to a profile | The trust policy is missing sts:SetContext | Add both actions as shown in Step 2 |
| Checkout succeeds but the user sees nothing in the portal | Signed in as the wrong identity | Sign in as the user the profile was checked out for |
| Checkout fails when creating the entitlement | The integration role lacks account-access:CreateEntitlement | Attach the policy in Step 3 |
| The console offers Enable Account Access on an enabled organization | Wrong region | Use the organization’s IAM Identity Center primary region |
aws: Invalid choice: account-access | AWS CLI too old | Upgrade to 2.33.29 or later |
Next Steps
- Getting Started — the SAML-based AWS application type, and the integration role setup shared with this guide
- AWS account access manager — AWS’s own documentation