Skip to content

Commit 228da96

Browse files
authored
Merge branch 'master' into creack/fix-k8s-port-fw-audit-events
2 parents 5191680 + a9c7978 commit 228da96

File tree

30 files changed

+613
-29
lines changed

30 files changed

+613
-29
lines changed

docs/cspell.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@
534534
"httpout",
535535
"iamserviceaccount",
536536
"iamshowcase",
537+
"identitystore",
537538
"idfile",
538539
"idps",
539540
"importcert",
@@ -870,6 +871,7 @@
870871
"sslkey",
871872
"sslmode",
872873
"sslrootcert",
874+
"ssoins",
873875
"starttls",
874876
"statefulset",
875877
"storageclasses",
@@ -1018,4 +1020,4 @@
10181020
"**/reference/terraform-provider/**",
10191021
"**/reference/operator-resources/**"
10201022
]
1021-
}
1023+
}
-39.7 KB
Loading
Loading
Loading

docs/img/identity-center/ic-app.png

723 KB
Loading

docs/img/identity-center/ic-lists.png

702 KB
Loading
Loading
846 KB
Loading
831 KB
Loading

docs/img/identity-center/ic-step2.png

882 KB
Loading

docs/img/identity-center/ic-step3.png

932 KB
Loading

docs/img/identity-center/ic-step4.png

856 KB
Loading

docs/pages/admin-guides/access-controls/access-request-plugins/ssh-approval-msteams.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@ compromising productivity.
1111

1212
![The Microsoft Teams Access Request plugin](../../../../img/enterprise/plugins/msteams.png)
1313

14+
<Details title="This integration is hosted on Teleport Enterprise (Cloud)" open={false}>
15+
16+
(!docs/pages/includes/plugins/enroll.mdx name="the Microsoft Teams integration"!)
17+
18+
![Create Microsoft Teams Bot](../../../../img/enterprise/plugins/msteams/enroll-bot.png)
19+
20+
Once enrolled you can download the required `app.zip` file from the integrations status page.
21+
22+
![Download app.zip](../../../../img/enterprise/plugins/msteams/app-zip.png)
23+
24+
</Details>
25+
1426
## Prerequisites
1527

1628
(!docs/pages/includes/commercial-prereqs-tabs.mdx!)
Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
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+
![Pick Identity Center integration](../../../../img/identity-center/ic-pick-integration.png)
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+
![Configure AWS integration](../../../../img/identity-center/ic-step1.1.png)
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+
![Run script for AWS integration](../../../../img/identity-center/ic-step1.2.png)
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+
![Preview AWS resources](../../../../img/identity-center/ic-step2.png)
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+
![Configure identity source](../../../../img/identity-center/ic-step3.png)
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+
![Enable SCIM](../../../../img/identity-center/ic-step4.png)
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+
![Access Lists view](../../../../img/identity-center/ic-lists.png)
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+
![Connect to AWS SSO portal](../../../../img/identity-center/ic-app.png)
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.

docs/pages/includes/plugins/enroll.mdx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
In Teleport Enterprise Cloud, Teleport manages {{ name }} for you, and you can
33
enroll {{ name }} from the Teleport Web UI.
44

5-
Visit the Teleport Web UI and click **Access Management** on the menu bar at the
6-
top of the screen.
7-
8-
On the left sidebar, click **Enroll New Integration** to visit the "Enroll New
9-
Integration" page:
5+
Visit the Teleport Web UI and on the left sidebar, click **Access** followed
6+
by **Integrations**. Then click **Enroll New Integration** to visit the
7+
"Enroll New Integration" page:
108

119
![Enroll an Access Request plugin](../../../img/enterprise/plugins/enroll.png)
1210

docs/pages/includes/role-spec.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,15 @@ spec:
319319
- 'arn:aws:iam::1234567890:role/ec2-full-access'
320320
- 'arn:aws:iam::0987654321:role/example-role'
321321

322+
# AWS account and permission set bindings for the Identity Center integration
323+
account_assignments:
324+
- # AWS identity center account ID
325+
account: "<account_id>"
326+
# name of the permission set in AWS
327+
name: AdministratorAccess
328+
# permission set ARN
329+
permission_set: arn:aws:sso:::permissionSet/ssoins-1234/ps-5678 # permission set ARN
330+
322331
# impersonate allows a user with this role to issue certificates on behalf
323332
# of other users and roles matching expressions below
324333
impersonate:

0 commit comments

Comments
 (0)