5.2. 使用 Helm 在外部文件中定义授权


要自动化 Red Hat Developer Hub 维护,您可以在启动 Developer Hub 前在外部文件中定义权限和角色。您需要准备文件,将其上传到 OpenShift Container Platform 项目中,并将 Developer Hub 配置为使用外部文件。

流程

  1. 使用以下格式在 rbac-policies.csv CSV 文件中定义您的策略:

    1. 定义角色权限:

      p, <role_entity_reference>, <permission>, <action>, <allow_or_deny>
      <role_entity_reference>
      角色实体引用,例如: role:default/guest
      <permission>

      权限,如: bulk.importcatalog.entity.readcatalog.entity.refresh,或权限资源类型,如 bulk-importcatalog-entity

      请参阅: 权限策略参考

      <action>
      操作类型,例如: 使用读取创建更新删除
      <allow_or_deny>
      授予访问权限: 允许或拒绝 .
    2. 为组或用户分配角色:

      g, <group_or_user>, <role_entity_reference>
      <group_or_user>

      组,如 user:default/mygroup 或 user,例如: user:default/myuser

      Sample rbac-policies.csv

      p, role:default/guests, catalog-entity, read, allow
      p, role:default/guests, catalog.entity.create, create, allow
      g, user:default/my-user, role:default/guests
      g, group:default/my-group, role:default/guests

  2. 使用以下格式在 rbac-conditional-policies.yaml YAML 文件中定义条件策略:

    result: CONDITIONAL
    roleEntityRef: <role_entity_reference>
    pluginId: <plugin_id>
    permissionMapping:
      - read
      - update
      - delete
    conditions: <conditions>

    请参阅: 条件策略参考

  3. rbac-policies.csvrbac-conditional-policies.yaml 文件上传到包含 Developer Hub 的 OpenShift Container Platform 项目中的 rbac-policies 配置映射。

    $ oc create configmap rbac-policies \
         --from-file=rbac-policies.csv \
         --from-file=rbac-conditional-policies.yaml
  4. 更新 Developer Hub Backstage Helm Chart,以挂载到 rbac-policies 配置映射中的 Developer Hub 文件系统:

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

      mountPath
      /opt/app-root/src
      Name
      rbac-policies
    3. 将 RBAC 策略添加到 Developer Hub Helm Chart 中的 Backstage 容器 附加卷:

      名称
      rbac-policies
      configMap
      defaultMode
      420
      名称
      rbac-policies
  5. 更新 Developer Hub app-config.yaml 配置文件,以使用 rbac-policies.csvrbac-conditional-policies.yaml 外部文件:

    app-config.yml 片段

    permission:
      enabled: true
      rbac:
        conditionalPoliciesFile: /opt/app-root/src/rbac-conditional-policies.yaml
        policies-csv-file: /opt/app-root/src/rbac-policies.csv
        policyFileReload: true

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.