Skip to main content
This is an updated and improved version of the AWS connector!If you’re setting up AWS with ConductorOne for the first time, you’re in the right place.

Capabilities

ResourceSyncProvision
IAM and Identity Center user accounts
IAM roles
IAM groups
IAM accounts
Identity Center groups
Accounts via Permission Sets*
Secrets - Access keys
The AWS connector supports automatic account provisioning and deprovisioning of IAM accounts. *The connector can provision to accounts via permissions sets only if Identity Center is enabled. This connector can sync secrets and display them on the Inventory page.

Known limitations

  • Cross-account Assume Role is not currently supported

Gather AWS credentials

Configuring the connector requires you to pass in credentials generated in AWS. Gather these credentials before you move on.
ImportantA user with the Connector Administrator or Super Administrator role in ConductorOne and the ability to create an IAM Role in AWS must perform this task.ConductorOne uses an IAM Trust relationship between your AWS Account and ConductorOne’s Service AWS Account. This is the AWS recommended method of sharing access to AWS Accounts. ConductorOne has a specially created and isolated AWS Account dedicated to the AWS integration. For advanced configurations, the only trusted entity should be the following ARN: arn:aws:iam::765656841499:role/ConductorOneService
Follow the relevant set of instructions below to set up the AWS connector for IAM or SSO, as your configuration dictates.

IAM setup: Gather credentials that support syncing child account data

To sync IAM data (like users, roles, and groups) from multiple AWS child accounts, ConductorOne uses a secure, read-only mechanism called cross-account access. This setup works by allowing a central role in your root account to temporarily assume a specific role in each child account. This method ensures that the connector can gather the necessary data without storing credentials or requiring permanent access.If you’re using this setup, make sure to click Enable support for AWS Organizations when setting up the connector in the ConductorOne web UI, and DO NOT click Enable support for AWS IAM Identity Center or Enable usage of the AWS IAM Identity Center SCIM API.In order to use the connector to gather IAM AWS data, you’ll need to configure each sub-account to have a role with a trust policy. There are two options here:
  • Use OrganizationAccountAccessRole, and add the following to the management role: { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::*:role/OrganizationAccountAccessRole" }
  • Create a new custom role by following the steps below

Create a custom IAM role

This custom role acts as a bridge, allowing ConductorOne to securely access your child account. The trust policy you’re about to create is the key to this connection.
1
Navigate to the IAM Dashboard and select Roles > Create Role.
2
Select Custom Trust Policy and paste the following into the Trust Policy JSON editor, replacing {ROOT_ID} with the root ID from the main account, ConductorOneService with the role name from the root account, and EXTERNAL_ID_FROM_C1_INTEGRATIONS_PAGE with the External ID from ConductorOne.
{
"Version": "2012-10-17",
"Statement": [
    {
    "Sid": "Statement1",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{ROOT_ID}:role/ConductorOneService"
    },
    "Action": "sts:AssumeRole"
    }
]
}
Notes on the Trust Policy: “Action”: “sts:AssumeRole”: This is the core permission. It’s the only action allowed by this policy, and it specifically allows the ConductorOne role in your root account to temporarily assume this role in the child account. Think of it like a temporary key that only the main account can use. “Principal”: “arn:aws:iam::{ROOT\_ID}:role/ConductorOneService”: This is the trusted entity. It specifies that only the ConductorOne role in your main root account is allowed to assume this role. This ensures that no other account can use this trust policy.
3
Click Next.
4
Skip Add permissions and click Next.
5
Give the role a name, such as ConductorOneIntegration.
6
Add any tags relevant to your organization and click Create Role.
7
Find the newly created role, and click on it to view the role details page.

Grant permission for data sync

Next, you will create an inline policy to define the specific data this role can gather from the child account. These are read-only permissions that enable ConductorOne to securely sync your IAM data.
1
Under Permissions Policies, click Add Permissions and select Create Inline Policy.
2
Switch to the JSON Editor tab and paste the following policy into the editor:
{
"Action": [
    "iam:ListUsers",
    "iam:ListGroups",
    "iam:ListRoles",
    "iam:GetGroup",
    //The following two permissions are only needed if you want ConductorOne to sync access key secret data
    "iam:ListAccessKeys",
    "iam:GetAccessKeyLastUsed", 
],
"Effect": "Allow",
"Resource": "*",
// The minimum permissions required for the connector to sync. This will sync IAM Users, Groups, and Roles
"Sid": "MinimumRequiredPermissionsSyncIAMUsersGroupsRoles"
}
Notes about permissions: iam:ListUsers: Allows ConductorOne to retrieve a list of all IAM user accounts in this AWS account. iam:ListGroups: Allows ConductorOne to retrieve a list of all IAM groups. iam:ListRoles: Allows ConductorOne to retrieve a list of all IAM roles. iam:GetGroup: Required to see which users belong to which groups. The ListGroups action only provides the group name, while GetGroup provides the group’s members. iam:ListAccessKeys and iam:GetAccessKeyLastUsed: These are optional permissions. They allow ConductorOne to gather data on the status of your IAM access keys, such as when they were last used. This is useful for auditing and security purposes (such as identifying unused or old keys). ConductorOne does not store or access the secret access key itself.
3
Click Review Policy.
4
Give the policy a name, such as ConductorOnePermissions and click Create Policy.
5
Copy the Role ARN for the Role we created, it should look like: arn:aws:iam::NNNNNNNNNN:role/ConductorOneIntegration.
That’s it! Next, move on to the connector configuration instructions.

Configure the AWS connector

To complete this task, you’ll need:
  • The Connector Administrator or Super Administrator role in ConductorOne
  • Access to the set of AWS credentials generated by following the instructions above
Follow these instructions to use a built-in, no-code connector hosted by ConductorOne.
1
Return to the AWS v2 connector setup page in ConductorOne.
2
Find the Settings area of the page and click Edit.
3
Paste the AWS Role ARN into the Role ARN field.
4
Optional. Click to Enable support for AWS Organizations. If support for AWS Organizations is enabled, the IAM Role (as described in Step 2) must be created in the management (formerly called master) account of the AWS Organization. If the IAM Role is created on a member account and support for AWS Organizations is enabled, the integration will return a 400 error.
5
Optional. Click to Enable support for AWS IAM Identity Center and select the region for AWS IAM Identity Center from the dropdown.
6
Optional. To enable ConductorOne to sync the statuses of SSO accounts, click to Enable usage of the AWS IAM Identity Center SCIM API and enter the SCIM endpoint and access token in the relevant fields.
7
Optional. Enable Sync secrets to display them on the Inventory page.
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.
That’s it! Your AWS connector is now pulling access data into ConductorOne.