Capabilities
The AWS Account Access Manager connector syncs the following resources:This connector emits Role grants whose principal is an AWS Identity Center user or group, but it has no Identity Center sync of its own — so those grants carry an
ExternalResourceMatchID annotation and the platform correlates them against whatever other connector (for example, an AWS Identity Center connector) already syncs that same identity. Once correlation runs, every grant principal is that connector’s own user or group resource.The two placeholder resource types this uses are declared internally only to supply the principal resource-type IDs, and have no syncer, so they are not capabilities and do not appear above.An Identity Center connector is a prerequisite, not an optimisation. This connector declares that it requires an external connector, so a ConductorOne-hosted sync with none configured fails outright rather than completing with unresolved principals. If a sync errors saying an external connector is required, pair this connector with one that syncs the same IAM Identity Center instance.Stale access can linger in AWS after you remove something. Account Access Manager does not clean
entitlements up on its own, so an assignment survives the deletion of the IAM role it points at, and the
removal of the user or group from IAM Identity Center. Those rows keep appearing in synced grants until
someone revokes them. Renaming an AWS account is not reflected either — the account name captured when
the assignment was created is the one you will see.
Gather AWS Account Access Manager credentials
C1 reaches your AWS account through an IAM role that you create and that trusts ConductorOne. You hand over no long-lived credentials, and you revoke access by editing that one trust policy. This is the only option for a C1-hosted connector — the access key fields are not offered there.1
In C1, open the connector’s Settings and copy the value of AWS Role External ID. You will paste it into the trust policy below.
2
Navigate to the IAM Dashboard and select Roles > Create role.
3
Select Custom trust policy and paste the following into the trust policy JSON editor, replacing Notes on the trust policy:
EXTERNAL_ID_FROM_C1 with the External ID you copied from C1:"Principal": arn:aws:iam::765656841499:role/ConductorOneService is ConductorOne’s isolated AWS service account. It is the only entity this policy trusts, so no other account can assume the role."Action": "sts:AssumeRole": the only action allowed, and it lets ConductorOne take a temporary session in your account rather than hold a standing credential."Condition" on sts:ExternalId: a shared identifier confirming which trust relationship is in use, which is what prevents the confused deputy problem. It must match character for character.4
Click Next, then attach the permissions policy from the next step (or skip Add permissions and attach it afterwards).
5
Give the role a name, add any tags relevant to your organization, and click Create role. Open the new role and copy its ARN — that is the value for AWS Role ARN in C1.
6
Attach a policy granting
account-access:ListApplications, account-access:GetApplication, account-access:ListEntitlements, account-access:CreateEntitlement, and account-access:DeleteEntitlement, plus organizations:ListAccounts. sso:ListInstances is optional but recommended. organizations:ListAccounts is what lets the connector find the accounts to look for role assignments in; without it no roles are discovered. organizations:ListAccounts is not only an IAM question: AWS answers it from the organization’s management account or a delegated administrator, and refuses it from an ordinary member account whatever the policy grants. So the connector has to run from one of those two. sso:ListInstances (the IAM prefix for IAM Identity Center is sso, not sso-admin, which is only the SDK’s name for the API) is used only at setup, to confirm the Identity Store ID you enter is really this account’s. Setup never fails over it: with the permission the connector can tell you when the ID is not one this account can see, and without it that check simply does not run. Granting it is still worth doing, because a wrong ID is otherwise invisible — the sync succeeds, the roles appear, and every grant silently disappears. If you cannot see the connector’s logs, you can check it yourself: the ID here must match the Identity Store ID in the IAM Identity Center console under Settings, and a sync that produces roles but no grants is the symptom of a mismatch.7
For every IAM role you intend to grant access to through Account Access Manager, add a trust policy statement allowing the
account-access.amazonaws.com service principal to sts:AssumeRole and sts:SetContext, with a Condition block matching aws:SourceAccount and aws:SourceArn for your application — without it, granting access to that role fails with a validation error.8
If a sync later fails with
AccessDenied: ... is not authorized to perform: sts:AssumeRole, check the external ID before changing any permissions. AWS returns that same message for a mismatched sts:ExternalId as it does for a role that genuinely denies access. The connector’s error names which hop failed and which field feeds it. Regenerating the External ID in C1 means updating this trust policy too.9
Look up the AWS Identity Store ID (Identity Center console → Settings, format
d-xxxxxxxxxx) backing this Application’s Identity Center instance, and copy the role ARN and Identity Store ID for the configuration step below.10
Make sure a connector that syncs the same IAM Identity Center instance is already set up in C1 — an AWS connector with Identity Center enabled, for example. This connector emits every role grant against an Identity Center user or group and syncs none of those identities itself, so without that pair there is nothing to correlate the grants to and the sync fails.
Configure the AWS Account Access Manager connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by C1.Done. Your AWS Account Access Manager connector is now pulling access data into C1.
1
In C1, navigate to Integrations > Connectors and click Add connector.
2
Search for AWS Account Access Manager and click Add.
3
Choose how to set up the new AWS Account Access Manager connector:
- Add the connector to a currently unmanaged app
- Add the connector to a managed app
- Create a new managed app
4
Set the owner for this connector.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
Enter the required configuration:
- AWS Region: the primary region of your IAM Identity Center instance. Account access manager must be enabled in that same region.
- Identity Store ID (required): the Identity Store ID for your IAM Identity Center instance, from the AWS IAM Identity Center console under Settings. Format
d-1234567890, or a UUID if migrated from legacy AWS SSO. It must be the same identity store your AWS connector syncs. - Application ARN (optional): scope sync to a single Application. Leave blank to sync every Application visible to the credentials below.
- AWS Role ARN / AWS Role External ID: the role C1 assumes in your account, and the external ID its trust policy must require.
8
Click Save.
9
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.