Skip to content

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 removed

Because 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.com

Then collect the application ARN and the Application URL.

  1. Sign in to the management account and open https://<primary-region>.console.aws.amazon.com/account-access/.
  2. If the page offers Enable Account Access, select it.
  3. Open the Settings page. The application ARN is shown there, and the Application URL is in the Instance details section.
  4. 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.

FieldValue
Management Account IDThe organization’s management account number
AWS Account Access Application ARNThe arn:aws:account-access: ARN from Step 1
Identity Provider NameThe per-tenant IAM SAML provider
Integration Role Namebritive-integration-role by default
Duration of the backend AWS connection1 hour by default
RegionThe organization’s IAM Identity Center primary region
Login URLThe Application URL from Step 1
Maximum session duration for profiles12: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

SymptomLikely causeFix
Save and Test fails naming the application ARNThe ARN does not exist in this account or region, or it is an arn:aws:sso:: ARNTake the ARN from the account access manager Settings page
Save and Test reports it cannot verify the ARNThe integration role lacks account-access:ListApplicationsAttach the policy in Step 3
A scanned role cannot be added to a profileThe trust policy is missing sts:SetContextAdd both actions as shown in Step 2
Checkout succeeds but the user sees nothing in the portalSigned in as the wrong identitySign in as the user the profile was checked out for
Checkout fails when creating the entitlementThe integration role lacks account-access:CreateEntitlementAttach the policy in Step 3
The console offers Enable Account Access on an enabled organizationWrong regionUse the organization’s IAM Identity Center primary region
aws: Invalid choice: account-accessAWS CLI too oldUpgrade to 2.33.29 or later

Next Steps

Last updated on