From 6cc16663b53b3db6c9747425024e21fa65f87998 Mon Sep 17 00:00:00 2001 From: Jim Galasyn Date: Fri, 30 Jun 2017 09:39:34 -0700 Subject: [PATCH] Incorporate feedback on rbac topics (#104) * Incorporate more feedback on rbac topics * Update permissions image --- .../admin/manage-users/grant-permissions.md | 13 ++++++------- .../2.2/guides/admin/manage-users/index.md | 17 +++++++++-------- .../manage-access-with-collections.md | 15 +++++++++------ .../admin/manage-users/permission-levels.md | 13 +++++++------ .../ucp/2.2/guides/images/permissions-ucp.png | Bin 24263 -> 24244 bytes 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/datacenter/ucp/2.2/guides/admin/manage-users/grant-permissions.md b/datacenter/ucp/2.2/guides/admin/manage-users/grant-permissions.md index 593c5aa21a..73b25ecc34 100644 --- a/datacenter/ucp/2.2/guides/admin/manage-users/grant-permissions.md +++ b/datacenter/ucp/2.2/guides/admin/manage-users/grant-permissions.md @@ -11,7 +11,7 @@ A grant is made up of a *subject*, a *role*, and a *resource collection*. A grant defines who (subject) has how much access (role) to a set of resources (collection). Each grant is a 1:1:1 mapping of subject, role, collection. For example, you can grant the "Prod Team" -"View Only" permissions for the "/Production" collection. +"Restricted Control" permissions for the "/Production" collection. The usual workflow for creating grants has four steps. @@ -26,12 +26,11 @@ The usual workflow for creating grants has four steps. When you have your users, collections, and roles set up, you can create grants. Administrators create grants on the **Manage Grants** page. -1. Click **Create Grant**. The default collection, usually `/Swarm` is listed. -2. Click **Selected** to list all of the collections. -3. Click **Select** on the collection you want to grant access to. -4. In the left pane, click **Roles** and select a role from the dropdown list. -5. In the left pane, click **Subjects**. Click **All Users** to create a grant +1. Click **Create Grant**. All of the collections in the system are listed. +2. Click **Select** on the collection you want to grant access to. +3. In the left pane, click **Roles** and select a role from the dropdown list. +4. In the left pane, click **Subjects**. Click **All Users** to create a grant for a specific user, or click **Organizations** to create a grant for an organization or a team. -6. Select a user, team, or organization and click **Create**. +5. Select a user, team, or organization and click **Create**. diff --git a/datacenter/ucp/2.2/guides/admin/manage-users/index.md b/datacenter/ucp/2.2/guides/admin/manage-users/index.md index 87c73cee49..f5e1ba03d5 100644 --- a/datacenter/ucp/2.2/guides/admin/manage-users/index.md +++ b/datacenter/ucp/2.2/guides/admin/manage-users/index.md @@ -1,6 +1,6 @@ --- -title: Authentication and authorization -description: Manage access to containers, services, volumes, and networks by using role-based access control +title: Authentication +description: Manage access to containers, services, volumes, and networks by using role-based access control. keywords: ucp, grant, role, permission, authentication, authorization --- @@ -19,6 +19,12 @@ A grant defines who (subject) has how much access (role) to a set of resources (collection). [Learn how to grant permissions to users based on roles](grant-permissions.md). +An administrator is a user who can manage grants, subjects, roles, and +collections. An administrator identifies which operations can be performed +against specific resources and who can perform these actions. An administrator +can create and manage role assignments against subject in the system. +Only an administrator can manage subjects, grants, roles, and collections. + ## Subjects A subject represents a user, team, or organization. A subject is granted a @@ -32,11 +38,6 @@ role for a collection of resources. team itself. A team exists only as part of an organization, and all of its members must be members of the organization. Team members share organization permissions. A team can be in one organization only. -- **Administrator**: A person who identifies which operations can be - performed against specific resources and who can perform these actions. - An administrator can create and manage role assignments against any user, - team, and organization in the system. Only administrators can manage - grants. ## Roles @@ -51,7 +52,7 @@ Docker EE enables controlling access to swarm resources by using *collections*. A collection is a grouping of swarm resources, like volumes, networks, secrets, and services, that you access by specifying a directory-like path. -[Learn to manage access to resources by using collections](manage-access-with-collections.md). +[Manage access to resources by using collections](manage-access-with-collections.md). ## Transition from UCP 2.1 access control diff --git a/datacenter/ucp/2.2/guides/admin/manage-users/manage-access-with-collections.md b/datacenter/ucp/2.2/guides/admin/manage-users/manage-access-with-collections.md index 3c7e6fc1c8..b68850344d 100644 --- a/datacenter/ucp/2.2/guides/admin/manage-users/manage-access-with-collections.md +++ b/datacenter/ucp/2.2/guides/admin/manage-users/manage-access-with-collections.md @@ -39,9 +39,9 @@ allowed against the target. UCP provides a number of built-in collections. -- `/` or `/Swarm` - The root swarm collection. All resources in the +- `/` - The path to the `Swarm` collection. All resources in the cluster are here. Resources that aren't in a collection are assigned - to the root `/Swarm` directory. + to the `/` directory. - `/System` - The system collection, which contains UCP managers, DTR nodes, and UCP/DTR system services. By default, only admins have access to the system collection, but you can change this. @@ -60,8 +60,9 @@ in UI preferences. When a user deploys a resource in the web UI, the preselected option is the default collection, but this can be changed. Users can't deploy a resource without a collection. When deploying a -resource in CLI without an access label, UCP automatically puts the user’s -default collection label on the resource. +resource in CLI without an access label, UCP automatically places the +resource in the user's default collection. +[Learn how to add labels to cluster nodes](/datacenter/ucp/2.2/guides/admin/configure/add-labels-to-cluster-nodes/). When using Docker Compose, the system applies default collection labels across all resources in the stack, unless the `com.docker.ucp.access.label` @@ -69,8 +70,10 @@ has been set explicitly. ## Collections and labels -Label limitations still apply to collections. You can't modify collections -after resource creation for containers, networks, and volumes. You can +Resources are marked as being in a collection by using labels. +Some resource types don't have editable labels, so you can't move resources +like this across collections. You can't modify collections after +resource creation for containers, networks, and volumes, but you can update labels for services, nodes, secrets, and configs. For editable resources, like services, secrets, nodes, and configs, diff --git a/datacenter/ucp/2.2/guides/admin/manage-users/permission-levels.md b/datacenter/ucp/2.2/guides/admin/manage-users/permission-levels.md index e07c0f48b0..552f39dbe8 100644 --- a/datacenter/ucp/2.2/guides/admin/manage-users/permission-levels.md +++ b/datacenter/ucp/2.2/guides/admin/manage-users/permission-levels.md @@ -33,9 +33,10 @@ The system provides the following default roles: | Built-in role | Description | |----------------------|-------------| +| `None` | The user has no access to swarm resources. This maps to the `No Access` role in UCP 2.1.x. | | `View Only` | The user can view resources like services, volumes, and networks but can't create them. | | `Restricted Control` | The user can view and edit volumes, networks, and images but can't run a service or container in a way that might affect the node where it's running. The user can't mount a node directory and can't `exec` into containers. Also, The user can't run containers in privileged mode or with additional kernel capabilities. | -| `Scheduler` | The user can schedule and view workloads on worker nodes. By default, all users get a grant with the `Scheduler` role against the `/Shared` collection. | +| `Scheduler` | The user can view nodes and schedule workloads on them. Worker nodes and manager nodes are affected by `Scheduler` grants. Having `Scheduler` access doesn't allow the user to view workloads on these nodes. They need the appropriate resource permissions, like `Container View`. By default, all users get a grant with the `Scheduler` role against the `/Shared` collection. | | `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users' containers. | ![Diagram showing UCP permission levels](../../images/permissions-ucp.png) @@ -51,16 +52,16 @@ list, click a role to see the API operations that it uses. For example, the Click **Create role** to create a custom role and define the API operations that it uses. When you create a custom role, all of the APIs that you can use are listed on the **Create Role** page. For example, you can create a custom -role that uses all of the node operations, `Join Token`, `Schedule`, -`Update`, and `View`, and you might give it a name like "Node Operator". +role that uses the node operations, `Update`, and `View`, and you might give +it a name like "Node Operator". You can give a role a global name, like "Remove Images", which might enable the **Remove** and **Force Remove** operations for images. You can apply a role with the same name to different collections. -Only an administrator can create and remove roles. An administrator -can enable and disable roles in the system. Roles can't be edited, so -to change a role's API operations, you must delete it and recreate it. +Only an administrator can create and remove roles. Roles are always enabled. +Roles can't be edited, so to change a role's API operations, you must delete it +and create it again. You can't delete a custom role if it's used in a grant. You must first delete the grants that use the role. diff --git a/datacenter/ucp/2.2/guides/images/permissions-ucp.png b/datacenter/ucp/2.2/guides/images/permissions-ucp.png index fd9028c049366115ccd9b5d6a8fb554abda13821..a4e4345cbabf8037d9dfeb10e5112d812b399e48 100644 GIT binary patch literal 24244 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 literal 24263 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 GxBm+o^uIa)