Capabilities
| Resource | Sync | Provision |
|---|---|---|
| Accounts | ||
| Groups | ||
| IAM roles | ||
| Cluster roles | ||
| Namespaces | ||
| Namespace roles | ||
| Access policies |
Before you begin
This connector requires you to have a working AWS connector. If you haven’t already done so, set up the AWS connector before you proceed. You’ll also need the AWS CLI installed and configured, andkubectl configured to connect to your EKS cluster.
Gather EKS credentials
Configuring the connector requires you to pass in credentials generated in EKS. The EKS connector requires different credentials based on your chosen hosting method:| Credential | Cloud-hosted | Self-hosted | Notes |
|---|---|---|---|
| Region | |||
| Cluster name | |||
| Access key | |||
| Access key secret | |||
| Assume role ARN | The configuration process varies by hosting method. |
(Cloud and self-hosted) Look up your region and cluster name
1
Log into the AWS Management Console.
2
In the top right corner of the screen, make a note of your region.
3
Next, navigate to the Amazon EKS service page (you can search for “EKS” to get there quickly).
4
On the EKS dashboard, click Clusters.
5
A list of the clusters in the current region is shown. Make a note of the name of the cluster you want to integrate with ConductorOne.
(Self-hosted) Look up an AWS IAM access key and secret
1
Navigate to IAM (Identity and Access Management) > Users and select the user you want to generate the key for.
2
Click Security credentials and find the Access keys section of the page.
3
Click Create access key, and choose use cases as relevant (these do not impact the scope of the key itself).
4
Click Next.
5
Click Create access key.
(Cloud-hosted) Generate an Assume Role ARN
This process has several steps, and we’ll walk through them together.Get a ConductorOne-provided External ID
1
In ConductorOne, navigate to Admin > Connectors and click Add connector.
2
Search for Amazon EKS and click Add.
3
Choose how to set up the new AWS connector:
- Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with ConductorOne)
- Add the connector to a managed app (select from the list of existing managed apps)
- Create a new managed app
4
Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of ConductorOne users. Setting multiple owners is allowed.
If you choose someone else, ConductorOne will notify the new connector owner by email that their help is needed to complete the setup process.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
Copy and save the External ID populated in the External ID field.
Create a custom IAM role
1
In a new browser tab, sign in to your AWS Account using your existing credentials or SSO.
2
Navigate to the IAM Dashboard and select Access Management > Roles > Create Role.
3
Select Custom Trust Policy and paste the following into the Trust Policy JSON editor, replacing
EXTERNAL_ID_FROM_C1_INTEGRATIONS_PAGE with the External ID from ConductorOne.4
Click Next.
5
Skip Add permissions and click Next.
6
Give the role a name, such as ConductorOneIntegration.
7
Add any tags relevant to your organization and click Create Role.
8
Find the newly created role, and click on it to view the role details page.
9
Under Permissions Policies, click Add Permissions and select Create Inline Policy.
10
Switch to the JSON Editor tab and paste the following policy into the editor:
11
Click Review Policy.
12
Give the policy a name, such as ConductorOnePermissions and click Create Policy.
13
Copy the Role ARN for the role we created, it should look like:
arn:aws:iam::NNNNNNNNNN:role/ConductorOneIntegration.(Self-hosted) Generate an Assume Role ARN
1
Sign in to your AWS Account using your existing credentials or SSO.
2
Navigate to the IAM Dashboard and select Access Management > Roles > Create Role.
3
Select Custom Trust Policy and paste the following into the Trust Policy JSON editor
4
Click Next.
5
Skip Add permissions and click Next.
6
Give the role a name, such as ConductorOneIntegration.
7
Add any tags relevant to your organization and click Create Role.
8
Find the newly created role, and click on it to view the role details page.
9
Under Permissions Policies, click Add Permissions and select Create Inline Policy.
10
Switch to the JSON Editor tab and paste the following policy into the editor:
11
Click Review Policy.
12
Give the policy a name, such as ConductorOnePermissions and click Create Policy.
13
Copy the Role ARN for the role we created, it should look like:
arn:aws:iam::NNNNNNNNNN:role/ConductorOneIntegration.Assign the role permissions within the cluster
Once you have created the role, you need to assign it permissions inside the cluster. You can do this by editing theaws-auth configmap and mapping the created role to the cluster-admin user or any cluster user/group with admin privileges. For more restricted, granular permissions, you can create a custom ClusterRole that has read-only permissions.
To use the connector for role provisioning, the assumed IAM role must be part of the system:masters group.
You can see the current state of your aws-auth configmap by running:
mapRoles section:
aws-auth configmap. Since this configmap lives in kube-system namespace, special permissions are required. You need to be part of the system:masters group in Kubernetes. The members of this group have full administrative permissions over the entire cluster (including edit resources in the kube-system namespace where the aws-auth configmap resides). Note: The cluster creator is automatically added to this group.
To add a role to the system:masters group you can follow the process above to edit the configmap and add an entry in the mapRoles field.
Example entry:
Configure the EKS connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by ConductorOne.That’s it! Your EKS connector is now pulling access data into ConductorOne.
1
In ConductorOne, navigate to Admin > Connectors and click Add connector.
2
Search for AWS Elastic Kubernetes Service and click Add.
3
Choose how to set up the new EKS connector:
- Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with ConductorOne)
- Add the connector to a managed app (select from the list of existing managed apps)
- Create a new managed app
4
Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of ConductorOne users. Setting multiple owners is allowed.
If you choose someone else, ConductorOne will notify the new connector owner by email that their help is needed to complete the setup process.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
Enter the EKS credentials into the relevant fields.
8
Finally, tell the connector where to find the identities that will be used for this app in ConductorOne.
- In the Shared identity source area of the page, click Edit.
- Select your AWS v2 connector.
- Optional. Limit the identities pulled from the connector you selected to only those with a certain entitlement by setting the entitlement.
- Click Save.
9
Click Save.
10
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.