|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
集群和项目角色
集群和项目角色定义了用户在集群或项目中的授权。
要管理这些角色,
-
点击 ☰ > 用户与身份验证。
-
在左侧导航栏中,点击 角色模板,然后转到 集群 或 项目/名称空间 标签。
成员资格和角色分配
非管理用户可以访问的项目和集群由 成员资格 决定。成员资格是一个用户列表,基于他们在特定集群或项目中被分配的角色,决定他们对该集群或项目的访问权限。每个集群和项目都有一个标签,具有适当权限的用户可以用来管理成员资格。
当您创建一个集群或项目时,Rancher 会自动将您分配为该集群或项目的 Owner。被分配 Owner 角色的用户可以在集群或项目中分配其他用户角色。
|
非管理用户默认无法访问任何现有项目/集群。具有适当权限的用户(通常是所有者)必须明确分配项目和集群的成员资格。 |
集群角色
集群角色 是您可以分配给用户的角色,授予他们对集群的访问权限。有两个主要的集群角色:Owner 和 Member。
-
集群所有者:
这些用户对集群及其所有资源拥有完全控制权。
-
集群成员:
这些用户可以查看大多数集群级别的资源并创建新项目。
当集群成员创建项目时,用户会自动被分配 项目所有者权限。这赋予他们对项目及其相关资源的全面控制,包括部署工作负载的权限。如果没有强制执行 Pod 安全标准 (PSS) 和 Pod 安全准入 (PSA),集群成员能够在集群中执行特权容器。
自定义集群角色
Rancher 允许您将 自定义集群角色 分配给标准用户,而不是典型的 Owner 或 Member 角色。这些角色可以是内置的自定义集群角色,也可以是 Rancher 管理员定义的角色。它们方便用于为集群中的标准用户定义狭窄或专业的访问权限。请参见下表以获取内置自定义集群角色的列表。
集群角色参考
下表列出了每个可用的内置自定义集群角色,以及该访问级别是否包含在默认的集群级别权限中,Cluster Owner 和 Cluster Member。
| 内置集群角色 | 所有者 | 成员 |
|---|---|---|
创建项目 |
✓ |
✓ |
管理集群备份 |
✓ |
|
管理集群目录 |
✓ |
|
管理集群成员 |
✓ |
|
管理节点 (见下表) |
✓ |
|
管理存储 |
✓ |
|
查看所有项目 |
✓ |
|
查看集群目录 |
✓ |
✓ |
查看集群成员 |
✓ |
✓ |
查看节点 |
✓ |
✓ |
管理节点权限
下表列出了 RKE 和 RKE2 中 Manage Nodes 角色可用的权限。
| 管理节点权限 | RKE | RKE2 |
|---|---|---|
SSH 访问 |
✓ |
✓ |
删除节点 |
✓ |
✓ |
扩展和缩减集群 |
✓ |
* |
在 RKE2 中,您必须拥有编辑集群的权限才能扩展和缩减集群。
有关每个集群角色如何访问 Kubernetes 资源的详细信息,您可以在 Rancher UI 中查找:
-
在左上角,点击 ☰ > 用户与身份验证。
-
在左侧导航栏中,点击 角色模板。
-
点击 集群 标签。
-
点击单个角色的名称。该表显示了该角色允许的所有操作和资源。
|
在查看 Rancher 创建的默认角色相关的资源时,如果一行中有多个 Kubernetes API 资源,该资源将附加 |
给予集群成员自定义集群角色
在管理员设置自定义集群角色后,集群所有者和管理员可以将这些角色分配给集群成员。
要将自定义角色分配给新集群成员,您可以使用Rancher UI。要修改现有成员的权限,您需要使用Rancher API视图。
要将角色分配给新集群成员,
-
单击 ☰ > 集群管理。
-
转到您想要将角色分配给成员的集群,然后单击*探索*。
-
单击menu:集群[集群成员]。
-
单击*添加*。
-
在*集群权限*部分,选择应分配给成员的自定义集群角色。
-
单击*创建*。
*结果:*该成员已获得分配的角色。
要将任何自定义角色分配给现有集群成员,
-
点击 ☰ > 用户与身份验证。
-
转到您想要给予角色的成员。单击*⋮ > 编辑配置*。
-
如果您添加了自定义角色,它们将在*自定义*部分显示。选择您想要分配给成员的角色。
-
单击 保存。
*结果:*该成员已获得分配的角色。
项目角色
_项目角色_是可以用来授予用户访问项目权限的角色。有三种主要的项目角色:Owner、Member`和`Read Only。
-
项目所有者:
这些用户对项目及其所有资源拥有完全控制权。
-
项目成员:
这些用户可以管理项目范围内的资源,如名称空间和工作负载,但无法管理其他项目成员。
|
默认情况下,`project-member`的Rancher角色继承自`Kubernetes-edit`角色,而`project-owner`角色继承自`Kubernetes-admin`角色。因此,`project-member`和`project-owner`角色都允许进行名称空间管理,包括创建和删除名称空间的能力。 |
-
只读:
这些用户可以查看项目中的所有内容,但无法创建、更新或删除任何内容。
|
被分配`Owner`或`Member`角色的用户会自动继承`namespace creation`角色。然而,这个角色是一个 Kubernetes集群角色,这意味着它的范围扩展到集群中的所有项目。因此,明确分配`owner`或`member`角色的用户可以在他们被分配的其他项目中创建名称空间,即使他们只被分配了`Read Only`角色。 |
自定义项目角色
Rancher允许您将_自定义项目角色_分配给标准用户,而不是典型的`Owner`、`Member`或`Read Only`角色。这些角色可以是内置的自定义项目角色,也可以是Rancher管理员定义的角色。它们方便为标准用户在项目内定义狭窄或专业的访问权限。请参见下表以获取内置自定义项目角色的列表。
项目角色参考
下表列出了Rancher中可用的每个内置自定义项目角色,以及它是否也由`Owner`、`Member`或`Read Only`角色授予。
|
备注:
|
定义自定义角色
如前所述,可以为集群或项目级别定义自定义角色。上下文字段定义角色将出现在集群成员页面、项目成员页面,还是两者都有。
在定义自定义角色时,可以授予对特定资源的访问权限或指定自定义角色应继承的角色。自定义角色可以由特定授权和继承角色的组合构成。所有授权都是累加的。这意味着为特定资源定义更狭窄的授权*不会*覆盖自定义角色所继承的角色中定义的更广泛的授权。
默认集群和项目角色
为集群和项目创建者配置默认角色
您可以更改自动分配给创建用户的集群或项目角色。
-
在左上角,点击 ☰ > 用户与认证。
-
在左侧导航栏中,点击 角色模板。
-
点击 集群 或 项目/名称空间 标签。
-
找到您希望设为默认角色的自定义或单独角色。然后通过选择 ⋮ > 编辑配置 来编辑角色。
-
在 集群创建者默认 或 项目创建者默认 部分,启用该角色作为默认角色。
-
单击 保存。
结果:*默认角色根据您的更改进行配置。分配给集群/项目创建者的角色在 *集群/项目创建者默认 列中显示一个勾选。
如果您想要去除默认角色,请编辑权限并从默认角色选项中选择 否。
外部 RoleTemplate 行为
在 Rancher v2.9.0 及更高版本中,只有在本地群集中存在后端 ClusterRole 时,才能创建外部 RoleTemplate 对象,或者在您的配置中设置 ExternalRules。
为了提供背景,后端 ClusterRole 持有集群规则和权限,并共享在您的集群中由 ClusterRoleTemplateBinding/ProjectRoleTemplateBinding 引用的 metadata.name。此外,请注意,创建带有 ExternalRules 的外部 RoleTemplates 需要对 escalate 的 RoleTemplates 权限。