This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第 5 章 Red Hat Developer Hub 中的基于角色的访问控制(RBAC)
基于角色的访问控制是一种安全范例,限制对授权用户访问。此功能包括定义具有特定权限的角色,然后将这些角色分配给用户。
Red Hat Developer Hub 使用 RBAC 来提高平台中的权限系统。Developer Hub 中的 RBAC 功能引入了一个管理员角色,并通过促进高效的访问控制来利用组织结构,包括团队、组和用户。
5.1. 权限策略配置 复制链接链接已复制到粘贴板!
在 Red Hat Developer Hub 中配置权限策略有两种方法,包括:
- 配置权限策略管理员
- 配置外部文件中定义的权限策略
5.1.1. 配置权限策略管理员 复制链接链接已复制到粘贴板!
Developer Hub 中用户和组的权限策略由权限策略管理员管理。只有权限策略管理员可以访问基于角色的访问控制 REST API。
配置策略管理员的目的是启用特定、受限制的经过身份验证的用户来访问 RBAC REST API。权限策略在 policy.csv
文件中定义,该文件在 app-config-rhdh
ConfigMap 中引用。OpenShift 平台管理员或集群管理员可以执行此任务,可访问部署 Red Hat Developer Hub 的命名空间。
您可以在 app-config.yaml
文件中设置权限策略管理员的凭证,如下所示:
5.1.2. 配置外部文件中定义的权限策略 复制链接链接已复制到粘贴板!
在开始 Red Hat Developer Hub 前,您可以遵循这种方法来配置权限策略。如果外部文件中定义了权限策略,您可以在 Developer Hub 中导入同一文件。权限策略需要以 Casbin 规则格式定义。有关 Casbin 规则格式的详情,请参考 Casbin 规则 的基本信息。
以下是权限策略配置示例:
p, role:default/guests, catalog-entity, read, deny
p, role:default/guests, catalog.entity.create, create, deny
g, user:default/<USER_TO_ROLE>, role:default/guests
如果定义的权限不包含与其关联的操作,请添加 use
作为策略。请参见以下示例:
p, role:default/guests, kubernetes.proxy, use, deny
您可以在 app-config.yaml
文件中定义 policy.csv
文件路径:
permission: enabled: true rbac: policies-csv-file: /some/path/rbac-policy.csv
permission:
enabled: true
rbac:
policies-csv-file: /some/path/rbac-policy.csv
5.1.2.1. 将 policy.csv 文件挂载到 Developer Hub Helm Chart 复制链接链接已复制到粘贴板!
当使用 Helm Chart 部署 Red Hat Developer Hub 时,您必须通过将 policy.csv
文件挂载到 Developer Hub Helm Chart 来定义 policy.csv 文件。
您可以通过创建一个 configMap
并挂载它,将 policy.csv
文件添加到 Developer Hub Helm Chart 中。
先决条件
- 使用 OpenShift Container Platform Web 控制台登录到 OpenShift Container Platform 帐户。
Red Hat Developer Hub 使用 Helm Chart 安装和部署。
有关使用 Helm Chart 在 OpenShift Container Platform 上安装 Red Hat Developer Hub 的更多信息,请参阅 第 2.1 节 “使用 Helm Chart 在 OpenShift Container Platform 上部署 Red Hat Developer Hub”。
流程
在 OpenShift Container Platform 中,创建一个 ConfigMap 来保存策略,如下例所示:
ConfigMap
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Developer Hub Helm Chart 中,进入 Root Schema
Backstage chart schema Backstage parameters Backstage container additional volume mount。 选择 Add Backstage 容器附加卷挂载 并添加以下值:
-
mountPath:
opt/app-root/src/rbac
-
名称 :
rbac-policy
-
mountPath:
将 RBAC 策略添加到 Developer Hub Helm Chart 中的 Backstage 容器额外卷中 :
-
名称 :
rbac-policy
configMap
-
DefaultMode:
420
-
名称 :
rbac-policy
-
DefaultMode:
-
名称 :
更新
app-config.yaml
文件中的策略路径,如下所示:app-config.yaml
文件示例permission: enabled: true rbac: policies-csv-file: ./rbac/rbac-policy.csv
permission: enabled: true rbac: policies-csv-file: ./rbac/rbac-policy.csv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.3. Red Hat Developer Hub 中的权限策略 复制链接链接已复制到粘贴板!
Red Hat Developer Hub 中的权限策略是一组规则,用于控制对资源或功能的访问。这些策略声明根据其角色授予用户的授权级别。实施权限策略,以维护给定环境中的安全性和保密性。
Developer Hub 支持以下权限策略:
- 目录权限
Name | 资源类型 | policy | 描述 |
---|---|---|---|
|
| 读取 | 允许用户或角色从目录中读取 |
| create | 允许用户或团队创建目录实体,包括在目录中注册现有组件 | |
|
| update | 允许用户或组从目录中刷新一个或多个实体 |
|
| delete | 允许用户或组从目录中删除一个或多个实体 |
| 读取 | 允许用户或组从目录中读取一个或多个位置 | |
| create | 允许用户或组在目录中创建位置 | |
| delete | 允许用户或组从目录中删除位置 |
- Scaffolder 权限
Name | 资源类型 | policy | 描述 |
---|---|---|---|
|
| 允许从模板执行操作 | |
|
| 读取 | 允许用户或组从模板读取一个或多个参数 |
|
| 读取 | 允许用户或角色从模板读取一个或多个步骤 |
- RBAC 权限
Name | 资源类型 | policy | 描述 |
---|---|---|---|
|
| 读取 | 允许用户或角色读取权限策略和角色 |
|
| create | 允许用户或组创建一个或多个权限策略和角色 |
|
| update | 允许用户或组更新一个或多个权限策略和角色 |
|
| delete | 允许用户或组删除一个或多个权限策略和角色 |
- Kubernetes 权限
Name | 资源类型 | policy | 描述 |
---|---|---|---|
| 允许用户或组访问代理端点 |