|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
全局权限
|
Users with permissions to modify accounts or resources are considered privileged users, only grant these permissions to trusted users. |
_权限_是您在为用户选择自定义权限时可以分配的单独访问权。
全局权限定义了用户在任何特定集群范围之外的授权。开箱即用,有四个默认的全局权限:Administrator、Standard User`和`User-base。
-
*管理员:*这些用户对整个Rancher系统及其所有集群拥有完全控制权。
-
*标准用户:*这些用户可以创建新集群并使用它们。标准用户还可以将其他用户的权限分配给他们的集群。
-
*用户基础:*用户基础用户仅具有登录访问权限。
您无法更新或删除内置的全局权限。
全局权限分配
本地用户的全局权限分配方式与使用外部身份验证登录Rancher的用户不同。
新本地用户的全局权限
当您创建新本地用户时,您在完成*添加用户*表单时为他们分配全局权限。
要查看新用户的默认权限,
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*角色模板*。
-
*角色模板*页面有按范围分组的角色标签。每个表格列出了该范围内的角色。在*全局*标签中,在*新用户默认*列中,默认给予新用户的权限用勾号表示。
具有外部身份验证的用户的全局权限
当用户第一次使用外部身份验证提供者登录Rancher时,他们会自动被分配*新用户默认*全局权限。默认情况下,Rancher为新用户分配*标准用户*权限。
要查看新用户的默认权限,
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*角色模板*。
-
*角色模板*页面有按范围分组的角色标签。每个表格列出了该范围内的角色。在每个页面的*新用户默认*列中,默认给予新用户的权限用勾号表示。
权限可以分配给单个用户。
如果外部身份验证提供者支持组,您可以同时将角色分配给组中的每个人。
自定义全局权限
使用自定义权限方便为用户提供狭窄或专业的Rancher访问权限。
当来自外部身份验证源的用户第一次登录Rancher时,他们会自动被分配一组全局权限(以下简称权限)。默认情况下,用户第一次登录后,会被创建为用户并分配默认的`user`权限。标准`user`权限允许用户登录并创建集群。
然而,在某些组织中,这些权限可能会扩展过多的访问权限。与其为用户分配默认全局权限`Administrator`或`Standard User`,不如为他们分配一组更具限制性的自定义全局权限。
默认角色,管理员和标准用户,各自内置了多个全局权限。管理员角色包括所有全局权限,而默认用户角色包括三个全局权限:创建集群、使用目录模板和用户基础,这相当于登录Rancher的最低权限。换句话说,自定义全局权限是模块化的,因此如果您想更改默认用户角色的权限,可以选择包含在新默认用户角色中的全局权限子集。
管理员可以通过多种方式强制执行自定义全局权限:
组合内置全局角色
Rancher提供了几种全局角色,这些角色为某些常见用例授予细粒度权限。
下表列出了每个内置全局权限以及它是否包含在默认全局权限中,Administrator、Standard User`和`User-Base。
| 自定义全局权限 | 管理员 | 标准用户 | 用户基础 |
|---|---|---|---|
创建集群 |
✓ |
✓ |
|
创建RKE模板 |
✓ |
✓ |
|
管理身份验证 |
✓ |
||
管理目录 |
✓ |
||
管理集群驱动程序 |
✓ |
||
管理节点驱动程序 |
✓ |
||
管理 PodSecurityPolicy 模板 |
✓ |
||
管理角色 |
✓ |
||
管理设置 |
✓ |
||
管理用户 |
✓ |
||
使用目录模板 |
✓ |
✓ |
|
用户基础(基本登录访问) |
✓ |
✓ |
有关每个全局权限对应的 Kubernetes 资源的详细信息,
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*角色模板*。
-
如果您单击单个角色的名称,将显示一个表格,列出该角色允许的所有操作和资源。
|
备注:
|
|
内置的 GlobalRole |
自定义 GlobalRoles
您可以创建自定义 GlobalRoles,以满足内置 GlobalRoles 未直接解决的用例。
通过 UI 或自动化(例如 Rancher Kubernetes API)创建自定义 GlobalRoles。您可以指定与上游角色和 clusterRoles 的规则相同类型的规则。
请参阅列表 全局资源 以获取相关资源。
提升和绑定动词
在授予 GlobalRoles 权限时,请记住 Rancher 尊重 escalate 和 bind 动词,类似于 Kubernetes。
这两个动词在 GlobalRoles 资源上授予用户绕过 Rancher 权限提升检查的权限。这可能允许用户成为管理员。由于这代表了严重的安全风险,bind 和 escalate 应该谨慎地分配给用户。
escalate 动词允许用户更改 GlobalRole 并添加任何权限,即使用户在当前 GlobalRole 或新版本的 GlobalRole 中没有这些权限。
bind 动词允许用户创建对指定 GlobalRole 的 GlobalRoleBinding,即使他们在 GlobalRole 中没有权限。
|
通配符动词 |
自定义 GlobalRole 示例
仅授予提升 test-gr GlobalRole 的权限:
rules:
- apiGroups:
- 'management.cattle.io'
resources:
- 'globalroles'
resourceNames:
- 'test-gr'
verbs:
- 'escalate'
授予提升所有 GlobalRoles 的权限:
rules:
- apiGroups:
- 'management.cattle.io'
resources:
- 'globalroles'
verbs:
- 'escalate'
仅授予创建绑定(绕过提升检查)到 test-gr GlobalRole 的权限:
rules:
- apiGroups:
- 'management.cattle.io'
resources:
- 'globalroles'
resourceNames:
- 'test-gr'
verbs:
- 'bind'
- apiGroups:
- 'management.cattle.io'
resources:
- 'globalrolebindings'
verbs:
- 'create'
授予 * 权限(包括 escalate 和 bind):
rules:
- apiGroups:
- 'management.cattle.io'
resources:
- 'globalroles'
verbs:
- '*'
下游集群上的 GlobalRole 权限
GlobalRoles 可以通过 inheritedClusterRoles 字段在每个下游集群上授予一个或多个 RoleTemplate。该字段中的值必须引用一个存在且具有 Cluster 的 context 的 RoleTemplate。
通过此字段,用户在所有当前或未来的下游集群上获得指定的权限。例如,请考虑以下 GlobalRole:
apiVersion: management.cattle.io/v3
kind: GlobalRole
displayName: All Downstream Owner
metadata:
name: all-downstream-owner
inheritedClusterRoles:
- cluster-owner
任何拥有此权限的用户将在所有下游集群上成为集群拥有者。如果添加了新集群,无论类型如何,用户也将在该集群上成为拥有者。
|
在 default GlobalRoles 上使用此字段可能导致用户获得过多权限。 |
配置默认全局权限
如果您想限制新用户的默认权限,可以将`user`权限去除作为默认角色,然后分配多个单独的权限作为默认权限。相反,您也可以在一组其他标准权限的基础上添加管理权限。
|
默认角色仅分配给从外部身份验证提供者添加的用户。对于本地用户,您必须在将用户添加到Rancher时明确分配全局权限。在添加用户时,您可以自定义这些全局权限。 |
要更改首次登录时分配给外部用户的默认全局权限,请按照以下步骤操作:
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*角色模板*。在*角色模板*页面上,确保选择了*全局*选项卡。
-
找到您想要添加或去除的默认权限集。然后通过选择*⋮ > 编辑配置*来编辑权限。
-
如果您想将权限添加为默认,请选择*是:新用户的默认角色*,然后点击*保存*。如果您想去除默认权限,请编辑权限并选择*否*。
*结果:*默认全局权限根据您的更改进行配置。分配给新用户的权限在*新用户默认*列中显示勾选。
为单个用户配置全局权限
要为用户配置权限,
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*用户*。
-
找到您想要更改访问级别的用户,然后点击*⋮ > 编辑配置*。
-
在*全局权限*和*内置*部分,勾选您希望用户拥有的每个权限的框。如果您已从*角色模板*页面创建角色,它们将出现在*自定义*部分,您也可以从中选择。
-
单击 保存。
*结果:*用户的全局权限已更新。
为组配置全局权限
如果您有一组需要在Rancher中拥有相同访问级别的个人,一次性为整个组分配权限可以节省时间,以便组中的用户在首次登录Rancher时拥有适当的访问级别。
在您为一个组分配自定义全局角色后,当组中的用户登录Rancher时,将会分配自定义全局角色。
对于现有用户,新权限将在用户注销Rancher并重新登录时生效,或者当管理员刷新组成员资格。
对于新用户,新权限在用户首次登录Rancher时生效。来自该组的新用户将获得自定义全局角色的权限,以及*新用户默认*全局权限。默认情况下,*新用户默认*权限等同于*标准用户*全局角色,但默认权限可以配置。
如果用户从外部身份验证提供者组中被去除,他们将失去分配给该组的自定义全局角色的权限。他们将继续拥有分配给他们的任何剩余角色,通常包括标记为*新用户默认*的角色。当用户注销时,Rancher将移除与该组相关联的权限,或者当管理员刷新组成员资格,以先到者为准。
要将自定义全局角色分配给组,请按照以下步骤操作:
-
在左上角,点击*☰ > 用户与身份验证*。
-
在左侧导航栏中,点击*组*。
-
转到您要分配自定义全局角色的组,然后点击*⋮ > 编辑配置*。
-
在*全局权限,* *自定义,*和/或*内置*部分中,选择该组应拥有的权限。
-
单击*创建*。
*结果:*当组中的用户登录Rancher时,自定义全局角色将生效。