第8章 パーミッションポリシーリファレンス
Red Hat Developer Hub のパーミッションポリシーは、リソースまたは機能へのアクセスを管理する一連のルールです。これらのポリシーは、ユーザーのロールに基づいてユーザーに付与される認可レベルを示します。パーミッションポリシーは、特定の環境内でセキュリティーと機密性を維持するために実装されます。
Developer Hub では、次の種類のパーミッションを定義できます。
- リソースタイプ
- basic
2 つのパーミッションタイプの違いは、パーミッションに定義されたリソースタイプが含まれているかどうかによって決まります。
リソースタイプパーミッションは、次の例に示すように、関連するリソースタイプまたはパーミッション名のいずれかを使用して定義できます。
リソースタイプパーミッションの定義の例
p, role:default/myrole, catalog.entity.read, read, allow
g, user:default/myuser, role:default/myrole
p, role:default/another-role, catalog-entity, read, allow
g, user:default/another-user, role:default/another-role
基本的なパーミッションは、次の例に示すように、パーミッション名を使用して Developer Hub で定義できます。
基本的なパーミッションの定義の例
p, role:default/myrole, catalog.entity.create, create, allow
g, user:default/myuser, role:default/myrole
Developer Hub は次のパーミッションポリシーをサポートしています。
- Catalog パーミッション
- .Catalog パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
| ユーザーまたはロールがカタログから読み取ることを許可する |
|
|
| ユーザーまたはロールがカタログエンティティーを作成することを許可する。これには、カタログ内の既存のコンポーネントの登録も含まれます。 | |
|
|
|
| ユーザーまたはロールがカタログから単一または複数のエンティティーを更新することを許可する。 |
|
|
|
| ユーザーまたはロールがカタログから単一または複数のエンティティーを削除することを許可する。 |
|
|
| ユーザーまたはロールがカタログから単一または複数の場所を読み取ることを許可する | |
|
|
| ユーザーまたはロールがカタログ内に場所を作成することを許可する | |
|
|
| ユーザーまたはロールがカタログから場所を削除することを許可する |
- 一括インポートパーミッション
- .一括インポートパーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
| すべての GitHub インテグレーションでアクセス可能なすべてのリポジトリーと組織のリスト表示や、インポート要求の管理など、一括インポートエンドポイントにユーザーがアクセスできるようにする |
- Scaffolder パーミッション
- .Scaffolder パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
| テンプレートからのアクションの実行を許可する |
|
|
|
| ユーザーまたはロールがテンプレートから 1 つまたは複数のパラメーターを読み取ることを許可する |
|
|
|
| ユーザーまたはロールがテンプレートから 1 つまたは複数のステップを読み取ることを許可する |
|
|
| ユーザーまたはロールが新しいスキャフォールダータスクを作成するソフトウェアテンプレートをトリガーすることを許可する | |
|
|
| ユーザーまたはロールが現在実行中のスキャフォールダータスクをキャンセルすることを許可する | |
|
|
| ユーザーまたはロールがすべてのスキャフォールダータスクとそれに関連するイベントおよびログを読み取ることを許可する | |
|
|
| ユーザーまたはロールが、フロントエンドテンプレート管理機能 (テンプレート、フォーム、およびカスタムフィールドの編集、プレビュー、および試用など) にアクセスすることを許可する |
- RBAC パーミッション
- .RBAC パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
| ユーザーまたはロールがパーミッションポリシーとロールを読み取ることを許可する |
|
|
| ユーザーまたはロールが単一または複数のパーミッションポリシーとロールを作成することを許可する | |
|
|
|
| ユーザーまたはロールが単一または複数のパーミッションポリシーとロールを更新することを許可する |
|
|
|
| ユーザーまたはロールが単一または複数のパーミッションポリシーとロールを削除することを許可する |
- Kubernetes パーミッション
- .Kubernetes パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
ユーザーが | |
|
|
|
ユーザーが | |
|
|
| ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可する |
- OCM パーミッション
-
基本的な OCM パーミッションはクラスタービューへのアクセスのみを制限しますが、リソースビュー内の Kubernetes クラスターへのアクセスを妨げることはありません。より効果的なパーミッションを得るには、条件付きポリシーを適用して、
kubernetes-clusterタイプのカタログエンティティーへのアクセスを制限することを検討してください。アクセス制限は、ロールに付与されたパーミッションのセットに依存します。たとえば、ロールに完全なパーミッション (read、update、delete) がある場合は、permissionMappingフィールドにそのすべてのパーミッションを指定する必要があります。
permissionMapping 定義の例
result: CONDITIONAL
roleEntityRef: 'role:default/<YOUR_ROLE>'
pluginId: catalog
resourceType: catalog-entity
permissionMapping:
- read
- update
- delete
conditions:
not:
rule: HAS_SPEC
resourceType: catalog-entity
params:
key: type
value: kubernetes-cluster
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| ユーザーまたはロールが OCM プラグインから読み取ることを許可する | |
|
|
| ユーザーまたはロールが OCM プラグイン内のクラスター情報を読み取ることを許可する |
- トポロジーパーミッション
- .Topology パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
ユーザーが | |
|
|
|
ユーザーが | |
|
|
| ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可し、RHDH 内の Pod ログとイベントを読み取ることを許可する |
- Tekton パーミッション
- .Tekton パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
|
ユーザーが | |
|
|
|
ユーザーが | |
|
|
| ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可し、RHDH 内の Pod ログとイベントを読み取ることを許可する |
- ArgoCD パーミッション
- .ArgoCD パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| ユーザーが ArgoCD プラグインから読み取ることを許可する |
- Quay パーミッション
- .Quay パーミッション
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| ユーザーが Quay プラグインから読み取ることを許可する |