5.2. Helm を使用して外部ファイルで認可の定義
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.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
次の形式を使用して、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-policies
config map にアップロードします。$ oc create configmap rbac-policies \ --from-file=rbac-policies.csv \ --from-file=rbac-conditional-policies.yaml
Developer Hub
Backstage
Helm チャートを更新して、rbac-policies
config map からファイルを Developer Hub ファイルシステムにマウントします。-
Developer Hub Helm チャートで、Root Schema
Backstage chart schema Backstage parameters Backstage container additional volume mounts に移動します。 Add Backstage container additional volume mounts を選択し、次の値を追加します。
- mountPath
-
/opt/app-root/src
- 名前
-
rbac-policies
RBAC ポリシーを、Developer Hub Helm チャートの Backstage container additional volumes に追加します。
- name
-
rbac-policies
- configMap
- defaultMode
-
420
- name
-
rbac-policies
-
Developer Hub Helm チャートで、Root Schema
外部ファイル
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