第5章 外部ファイルを使用した認可の管理
Red Hat Developer Hub のメンテナンスを自動化するには、Developer Hub を起動する前に、外部ファイルで権限とロールを設定できます。
5.1. Operator を使用して外部ファイルで権限の定義 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub のメンテナンスを自動化するには、Developer Hub を起動する前に、外部ファイルで権限とロールを定義します。ファイルを準備し、OpenShift Container Platform プロジェクトにアップロードして、外部ファイルを使用するように Developer Hub を設定する必要があります。
前提条件
手順
次の形式を使用して、CSV ファイル
rbac-policies.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>
-
アクションタイプ (例:
use、read、create、update、delete)。 - <allow_or_deny>
-
許可されるアクセス: (
allowまたはdeny)。
グループまたはユーザーにロールを割り当てます。
g, <group_or_user>, <role_entity_reference>- <group_or_user>
グループ (例:
user:default/mygroup)、またはユーザー (例:user:default/myuser)。サンプル
rbac-policies.csvp, 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
次の形式を使用して、YAML ファイル
rbac-conditional-policies.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-policiesconfig map にアップロードします。$ oc create configmap rbac-policies \ --from-file=rbac-policies.csv \ --from-file=rbac-conditional-policies.yamlDeveloper Hub
Backstageカスタムリソースを更新して、rbac-policiesconfig map からファイルを Developer Hub ファイルシステムにマウントします。BackstageカスタムリソースフラグメントapiVersion: rhdh.redhat.com/v1alpha1 kind: Backstage spec: application: extraFiles: mountPath: /opt/app-root/src configMaps: - name: rbac-policies外部ファイル
rbac-policies.csvおよびrbac-conditional-policies.yamlを使用するように、Developer Hub のapp-config.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