-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add initial docs for Nested Access Lists
- Loading branch information
Showing
4 changed files
with
143 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
88 changes: 88 additions & 0 deletions
88
docs/pages/admin-guides/access-controls/access-lists/nested-access-lists.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
--- | ||
title: Nested Access Lists | ||
description: Learn how to use nested Access Lists to manage complex permissions and grant inheritance in Teleport. | ||
--- | ||
|
||
This guide will help you: | ||
|
||
- Understand how nesting and inheritance work in Access Lists | ||
- Create a nested Access List | ||
- Verify inherited permissions granted through the nested Access List | ||
|
||
## Prerequisites | ||
|
||
(!docs/pages/includes/commercial-prereqs-tabs.mdx!) | ||
|
||
- (!docs/pages/includes/tctl.mdx!) | ||
- A user with the `editor` role or equivalent permissions to create and manage Access Lists. | ||
- Familiarity with basic Access List concepts (see the [Getting Started with Access Lists guide](./guide.mdx)). | ||
- At least one user with only the `requester` to add to the Access List. | ||
- At least one application or resource to grant access to. | ||
|
||
## What Are Nested Access Lists? | ||
|
||
Nested Access Lists allow inclusion of an Access List as a member or owner of another Access List. | ||
This enables hierarchical permission structures where permissions can be inherited from multiple levels of | ||
parent Access Lists. | ||
|
||
### How Inheritance Works | ||
|
||
- **Membership Inheritance**: If Access List B is added as a member of Access List A, | ||
all users who are members of Access List B inherit Access List A's member grants (roles and traits). | ||
- **Ownership Inheritance**: If Access List B is added as an owner of Access List A, | ||
all users who are members of Access List B inherit Access List A's owner grants, and | ||
can perform owner actions on Access List A, such as modifying it or managing its members. | ||
|
||
Inheritance is recursive – members of a child Access List can themselves be Access Lists | ||
with their own members, and so on. However, circular nesting is not allowed, and nesting is limited | ||
to a maximum depth of 10 levels. | ||
|
||
For more information, see the [Access Lists reference](../../reference/access-controls/access-lists.mdx). | ||
|
||
## Creating a Nested Access List | ||
|
||
Let's walk through an example of creating a nested Access List and establishing inheritance. | ||
|
||
### Step 1/4. Create Parent Access List | ||
|
||
In the Teleport Web UI, go to the "Identity" tab and select "Access Lists" from the sidebar. | ||
Click on "Create New Access List", and fill in the details for the parent Access List. For example: | ||
|
||
- **Title**: Parent Access List | ||
- **Deadline for First Review**: Select a future date. | ||
- **Member Grants**: Add roles or traits that you want members to inherit, such as the `access` role. | ||
- **Owners**: Add yourself or any appropriate users as owners. | ||
- **Members**: Leave this empty for now, as we'll add a child Access List as a member later. | ||
|
||
Click "Create Access List" to save the new Access List. | ||
|
||
### Step 2/4. Create Child Access List | ||
|
||
From the "Access Lists" page, create another Access List to serve as the child Access List. For example: | ||
|
||
- **Title**: Child Access List | ||
- **Deadline for First Review**: Select a future date. | ||
- **Member Grants**: Leave this empty for now, as the child will inherit the parent's member grants. | ||
- **Owners**: Add yourself or any appropriate users as owners. | ||
- **Members**: Add users who should be part of this Access List, such as `test-user`. | ||
|
||
Click "Create Access List" to save the child Access List. | ||
|
||
### Step 3/4. Add Child Access List as a Member | ||
|
||
To establish inheritance, we need to add the child Access List as a member of the parent Access List. | ||
Navigate to the "Parent Access List" from the "Access Lists" page, and click "Enroll New Members or Access Lists". | ||
Search for and select the child Access List, optionally set an expiry date for the membership, | ||
and click "Enroll New Members" to add it as a member. | ||
|
||
### Step 4/4. Verifying Inherited Permissions | ||
|
||
To confirm that members of the child Access List have inherited member grants from the parent, log in as a user | ||
who is a member of the child Access List (e.g., `test-user`). Verify that the user now has access to resources | ||
granted by both the child Access List and the parent Access List. For example, if a Teleport Application Service | ||
instance with the debugging application enabled is set up, and the `access` role is granted through the parent, | ||
the "dumper" app should be visible to the user. | ||
|
||
## Next Steps | ||
|
||
- Review the [Access Lists reference](../../reference/access-controls/access-lists.mdx) for more detailed information on Access Lists' nesting and inheritance. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters