在 Rancher 中,角色决定了用户可以在集群或项目中执行哪些操作。

请注意,角色访问权限不同,后者决定了您可以访问哪些集群和项目。

(以下摘录自 Rancher Doc 为集群或项目创建自定义角色)

为集群或项目创建自定义角色

Rancher 提供了一组开箱即用的默认用户角色,您也可以创建默认的自定义角色,以向 Rancher 中的用户提供指定的权限。

  1. 全局视图中,从主菜单中选择 安全>角色
  2. 选择一个选项卡以确定要添加的角色的范围。选项卡是:
    • 集群: 仅在添加/管理集群成员时,可以分配该角色。
    • 项目: 仅在添加/管理项目成员时,可以分配该角色。
  3. 单击添加集群/项目角色
  4. 输入角色的名称
  5. 可选:选择集群/项目创建者默认角色选项,以在用户创建新集群或项目时将此角色分配给用户。使用此功能,可以扩展或限制集群/项目创建者的默认角色。

    开箱即用,集群创建者默认角色项目创建者默认角色分别是集群所有者项目所有者

  6. 使用资源授权选项将单个Kubernetes API 资源分配给角色。

    查看与 Rancher 创建的默认角色相关的资源时,如果在一行上有多个 Kubernetes API 资源,则该资源将带有(Custom)标识。这些不是自定义资源,仅表示把多个 Kubernetes API 资源作为一种资源。 资源文本字段提供了一种方法,用于搜索预定义的 Kubernetes API 资源,或为授予输入自定义资源名称。在该字段中输入资源名称后,必须从下拉菜单中选择预定义或(自定义)资源。

  7. 您还可以给每个资源设置单独的 cURL 方法(CreateDeleteGet等)。

  8. 使用角色继承选项将单个 Rancher 角色分配给您的自定义角色。注意:当有自定义角色从父角色继承时,只有删除子角色才能删除父角色。
  9. 单击创建

创建自定义全局角色

自 v2.4.0 起可用

克隆其他角色创建自定义全局角色

如果您有一组需要在 Rancher 中具有相同访问级别的人员,则可以节省时间来创建自定义全局角色,该角色将来自另一个角色(例如管理员角色)的所有规则,这些规则将被复制到一个新角色中。这使您可以仅配置现有角色和新角色之间的不同的地方。
然后,可以将自定义全局角色分配给用户或组,用户首次登录 Rancher 时,这个自定义全局角色就会生效。
要基于现有角色创建自定义全局角色,

  1. 转到全局视图,然后单击安全 > 角色
  2. 全局选项卡上,转到自定义全局角色想要复制的角色。单击省略号(…)>克隆
  3. 输入角色名称。
  4. 可选:如果要将这个角色设置为新用户的默认角色,请转到新用户默认角色部分,然后单击是: 新用户的默认角色
  5. 资源授权部分中,选择该自定义角色包含的 Kubernetes 资源操作权限。

    资源文本字段提供了一种方法,用于搜索预定义的 Kubernetes API 资源,或为授予输入自定义资源名称。在该字段中输入资源名称后,必须从下拉菜单中选择预定义或(自定义)资源。

  6. 单击保存

    创建全新的自定义全局角色

    自定义全局角色不必基于现有角色。要从头创建自定义全局角色,请执行以下步骤:

  7. 转到全局视图,然后单击安全 > 角色

  8. 全局选项卡上,单击添加全局角色
  9. 输入角色名称。
  10. 可选:如果要将这个角色设置为新用户的默认角色,请转到新用户默认角色部分,然后单击是: 新用户的默认角色
  11. 资源授权部分中,选择该自定义角色包含的 Kubernetes 资源操作权限。

    资源文本字段提供了一种方法,用于搜索预定义的 Kubernetes API 资源,或为授予输入自定义资源名称。在该字段中输入资源名称后,必须从下拉菜单中选择预定义或(自定义)资源。

  12. 单击保存

    删除自定义全局角色

    自 v2.4.0 起可用
    删除自定义全局角色时,具有此自定义角色的所有全局角色绑定(Global Role Bindings)都将被删除。
    如果仅为用户分配一个自定义全局角色,并且删除了该角色,则该用户将失去对 Rancher 的访问权限。为了使用户重新获得访问权限,管理员需要编辑用户并应用新的全局权限。
    可以删除自定义全局角色,但是不能删除内置的全局角色。
    要删除自定义全局角色,

  13. 转到全局视图,然后单击安全 > 角色

  14. 全局选项卡上,转到应删除的自定义全局角色,然后单击省略号(…)>删除
  15. 单击删除

    分配自定义全局角色

    自 v2.4.0 起可用
    如果您有一组需要在 Rancher 中具有相同访问级别的人员,那么创建一个自定义全局角色可以节省您的时间。将角色分配给组后,组中的用户首次登录 Rancher 时就会具有相应的访问级别。
    当组中的用户登录时,默认情况下,用户将获得内置的标准用户全局角色。用户还将获得分配给其组的权限。
    如果将用户从外部身份验证系统的组中删除,用户将失去分配给该组的自定义全局角色的权限。用户将仍然拥有标准用户角色。

    先决条件: 您只能在以下情况下为组分配全局角色:

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

  1. 全局视图中,转到安全 > 用户组
  2. 单击分配全局角色
  3. 选择要添加的组字段中,选择将被分配自定义全局角色的已经存在的组。
  4. 自定义部分中,选择将分配给该组的任何自定义全局角色。
  5. 可选:在全局权限内置角色部分中,选择组应具有的任何其他权限。
  6. 单击创建

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


定义我们系统的自定义角色

根据我们的需求,我们可能需要自定义以下两种角色:

  • DEV-开发人员
    • 日常普通的开发人员,在Rancher中的权限只有 user-base(用户只有登录访问权限,可是不能访问别的用户的信息 的权限,每个集群、项目的权限需要通过管理员去添加
  • DEV-主管

    • 部门的主管,权限应该小于 user (标准用户可以创建新的集群并管理他们已被授权访问的集群和项目),可是通常创建集群的任务不应该是由当前角色去控制的,所以需要减少一下相对的权限
  • 使用初始本地admin帐户登录 Rancher UI

  • 全局视图中,导航至安全 > 角色
  • 选择 User Base 选择克隆(因为系统默认的角色是无法进行改动的)
  • 然后配置我们自定义的角色 DEV-开发人员

**

添加 DEV-开发人员 **角色**

在 User Base 的基础上克隆

  • 新增资源 Principals ,API组填写 management.cattle.io,权限只设置获取,列表和观察即可

image.png
image.png

添加 DEV-主管** **角色

在 User Base 的基础上克隆,只保留以下资源便好
image.png
image.png