第 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 文件中设置权限策略管理员的凭证,如下所示:

permission:
  enabled: true
  rbac:
    admin:
      users:
        - name: user:default/joeuser
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

当使用 Helm Chart 部署 Red Hat Developer Hub 时,您必须通过将 policy.csv 文件挂载到 Developer Hub Helm Chart 来定义 policy.csv 文件。

您可以通过创建一个 configMap 并挂载它,将 policy.csv 文件添加到 Developer Hub Helm Chart 中。

先决条件

流程

  1. 在 OpenShift Container Platform 中,创建一个 ConfigMap 来保存策略,如下例所示:

    ConfigMap 示例

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: rbac-policy
      namespace: rhdh
    data:
      rbac-policy.csv: |
        p, role:default/guests, catalog-entity, read, allow
        p, role:default/guests, catalog.entity.create, create, allow
    
        g, user:default/<YOUR_USER>, role:default/guests
    Copy to Clipboard Toggle word wrap

  2. 在 Developer Hub Helm Chart 中,进入 Root Schema Backstage chart schema Backstage parameters Backstage container additional volume mount
  3. 选择 Add Backstage 容器附加卷挂载 并添加以下值:

    • mountPath:opt/app-root/src/rbac
    • 名称rbac-policy
  4. 将 RBAC 策略添加到 Developer Hub Helm Chart 中的 Backstage 容器额外卷中

    • 名称rbac-policy
    • configMap

      • DefaultMode:420
      • 名称rbac-policy
  5. 更新 app-config.yaml 文件中的策略路径,如下所示:

    app-config.yaml 文件示例

    permission:
      enabled: true
      rbac:
        policies-csv-file: ./rbac/rbac-policy.csv
    Copy to Clipboard Toggle word wrap

5.1.3. Red Hat Developer Hub 中的权限策略

Red Hat Developer Hub 中的权限策略是一组规则,用于控制对资源或功能的访问。这些策略声明根据其角色授予用户的授权级别。实施权限策略,以维护给定环境中的安全性和保密性。

Developer Hub 支持以下权限策略:

目录权限
Expand
Name资源类型policy描述

catalog.entity.read

catalog-entity

读取

允许用户或角色从目录中读取

catalog.entity.create

 

create

允许用户或团队创建目录实体,包括在目录中注册现有组件

catalog.entity.refresh

catalog-entity

update

允许用户或组从目录中刷新一个或多个实体

catalog.entity.delete

catalog-entity

delete

允许用户或组从目录中删除一个或多个实体

catalog.location.read

 

读取

允许用户或组从目录中读取一个或多个位置

catalog.location.create

 

create

允许用户或组在目录中创建位置

catalog.location.delete

 

delete

允许用户或组从目录中删除位置

Scaffolder 权限
Expand
Name资源类型policy描述

scaffolder.action.execute

scaffolder-action

 

允许从模板执行操作

scaffolder.template.parameter.read

scaffolder-template

读取

允许用户或组从模板读取一个或多个参数

scaffolder.template.step.read

scaffolder-template

读取

允许用户或角色从模板读取一个或多个步骤

RBAC 权限
Expand
Name资源类型policy描述

policy.entity.read

policy-entity

读取

允许用户或角色读取权限策略和角色

policy.entity.create

policy-entity

create

允许用户或组创建一个或多个权限策略和角色

policy.entity.update

policy-entity

update

允许用户或组更新一个或多个权限策略和角色

policy.entity.delete

policy-entity

delete

允许用户或组删除一个或多个权限策略和角色

Kubernetes 权限
Expand
Name资源类型policy描述

kubernetes.proxy

  

允许用户或组访问代理端点

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat