第 5 章 使用外部文件管理授权
要自动化 Red Hat Developer Hub 维护,您可以在启动 Developer Hub 前在外部文件中配置权限和角色。
5.1. 使用 Operator 在外部文件中定义授权
要自动化 Red Hat Developer Hub 维护,您可以在启动 Developer Hub 前在外部文件中定义权限和角色。您需要准备文件,将其上传到 OpenShift Container Platform 项目中,并将 Developer Hub 配置为使用外部文件。
先决条件
流程
使用以下格式在
rbac-policies.csv
CSV 文件中定义您的策略:定义角色权限:
p, <role_entity_reference>, <permission>, <action>, <allow_or_deny>
- <role_entity_reference>
-
角色实体引用,例如:
role:default/guest
。 - <permission>
权限,如:
bulk.import
、catalog.entity.read
或catalog.entity.refresh
,或权限资源类型,如bulk-import
或catalog-entity
。请参阅: 权限策略参考。
- <action>
-
操作类型,例如:
使用
、读取
、创建
、更新
、删除
。 - <allow_or_deny>
-
授予访问权限:
允许或拒绝
为组或用户分配角色:
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
使用以下格式在
rbac-conditional-policies.yaml
YAML 文件中定义条件策略:result: CONDITIONAL roleEntityRef: <role_entity_reference> pluginId: <plugin_id> permissionMapping: - read - update - delete conditions: <conditions>
请参阅: 条件策略参考。
将
rbac-policies.csv
和rbac-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
更新 Developer Hub
Backstage
自定义资源,从rbac-policies
配置映射中挂载您的文件的 Developer Hub 文件系统:Backstage
自定义资源片段apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage spec: application: extraFiles: mountPath: /opt/app-root/src configMaps: - name: rbac-policies
更新 Developer Hub
app-config.yaml
配置文件,以使用rbac-policies.csv
和rbac-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