本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

全局权限

Users with permissions to modify accounts or resources are considered privileged users, only grant these permissions to trusted users.

_权限_是您在为用户选择自定义权限时可以分配的单独访问权。

全局权限定义了用户在任何特定集群范围之外的授权。开箱即用,有四个默认的全局权限:AdministratorStandard User`和`User-base

  • *管理员:*这些用户对整个Rancher系统及其所有集群拥有完全控制权。

  • *标准用户:*这些用户可以创建新集群并使用它们。标准用户还可以将其他用户的权限分配给他们的集群。

  • *用户基础:*用户基础用户仅具有登录访问权限。

您无法更新或删除内置的全局权限。

全局权限分配

本地用户的全局权限分配方式与使用外部身份验证登录Rancher的用户不同。

新本地用户的全局权限

当您创建新本地用户时,您在完成*添加用户*表单时为他们分配全局权限。

要查看新用户的默认权限,

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*角色模板*。

  3. *角色模板*页面有按范围分组的角色标签。每个表格列出了该范围内的角色。在*全局*标签中,在*新用户默认*列中,默认给予新用户的权限用勾号表示。

具有外部身份验证的用户的全局权限

当用户第一次使用外部身份验证提供者登录Rancher时,他们会自动被分配*新用户默认*全局权限。默认情况下,Rancher为新用户分配*标准用户*权限。

要查看新用户的默认权限,

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*角色模板*。

  3. *角色模板*页面有按范围分组的角色标签。每个表格列出了该范围内的角色。在每个页面的*新用户默认*列中,默认给予新用户的权限用勾号表示。

权限可以分配给单个用户。

如果外部身份验证提供者支持组,您可以同时将角色分配给组中的每个人

自定义全局权限

使用自定义权限方便为用户提供狭窄或专业的Rancher访问权限。

当来自外部身份验证源的用户第一次登录Rancher时,他们会自动被分配一组全局权限(以下简称权限)。默认情况下,用户第一次登录后,会被创建为用户并分配默认的`user`权限。标准`user`权限允许用户登录并创建集群。

然而,在某些组织中,这些权限可能会扩展过多的访问权限。与其为用户分配默认全局权限`Administrator`或`Standard User`,不如为他们分配一组更具限制性的自定义全局权限。

默认角色,管理员和标准用户,各自内置了多个全局权限。管理员角色包括所有全局权限,而默认用户角色包括三个全局权限:创建集群、使用目录模板和用户基础,这相当于登录Rancher的最低权限。换句话说,自定义全局权限是模块化的,因此如果您想更改默认用户角色的权限,可以选择包含在新默认用户角色中的全局权限子集。

管理员可以通过多种方式强制执行自定义全局权限:

组合内置全局角色

Rancher提供了几种全局角色,这些角色为某些常见用例授予细粒度权限。 下表列出了每个内置全局权限以及它是否包含在默认全局权限中,AdministratorStandard User`和`User-Base

自定义全局权限 管理员 标准用户 用户基础

创建集群

创建RKE模板

管理身份验证

管理目录

管理集群驱动程序

管理节点驱动程序

管理 PodSecurityPolicy 模板

管理角色

管理设置

管理用户

使用目录模板

用户基础(基本登录访问)

有关每个全局权限对应的 Kubernetes 资源的详细信息,

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*角色模板*。

  3. 如果您单击单个角色的名称,将显示一个表格,列出该角色允许的所有操作和资源。

备注:
  • 上述列出的每个权限由多个未在 Rancher UI 中列出的单独权限组成。有关这些权限及其组成规则的完整列表,请通过 API 访问 /v3/globalRoles

  • 在查看 Rancher 创建的默认角色相关资源时,如果一行项目上有多个 Kubernetes API 资源,则该资源将附加 (Custom)。这些不是自定义资源,而只是表明有多个 Kubernetes API 资源作为一个资源。

内置的 GlobalRole Manage Users 允许用户在 Rancher 环境中创建、修改和删除其他用户。虽然在受信任的环境中,此权限可能对管理工作流程是必要的,但将其授予不受信任或权限较低的用户(例如标准用户)会带来严重的安全风险,并可能导致权限提升。

自定义 GlobalRoles

您可以创建自定义 GlobalRoles,以满足内置 GlobalRoles 未直接解决的用例。

通过 UI 或自动化(例如 Rancher Kubernetes API)创建自定义 GlobalRoles。您可以指定与上游角色和 clusterRoles 的规则相同类型的规则。

请参阅列表 全局资源 以获取相关资源。

提升和绑定动词

在授予 GlobalRoles 权限时,请记住 Rancher 尊重 escalatebind 动词,类似于 Kubernetes

这两个动词在 GlobalRoles 资源上授予用户绕过 Rancher 权限提升检查的权限。这可能允许用户成为管理员。由于这代表了严重的安全风险,bindescalate 应该谨慎地分配给用户。

escalate 动词允许用户更改 GlobalRole 并添加任何权限,即使用户在当前 GlobalRole 或新版本的 GlobalRole 中没有这些权限。

bind 动词允许用户创建对指定 GlobalRole 的 GlobalRoleBinding,即使他们在 GlobalRole 中没有权限。

通配符动词 还包括 bindescalate 动词。这意味着将 权限授予用户也会同时授予他们 escalatebind 权限。

自定义 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'

授予 * 权限(包括 escalatebind):

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时明确分配全局权限。在添加用户时,您可以自定义这些全局权限。

要更改首次登录时分配给外部用户的默认全局权限,请按照以下步骤操作:

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*角色模板*。在*角色模板*页面上,确保选择了*全局*选项卡。

  3. 找到您想要添加或去除的默认权限集。然后通过选择*⋮ > 编辑配置*来编辑权限。

  4. 如果您想将权限添加为默认,请选择*是:新用户的默认角色*,然后点击*保存*。如果您想去除默认权限,请编辑权限并选择*否*。

*结果:*默认全局权限根据您的更改进行配置。分配给新用户的权限在*新用户默认*列中显示勾选。

为单个用户配置全局权限

要为用户配置权限,

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*用户*。

  3. 找到您想要更改访问级别的用户,然后点击*⋮ > 编辑配置*。

  4. 在*全局权限*和*内置*部分,勾选您希望用户拥有的每个权限的框。如果您已从*角色模板*页面创建角色,它们将出现在*自定义*部分,您也可以从中选择。

  5. 单击 保存

*结果:*用户的全局权限已更新。

为组配置全局权限

如果您有一组需要在Rancher中拥有相同访问级别的个人,一次性为整个组分配权限可以节省时间,以便组中的用户在首次登录Rancher时拥有适当的访问级别。

在您为一个组分配自定义全局角色后,当组中的用户登录Rancher时,将会分配自定义全局角色。

对于现有用户,新权限将在用户注销Rancher并重新登录时生效,或者当管理员刷新组成员资格。

对于新用户,新权限在用户首次登录Rancher时生效。来自该组的新用户将获得自定义全局角色的权限,以及*新用户默认*全局权限。默认情况下,*新用户默认*权限等同于*标准用户*全局角色,但默认权限可以配置。

如果用户从外部身份验证提供者组中被去除,他们将失去分配给该组的自定义全局角色的权限。他们将继续拥有分配给他们的任何剩余角色,通常包括标记为*新用户默认*的角色。当用户注销时,Rancher将移除与该组相关联的权限,或者当管理员刷新组成员资格,以先到者为准。

先决条件:

您只能在以下情况下将全局角色分配给组:

要将自定义全局角色分配给组,请按照以下步骤操作:

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*组*。

  3. 转到您要分配自定义全局角色的组,然后点击*⋮ > 编辑配置*。

  4. 在*全局权限,* *自定义,*和/或*内置*部分中,选择该组应拥有的权限。

  5. 单击*创建*。

*结果:*当组中的用户登录Rancher时,自定义全局角色将生效。

刷新组成员资格

当管理员更新组的全局权限时,变更将在个别组成员注销并重新登录Rancher后生效。

为了使变更立即生效,管理员或集群拥有者可以刷新组成员资格。

如果用户在外部认证服务中被移除,管理员也可能希望刷新组成员资格。在这种情况下,刷新会使Rancher意识到该用户已从组中移除。

要刷新组成员资格,

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击*用户*。

  3. 点击 刷新组成员资格

*结果:*对组成员权限的任何更改将生效。