|
| 1 | +--- |
| 2 | +title: AWS IAM Identity Center (Preview) |
| 3 | +description: How to set up and use Teleport AWS IAM Identity Center integration |
| 4 | +--- |
| 5 | + |
| 6 | +Teleport's integration with [AWS IAM Identity Center](https://aws.amazon.com/iam/identity-center/) |
| 7 | +allows you to organize and manage your users' short- and long-term access to AWS |
| 8 | +accounts and their permissions. |
| 9 | + |
| 10 | +With the Identity Center integration you can grant or revoke persistent access |
| 11 | +to AWS accounts and resources using Teleport Access Lists, or use Teleport |
| 12 | +Access Requests for scenarios requiring temporary elevated AWS privileges. |
| 13 | + |
| 14 | +## How it works |
| 15 | + |
| 16 | +Identity Center integration builds on top of Teleport's [role-based access controls](../../access-controls/guides/guides.mdx), |
| 17 | +[just-in-time Access Requests](../../access-controls/access-requests/access-requests.mdx) |
| 18 | +and [Access Lists](../../access-controls/access-lists/access-lists.mdx). |
| 19 | + |
| 20 | +When enabled, Teleport takes ownership over Identity Center users, groups, and |
| 21 | +permission set assignments: |
| 22 | + |
| 23 | +- All Identity Center groups, along with their members, account and permission |
| 24 | + assignments, are imported into Teleport as Access Lists. |
| 25 | +- Identity Center account and permission assignments are expressed as Teleport |
| 26 | + role policies. |
| 27 | +- Changes made to Teleport users or Access Lists with Identity Center assigned |
| 28 | + permissions are reflected in the Identity Center. |
| 29 | + |
| 30 | +For managing long-term access, Teleport cluster administrators can designate |
| 31 | +Identity Center-synced Access Lists owners who will be responsible for adding |
| 32 | +or removing users and performing periodic access reviews. Users added to or |
| 33 | +removed from such Access Lists will be added to or removed from corresponding |
| 34 | +Identity Center groups. |
| 35 | + |
| 36 | +For short-term access, users can go through Teleport's standard Access Request |
| 37 | +flow in which case Teleport will assign requested privileges to a particular |
| 38 | +user and automatically unassign once the Access Request expires. |
| 39 | + |
| 40 | +<Admonition type="note"> |
| 41 | +The preview release of Teleport's Identity Center integration in Teleport 17.0 |
| 42 | +supports role Access Requests only. |
| 43 | + |
| 44 | +Resource Access Requests (ability to request access to a particular permission |
| 45 | +set in a particular account or a particular resource) will be added in follow |
| 46 | +up releases. |
| 47 | +</Admonition> |
| 48 | + |
| 49 | +## Prerequisites |
| 50 | + |
| 51 | +- Teleport Enterprise or Teleport Enterprise Cloud cluster version 17.0 or higher. |
| 52 | +- Administrative access to AWS IAM Identity Center. |
| 53 | + |
| 54 | +<Admonition type="warning"> |
| 55 | +Note that Identity Center integration requires using Teleport as an external |
| 56 | +identity source. |
| 57 | + |
| 58 | +As such, we recommend ensuring that all Identity Center users have access to |
| 59 | +your Teleport cluster before turning the integration on to avoid access |
| 60 | +interruption. If your Identity Center already uses external identity source, |
| 61 | +you can configure corresponding [SSO connector](../../access-controls/sso/sso.mdx) |
| 62 | +in Teleport or, if you're using Okta, turn on |
| 63 | +[Okta integration](../../../enroll-resources/application-access/okta/hosted-guide.mdx). |
| 64 | +</Admonition> |
| 65 | + |
| 66 | +## Step 1/6. Configure AWS integration |
| 67 | + |
| 68 | +Teleport provides a guided web UI based configuration flow for the Identity |
| 69 | +Center integration. To get started, navigate to the "Add new integration" page |
| 70 | +in your Teleport cluster control panel and select "AWS Identity Center". |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | +During this step, you will set up Teleport as an OIDC identity provider for |
| 75 | +your AWS account and create an AWS role with the permissions required for the |
| 76 | +integration to function, such as fetching Identity Center accounts, users, |
| 77 | +groups, permission set assignments, and so on. |
| 78 | + |
| 79 | +<Details title="Full list of IAM permissions required by Identity Center integration"> |
| 80 | +``` |
| 81 | +// ListAccounts |
| 82 | +organizations:ListAccounts |
| 83 | +organizations:ListAccountsForParent |
| 84 | +
|
| 85 | +// ListGroupsAndMembers |
| 86 | +identitystore:ListUsers |
| 87 | +identitystore:ListGroups |
| 88 | +identitystore:ListGroupMemberships |
| 89 | +
|
| 90 | +// ListPermissionSetsAndAssignments |
| 91 | +sso:DescribeInstance |
| 92 | +sso:DescribePermissionSet |
| 93 | +sso:ListPermissionSets |
| 94 | +sso:ListAccountAssignmentsForPrincipal |
| 95 | +sso:ListPermissionSetsProvisionedToAccount |
| 96 | +
|
| 97 | +// CreateAndDeleteAccountAssignment |
| 98 | +sso:CreateAccountAssignment |
| 99 | +sso:DescribeAccountAssignmentCreationStatus |
| 100 | +sso:DeleteAccountAssignment |
| 101 | +sso:DescribeAccountAssignmentDeletionStatus |
| 102 | +iam:AttachRolePolicy |
| 103 | +iam:CreateRole |
| 104 | +iam:GetRole |
| 105 | +iam:ListAttachedRolePolicies |
| 106 | +iam:ListRolePolicies |
| 107 | +
|
| 108 | +// AllowAccountAssignmentOnOwner |
| 109 | +iam:GetSAMLProvider |
| 110 | +
|
| 111 | +// ListProvisionedRoles |
| 112 | +iam:ListRoles |
| 113 | +``` |
| 114 | +</Details> |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | +Enter required information such as Identity Center region, ARN and integration |
| 119 | +name, and execute the generated command in the Cloud Shell. |
| 120 | + |
| 121 | +After the script has run, fill out the ARN for the role created by the script. |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | +## Step 2/6. Preview AWS resources |
| 126 | + |
| 127 | +On the next step, you are presented with the list of AWS accounts, groups, and |
| 128 | +permission sets that Teleport was able to find in your Identity Center. |
| 129 | + |
| 130 | + |
| 131 | + |
| 132 | +Pick the default owners that should be assigned to the Access Lists in Teleport. |
| 133 | +These resources will be imported into Teleport once the plugin is installed. |
| 134 | + |
| 135 | +## Step 3/6. Configure identity source |
| 136 | + |
| 137 | +<Admonition type="warning"> |
| 138 | +After this step, Teleport will become your Identity Center's identity provider. |
| 139 | + |
| 140 | +To avoid access interruptions, we recommend making sure that all existing |
| 141 | +Identity Center users have access to your Teleport cluster by, for example, using |
| 142 | +the same [IdP](../../access-controls/sso/sso.mdx) as your current Identity Center |
| 143 | +external identity source. |
| 144 | +</Admonition> |
| 145 | + |
| 146 | +Follow the instructions to change your Identity Center's identity source to |
| 147 | +Teleport. |
| 148 | + |
| 149 | + |
| 150 | + |
| 151 | +## Step 4/6. Enable SCIM |
| 152 | + |
| 153 | +The final step is to enable the SCIM endpoint in your Identity Center to |
| 154 | +allow Teleport to push user and group changes. |
| 155 | + |
| 156 | + |
| 157 | + |
| 158 | +Make sure to test SCIM connection after enabling it. |
| 159 | + |
| 160 | +## Step 5/6. Verify the integration |
| 161 | + |
| 162 | +Navigate to the Access Lists view page in your cluster and make sure that all |
| 163 | +your Identity Center groups have been imported. |
| 164 | + |
| 165 | +<Admonition type="note"> |
| 166 | +It may take a few minutes for the initial sync to complete. |
| 167 | +</Admonition> |
| 168 | + |
| 169 | + |
| 170 | + |
| 171 | +Imported Access Lists should show the same members as their corresponding |
| 172 | +Identity Center groups. |
| 173 | + |
| 174 | +## Step 6/6. Connect to AWS |
| 175 | + |
| 176 | +Once the integration is up and running, you will see an application named |
| 177 | +`aws-identity-center` among your resources: |
| 178 | + |
| 179 | + |
| 180 | + |
| 181 | +Clicking the "Log In" button for this app takes you to your Identity Center |
| 182 | +SSO start page which you can use to pick a role and connect to your AWS account |
| 183 | +as usual. |
| 184 | + |
| 185 | +## Usage scenarios |
| 186 | + |
| 187 | +Let's take a look at some common usage scenarios enabled by the Identity Center |
| 188 | +integration. |
| 189 | + |
| 190 | +### Managing access with Access Lists |
| 191 | + |
| 192 | +Teleport creates an Access List for each group found in the Identity Center, |
| 193 | +with group members becoming Access List members. Default Access List owners are |
| 194 | +configured during the initial integration enrollment flow and can be adjusted |
| 195 | +as necessary after the initial sync completes. |
| 196 | + |
| 197 | +Each imported Access List is automatically assigned a role (or a set of roles) |
| 198 | +that grant all members of that list access to a particular permission set on a |
| 199 | +particular AWS account based on the permissions the corresponding Identity Center |
| 200 | +group was assigned during the integration setup. Those roles are considered |
| 201 | +system roles generated by Teleport and are named using `<permission-set-name>-on-<account-name>` |
| 202 | +convention (e.g. `AdministratorAccess-on-my-account`). |
| 203 | + |
| 204 | +To give a user permission granted by an already-existing Identity Center synced |
| 205 | +Access List, an owner can add that user as a member which makes Teleport to add |
| 206 | +the user to its corresponding Identity Center group. |
| 207 | + |
| 208 | +<Admonition type="note"> |
| 209 | +While the integration is running, all existing Teleport users are synced to |
| 210 | +Identity Center. |
| 211 | +</Admonition> |
| 212 | + |
| 213 | +Removing a member from an Identity Center synced Access List removes them |
| 214 | +from the corresponding Identity Center group effectively revoking privileges. |
| 215 | + |
| 216 | +In addition to membership changes, Teleport propagates changes in Access List |
| 217 | +grants to Identity Center as well. In a scenario where, say, for an Access List |
| 218 | +with roles `AdministratorAccess-on-my-account` and `ReadOnlyAccess-on-my-account` |
| 219 | +one of the granted roles were to be removed, the corresponding Identity Center |
| 220 | +group would see its assignments updated accordingly. |
| 221 | + |
| 222 | +### Using role Access Requests |
| 223 | + |
| 224 | +For short-term privilege elevation, Identity Center integration works with |
| 225 | +Teleport Access Requests. |
| 226 | + |
| 227 | +When an Access Request for a role granting Identity Center privileges is |
| 228 | +approved, Teleport creates an individual assignment for that user in the |
| 229 | +Identity Center. The assignment is deleted when the Access Request expires. |
| 230 | + |
| 231 | +<Admonition type="note"> |
| 232 | +In a future version, Teleport will support requesting access to individual |
| 233 | +permission sets using resource-based Access Request flow similar to other |
| 234 | +Teleport resources. |
| 235 | +</Admonition> |
| 236 | + |
| 237 | +### Creating custom Identity Center roles |
| 238 | + |
| 239 | +You can craft your own roles that bind Identity Center accounts to permission |
| 240 | +sets, for example: |
| 241 | + |
| 242 | +```yaml |
| 243 | +kind: role |
| 244 | +version: v7 |
| 245 | +metadata: |
| 246 | + name: aws-dev-access |
| 247 | +spec: |
| 248 | + allow: |
| 249 | + account_assignments: |
| 250 | + - account: "<account_id>" # AWS identity center account ID |
| 251 | + name: AdministratorAccess # name of the permission set in AWS |
| 252 | + permission_set: arn:aws:sso:::permissionSet/ssoins-1234/ps-5678 # permission set ARN |
| 253 | + - account: "<account_id>" |
| 254 | + name: ReadOnlyAccess |
| 255 | + permission_set: arn:aws:sso:::permissionSet/ssoins-1234/ps-8765 |
| 256 | +``` |
| 257 | +
|
| 258 | +These roles can be assigned to users and Access Lists or requested by users |
| 259 | +using Access Requests flow described above. |
| 260 | +
|
| 261 | +## FAQ |
| 262 | +
|
| 263 | +### Which Access Lists are synced to Identity Center? |
| 264 | +
|
| 265 | +Teleport syncs all Access Lists that have AWS account and permission set rules |
| 266 | +among their role grants to Identity Center. |
| 267 | +
|
| 268 | +### How does it work with nested Access Lists? |
| 269 | +
|
| 270 | +Identity Center does not support nested groups. As such, Teleport flattens out |
| 271 | +the member list when syncing an Access List that has |
| 272 | +[nested Access Lists](../../access-controls/access-lists/nested-access-lists.mdx). |
| 273 | +
|
| 274 | +### How do I uninstall the integration? |
| 275 | +
|
| 276 | +<Admonition type="warning"> |
| 277 | +Before fully removing the integration, make sure to remember to change the |
| 278 | +identity source in your Identity Center. |
| 279 | +</Admonition> |
| 280 | +
|
| 281 | +You can remove the integration by navigating to your cluster's Integrations |
| 282 | +list and deleting both the integration named `AWS Identity Center`. The AWS |
| 283 | +OIDC integration that was created during the first enrollment step will be |
| 284 | +automatically removed as well once the plugin is uninstalled. |
| 285 | + |
| 286 | +To clean up AWS resources created for the integration, remove the Identity |
| 287 | +Provider and its role from your AWS IAM console as well. |
| 288 | + |
| 289 | +## Next steps |
| 290 | + |
| 291 | +- Take a deeper dive into fundamental Teleport concepts used in Identity Center |
| 292 | + integration such as [RBAC](../../access-controls/guides/guides.mdx), |
| 293 | + [JIT Access Requests](../../access-controls/access-requests/access-requests.mdx) |
| 294 | + and [Access Lists](../../access-controls/access-lists/access-lists.mdx). |
| 295 | +- Learn how to enable [Okta integration](../../../enroll-resources/application-access/okta/hosted-guide.mdx) |
| 296 | + to sync apps, users and groups from Okta in conjunction with Identity Center |
| 297 | + integration. |
0 commit comments