認可


Red Hat Developer Hub 1.2

Red Hat Developer Hub でロールベースアクセス制御 (RBAC) を使用して認可を設定する

Red Hat Customer Content Services

概要

Red Hat Developer Hub プラットフォームエンジニアは、ロールベースのアクセス制御 (RBAC) を使用して他のユーザーの認可を管理し、組織の特定のニーズを満たすことができます。

第1章 Red Hat Developer Hub のロールベースアクセス制御 (RBAC)

ロールベースアクセス制御は、認可済みユーザーへのアクセスを制限するセキュリティーパラダイムです。この機能を使用すると、特定の権限を持つロールが定義され、それらのロールがユーザーに割り当てられます。

Red Hat Developer Hub は RBAC を使用して、プラットフォーム内の権限システムを改善します。Developer Hub の RBAC 機能は、管理者ロールを導入し、効率的なアクセス制御を促進して、チーム、グループ、ユーザーを含む組織構造を活用します。

第2章 Red Hat Developer Hub の権限ポリシー

Red Hat Developer Hub の権限ポリシーは、リソースまたは機能へのアクセスを管理する一連のルールです。これらのポリシーは、ユーザーのロールに基づいてユーザーに付与される認可レベルを示します。権限ポリシーは、特定の環境内でセキュリティーと機密性を維持するために実装されます。

Developer Hub では、次の種類の権限を定義できます。

  • リソースタイプ
  • 基本

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
Copy to Clipboard Toggle word wrap

基本的な権限は、次の例に示すように、権限名を使用して Developer Hub で定義できます。

基本的な権限の定義の例

p, role:default/myrole, catalog.entity.create, create, allow
g, user:default/myuser, role:default/myrole
Copy to Clipboard Toggle word wrap

Developer Hub では、次の権限ポリシーがサポートされます。

Catalog 権限
Expand
名前リソースタイプポリシー説明

catalog.entity.read

catalog-entity

read

ユーザーまたはロールがカタログから読み取ることを許可します。

catalog.entity.create

 

create

ユーザーまたはロールによるカタログエンティティーの作成 (既存のコンポーネントをカタログに登録することを含む) を許可します。

catalog.entity.refresh

catalog-entity

update

ユーザーまたはロールがカタログから単一または複数のエンティティーを更新することを許可します。

catalog.entity.delete

catalog-entity

delete

ユーザーまたはロールがカタログから単一または複数のエンティティーを削除することを許可します。

catalog.location.read

 

read

ユーザーまたはロールがカタログから単一または複数の場所を読み取ることを許可します。

catalog.location.create

 

create

ユーザーまたはロールがカタログ内に場所を作成することを許可します。

catalog.location.delete

 

delete

ユーザーまたはロールがカタログから場所を削除することを許可します。

Scaffolder 権限
Expand
名前リソースタイプポリシー説明

scaffolder.action.execute

scaffolder-action

 

テンプレートからのアクションの実行を許可します。

scaffolder.template.parameter.read

scaffolder-template

read

ユーザーまたはロールがテンプレートから単一または複数のパラメーターを読み取ることを許可します。

scaffolder.template.step.read

scaffolder-template

read

ユーザーまたはロールがテンプレートから単一または複数のステップを読み取ることを許可します。

scaffolder.task.create

 

create

ユーザーまたはロールが新しい scaffolder タスクを作成するソフトウェアテンプレートをトリガーすることを許可します。

scaffolder.task.cancel

  

ユーザーまたはロールが現在実行中の scaffolder タスクをキャンセルすることを許可します。

scaffolder.task.read

 

read

ユーザーまたはロールがすべての scaffolder タスクとそれに関連するイベントおよびログを読み取ることを許可します。

RBAC 権限
Expand
名前リソースタイプポリシー説明

policy.entity.read

policy-entity

read

ユーザーまたはロールに権限ポリシーとロールの読み取りを許可します。

policy.entity.create

policy-entity

create

ユーザーまたはロールが単一または複数の権限ポリシーとロールを作成することを許可します。

policy.entity.update

policy-entity

update

ユーザーまたはロールが単一または複数の権限ポリシーとロールを更新することを許可します。

policy.entity.delete

policy-entity

delete

ユーザーまたはロールが単一または複数の権限ポリシーとロールを削除することを許可します。

Kubernetes 権限
Expand
名前リソースタイプポリシー説明

kubernetes.proxy

  

ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可します。

OCM 権限
Expand
名前リソースタイプポリシー説明

ocm.entity.read

 

read

ユーザーまたはロールが OCM プラグインから読み取ることを許可します。

ocm.cluster.read

 

read

ユーザーまたはロールが OCM プラグイン内のクラスター情報を読み取ることを許可します。

トポロジー権限
Expand
名前リソースタイプポリシー説明

topology.view.read

 

read

ユーザーまたはロールがトポロジープラグインを表示することを許可します。

kubernetes.proxy

  

ユーザーまたはロールがプロキシーエンドポイントにアクセスし、RHDH 内の Pod ログとイベントを読み取ることを許可します。

2.1. 権限ポリシーの設定

Red Hat Developer Hub では、2 つの方法で権限ポリシーを設定できます。

  • 権限ポリシー管理者の設定
  • 外部ファイルで定義された権限ポリシーの設定

2.1.1. 権限ポリシー管理者の設定

Developer Hub のユーザーとグループの権限ポリシーは、権限ポリシー管理者が管理します。ロールベースアクセス制御 REST API には、権限ポリシー管理者のみアクセスできます。

ポリシー管理者を設定する目的は、特定の制限された数の認証済みユーザーが RBAC REST API にアクセスできるようにすることです。権限ポリシーは、app-config-rhdh ConfigMap で参照される policy.csv ファイルで定義されます。OpenShift プラットフォーム管理者またはクラスター管理者は、Red Hat Developer Hub がデプロイされている namespace にアクセスしてこのタスクを実行できます。

以下のように app-config.yaml ファイルを設定して、パーミッションポリシー管理者を有効にすることができます。

permission:
  enabled: true
  rbac:
    admin:
      users:
        - name: user:default/joeuser
Copy to Clipboard Toggle word wrap

権限ポリシーロール (role:default/rbac_admin) は、Developer Hub のデフォルトのロールです。権限ポリシー/ロールの作成、読み取り、更新、削除、カタログからの読み取りなどの権限を作成時に追加します。

デフォルトの権限が要件に適していない場合は、適切な権限ポリシーを使用して、要件に合わせて新しい管理者ロールを定義できます。または、オプションの superUsers 設定値を使用して、Developer Hub 全体に無制限の権限を付与することもできます。

superUsers は、app-config.yaml ファイルで次のように設定できます。

# ...
permission:
  enabled: true
  rbac:
    admin:
      superUsers:
        - name: user:default/joeuser
        # ...
Copy to Clipboard Toggle word wrap

2.1.2. 外部ファイルで定義された権限ポリシーの設定

Red Hat Developer Hub を起動する前に、権限ポリシーを設定できます。権限ポリシーが外部ファイルで定義されている場合は、同じファイルを Developer Hub にインポートできます。次の Casbin ルール形式を使用して、権限ポリシーを定義する必要があります。

---
`p, <ROLE>, <PERMISSION_NAME or PERMISSION_RESOURCE_TYPE>, <PERMISSION_POLICY_ACTION>, <ALLOW or DENY>`
---
Copy to Clipboard Toggle word wrap

次の Casbin ルール形式を使用してロールを定義できます。

---
`g, <USER or GROUP>, <ROLE>`
---
Copy to Clipboard Toggle word wrap
注記

Casbin ルールの形式の詳細は、Casbin ルールの基本 を参照してください。

以下は、権限ポリシーの設定例です。

---
`p, role:default/guests, catalog-entity, read, allow`
Copy to Clipboard Toggle word wrap

p, role:default/guests, catalog.entity.create, create, allow

g, user:default/<USER_TO_ROLE>, role:default/guests

g, group:default/<GROUP_TO_ROLE>, role:default/guests ---

定義された権限に関連付けられたアクションが含まれていない場合は、ポリシーとして use を追加します。以下の例を参照してください。

---
`p, role:default/guests, kubernetes.proxy, use, allow`
---
Copy to Clipboard Toggle word wrap

app-config.yaml ファイルで、policy.csv ファイルのパスを定義できます。

permission:
  enabled: true
  rbac:
    policies-csv-file: /some/path/rbac-policy.csv
Copy to Clipboard Toggle word wrap

オプションの設定値を使用すると、Developer Hub インスタンスを再起動せずに CSV ファイルを再読み込みできるようになります。

app-config.yaml ファイルで policyFileReload オプションの値を設定します。

# ...
permission:
  enabled: true
  rbac:
    policies-csv-file: /some/path/rbac-policy.csv
    policyFileReload: true
    # ...
Copy to Clipboard Toggle word wrap
2.1.2.1. policy.csv ファイルを Developer Hub Helm チャートにマウントする

Red Hat Developer Hub が Helm チャートを使用してデプロイされている場合は、policy.csv ファイルを Developer Hub Helm チャートにマウントすることで、このファイルを定義する必要があります。

configMap を作成してマウントすることで、policy.csv ファイルを Developer Hub Helm チャートに追加できます。

前提条件

  • OpenShift Container Platform Web コンソールを使用して OpenShift Container Platform アカウントにログインしている。
  • Red Hat Developer Hub が、Helm チャートを使用してインストールおよびデプロイされている。

手順

  1. OpenShift Container Platform で、次の例に示すように、ポリシーを保持する ConfigMap を作成します。

    ConfigMap の例

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: rbac-policy
      namespace: rhdh
    data:
      rbac-policy.csv: |
        p, role:default/guests, catalog-entity, read, allow
        p, role:default/guests, catalog.entity.create, create, allow
    
        g, user:default/<YOUR_USER>, role:default/guests
    Copy to Clipboard Toggle word wrap

  2. Developer Hub Helm チャートで、Root Schema → Backstage chart schema → Backstage parameters → Backstage container additional volume mounts に移動します。
  3. Add Backstage container additional volume mounts を選択し、次の値を追加します。

    • mountPath: opt/app-root/src/rbac
    • Name: rbac-policy
  4. RBAC ポリシーを、Developer Hub Helm チャートの Backstage container additional volumes に追加します。

    • name: rbac-policy
    • configMap

      • defaultMode: 420
      • name: rbac-policy
  5. app-config.yaml ファイル内のポリシーパスを、次のように更新します。

    app-config.yaml ファイルの例

    permission:
      enabled: true
      rbac:
        policies-csv-file: ./rbac/rbac-policy.csv
    Copy to Clipboard Toggle word wrap

第3章 Red Hat Developer Hub の条件付きポリシー

Red Hat Developer Hub の権限フレームワークでは、RBAC バックエンドプラグイン (backstage-plugin-rbac-backend) によってサポートされる条件を使用できます。条件は、RBAC バックエンドプラグインによって提供される Developer Hub リソースのコンテンツフィルターとして機能します。

RBAC バックエンド API は、ロールに割り当てられた条件をデータベースに保存します。ユーザーがフロントエンドリソースへのアクセスを要求すると、RBAC バックエンド API は、対応する条件を検索し、プラグイン ID を使用して適切なプラグインに条件を委譲します。異なる条件を持つ複数のロールにユーザーが割り当てられていると、RBAC バックエンドは anyOf 基準を使用して条件をマージします。

条件基準

Developer Hub の条件は、ルールとパラメーターを含む単純な条件です。ただし、条件には、条件基準によって結合されたパラメーターまたはパラメーターの配列を含めることもできます。サポートされている条件基準は次のとおりです。

  • allOf: 結合された条件が満たされるためには、配列内のすべての条件が true でなければならない。
  • anyOf: 結合された条件が満たされるためには、配列内の条件の少なくとも 1 つが true でなければならない。
  • not: 結合された条件が満たされるためには、その中の条件が true であってはならない。
条件オブジェクト

条件でサポートされるパラメーターは、プラグインによって指定されます。RBAC API エンドポイントから条件オブジェクトスキーマにアクセスすると、RBAC バックエンドプラグイン API で使用される JSON 条件オブジェクトの構築方法を確認できます。

条件オブジェクトには次のパラメーターがあります。

Expand
表3.1 条件オブジェクトのパラメーター
パラメーター説明

result

String

常に CONDITIONAL の値を持つ

roleEntityRef

String

RBAC ロールへの文字列エンティティー参照 (role:default/dev など)

pluginId

String

対応するプラグイン ID (catalog など)

permissionMapping

String array

権限アクションの配列 (['read', 'update', 'delete'] など)

resourceType

String

プラグインによって提供されるリソースタイプ (catalog-entity など)

conditions

JSON

条件によって結合されたパラメーターまたは配列パラメーターを含む条件 JSON

3.1. 条件付きポリシーの定義

Red Hat Developer Hub では、条件付きポリシー用の API エンドポイントにアクセスできます。たとえば、条件付きポリシーを定義するのに役立つ利用可能な条件ルールを取得するために、GET [api/plugins/condition-rules] エンドポイントにアクセスできます。

api/plugins/condition-rules は、条件パラメータースキーマを返します。次に例を示します。

[
   {
      "pluginId": "catalog",
      "rules": [
         {
            "name": "HAS_ANNOTATION",
            "description": "Allow entities with the specified annotation",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "annotation": {
                     "type": "string",
                     "description": "Name of the annotation to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the annotation to match on"
                  }
               },
               "required": [
                  "annotation"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_LABEL",
            "description": "Allow entities with the specified label",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "label": {
                     "type": "string",
                     "description": "Name of the label to match on"
                  }
               },
               "required": [
                  "label"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_METADATA",
            "description": "Allow entities with the specified metadata subfield",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "key": {
                     "type": "string",
                     "description": "Property within the entities metadata to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the given property to match on"
                  }
               },
               "required": [
                  "key"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_SPEC",
            "description": "Allow entities with the specified spec subfield",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "key": {
                     "type": "string",
                     "description": "Property within the entities spec to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the given property to match on"
                  }
               },
               "required": [
                  "key"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "IS_ENTITY_KIND",
            "description": "Allow entities matching a specified kind",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "kinds": {
                     "type": "array",
                     "items": {
                        "type": "string"
                     },
                     "description": "List of kinds to match at least one of"
                  }
               },
               "required": [
                  "kinds"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "IS_ENTITY_OWNER",
            "description": "Allow entities owned by a specified claim",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "claims": {
                     "type": "array",
                     "items": {
                        "type": "string"
                     },
                     "description": "List of claims to match at least one on within ownedBy"
                  }
               },
               "required": [
                  "claims"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         }
      ]
   }
   ... <another plugin condition parameter schemas>
]
Copy to Clipboard Toggle word wrap

RBAC バックエンド API は、上記の条件スキーマに基づいて JSON 条件オブジェクトを構築します。

3.1.1. 条件付きポリシーの例

Red Hat Developer Hub では、基準のある、または基準のない条件付きポリシーを定義できます。次の例を使用して、ユースケースに応じて条件を定義できます。

基準のない条件

ユーザーが所有者グループに属する場合にのみカタログを表示する、基準のない条件を考えてみます。この条件を追加するには、カタログプラグインスキーマ IS_ENTITY_OWNER を次のように使用します。

基準のない条件の例

{
  "rule": "IS_ENTITY_OWNER",
  "resourceType": "catalog-entity",
  "params": {
    "claims": ["group:default/team-a"]
  }
}
Copy to Clipboard Toggle word wrap

上記の例では、条件パラメーターとして、ユーザーまたはグループエンティティー参照のリストを含む Claims だけが使用されています。

次のように追加のパラメーターを追加することで、上記の例の条件を RBAC REST API に適用できます。

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/test",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["read"],
  "conditions": {
    "rule": "IS_ENTITY_OWNER",
    "resourceType": "catalog-entity",
    "params": {
      "claims": ["group:default/team-a"]
    }
  }
}
Copy to Clipboard Toggle word wrap
基準のある条件

ユーザーが所有者グループに属する場合にのみカタログを表示するか、すべてのカタログユーザーグループのリストを表示する、基準のある条件を考えてみます。

基準を追加するには、次のように、条件に IS_ENTITY_KIND として別のルールを追加します。

基準のある条件の例

{
  "anyOf": [
    {
      "rule": "IS_ENTITY_OWNER",
      "resourceType": "catalog-entity",
      "params": {
        "claims": ["group:default/team-a"]
      }
    },
    {
      "rule": "IS_ENTITY_KIND",
      "resourceType": "catalog-entity",
      "params": {
        "kinds": ["Group"]
      }
    }
  ]
}
Copy to Clipboard Toggle word wrap

注記

作成中に条件を並行して実行することは、サポートされていません。したがって、利用可能な基準に基づいて、ネストされた条件付きポリシーを定義することを検討してください。

ネストされた条件の例

{
  "anyOf": [
    {
      "rule": "IS_ENTITY_OWNER",
      "resourceType": "catalog-entity",
      "params": {
        "claims": ["group:default/team-a"]
      }
    },
    {
      "rule": "IS_ENTITY_KIND",
      "resourceType": "catalog-entity",
      "params": {
        "kinds": ["Group"]
      }
    }
  ],
  "not": {
    "rule": "IS_ENTITY_KIND",
    "resourceType": "catalog-entity",
    "params": { "kinds": ["Api"] }
  }
}
Copy to Clipboard Toggle word wrap

次のように追加のパラメーターを追加することで、上記の例の条件を RBAC REST API に適用できます。

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/test",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["read"],
  "conditions": {
    "anyOf": [
      {
        "rule": "IS_ENTITY_OWNER",
        "resourceType": "catalog-entity",
        "params": {
          "claims": ["group:default/team-a"]
        }
      },
      {
        "rule": "IS_ENTITY_KIND",
        "resourceType": "catalog-entity",
        "params": {
          "kinds": ["Group"]
        }
      }
    ]
  }
}
Copy to Clipboard Toggle word wrap

以下の例は、Developer Hub プラグインで使用できます。以下の例は、条件付きポリシーを定義する方法を決定するのに役立ちます。

Keycloak プラグイン用に定義した条件付きポリシー

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/developer",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["update", "delete"],
  "conditions": {
    "not": {
      "rule": "HAS_ANNOTATION",
      "resourceType": "catalog-entity",
      "params": { "annotation": "keycloak.org/realm", "value": "<YOUR_REALM>" }
    }
  }
}
Copy to Clipboard Toggle word wrap

上記の Keycloak プラグインの例では、role:default/developer のユーザーが、Keycloak プラグインからカタログに取り込まれたユーザーを更新または削除できないようにしています。

注記

上記の例では、アノテーション keycloak.org/realm<YOUR_REALM> の値が必要です。

Quay プラグイン用に定義した条件付きポリシー

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/developer",
  "pluginId": "scaffolder",
  "resourceType": "scaffolder-action",
  "permissionMapping": ["use"],
  "conditions": {
    "not": {
      "rule": "HAS_ACTION_ID",
      "resourceType": "scaffolder-action",
      "params": { "actionId": "quay:create-repository" }
    }
  }
}
Copy to Clipboard Toggle word wrap

上記の Quay プラグインの例では、ロール role:default/developer が Quay の scaffolder アクションを使用できないようにしています。permissionMappinguse が含まれていることに注意してください。これは、scaffolder-action リソースタイプ権限に権限ポリシーがないことを示しています。

Red Hat Developer Hub の権限の詳細は、2章Red Hat Developer Hub の権限ポリシー を参照してください。

第4章 Red Hat Developer Hub Web UI を使用したロールベースアクセス制御 (RBAC) の管理

管理者は、Developer Hub Web インターフェイス (Web UI) を使用して、特定のロールと権限を個々のユーザーまたはグループに割り当てることができます。ロールを割り当てると、リソースと機能へのアクセスが Developer Hub 全体で確実に規制されます。

Developer Hub の管理者ロールを使用すると、ユーザーとグループに権限を割り当てることができます。これにより、ユーザーまたはグループは、Developer Hub Web UI を使用してロールを表示、作成、変更、および削除できます。

Web UI で RBAC 機能にアクセスするには、@janus-idp/backstage-plugin-rbac プラグインを動的プラグインとしてインストールおよび設定する必要があります。動的プラグインのインストールの詳細は、Red Hat Developer Hub でのプラグインの設定 を参照してください。

@janus-idp/backstage-plugin-rbac プラグインをインストールすると、サイドバーの下部に Administration オプションが表示されます。Administration をクリックすると、デフォルトで RBAC タブが表示され、Developer Hub で作成された既存のロールがすべて表示されます。RBAC タブでは、ユーザー、グループの合計数、およびロールに関連付けられた権限ポリシーの合計数も表示できます。Actions 列を使用してロールを編集または削除することもできます。

4.1. Red Hat Developer Hub Web UI でのロールの作成

Web UI を使用して、Red Hat Developer Hub でロールを作成できます。

前提条件

手順

  1. Developer Hub のサイドバーの下部にある Administration に移動します。

    RBAC タブが表示され、Developer Hub で作成されたすべてのロールが表示されます。

  2. (オプション) 任意のロールをクリックすると、OVERVIEW ページにロール情報が表示されます。
  3. CREATE をクリックしてロールを作成します。
  4. 所定のフィールドにロールの名前と説明を入力し、NEXT をクリックします。
  5. 検索フィールドを使用してユーザーとグループを追加し、NEXT をクリックします。
  6. Add permission policies セクションのドロップダウンから PluginPermission を選択します。
  7. Add permission policies セクションで、設定する Policy を選択または選択解除し、NEXT をクリックします。
  8. Review and create セクションで追加された情報を確認します。
  9. CREATE をクリックします。

検証

作成したロールは、RBAC タブのリストに表示されます。

4.2. Red Hat Developer Hub Web UI でのロールの編集

Web UI を使用して、Red Hat Developer Hub でロールを編集できます。

注記

policy.csv または ConfigMap ファイルから生成されたポリシーは、Developer Hub Web UI を使用して編集または削除することはできません。

前提条件

  • Developer Hub の管理者ロールがある。
  • Developer Hub に @janus-idp/backstage-plugin-rbac プラグインをインストールした。詳細は、Red Hat Developer Hub でのプラグインの設定 を参照してください。
  • 必要な権限ポリシーが設定されている。詳細は、「権限ポリシーの設定」 を参照してください。
  • 編集するロールが Developer Hub で作成されている。

手順

  1. Developer Hub のサイドバーの下部にある Administration に移動します。

    RBAC タブが表示され、Developer Hub で作成されたすべてのロールが表示されます。

  2. (オプション) 任意のロールをクリックすると、OVERVIEW ページにロール情報が表示されます。
  3. 編集するロールの編集アイコンを選択します。
  4. 名前、説明、ユーザーとグループ、権限ポリシーなどのロールの詳細を編集し、NEXT をクリックします。
  5. 編集したロールの詳細を確認し、SAVE をクリックします。

ロールを編集した後、ロールの OVERVIEW ページで編集したロールの詳細を表示できます。OVERVIEW ページの各カードにある編集アイコンを使用して、ロールのユーザーとグループ、または権限を編集することもできます。

4.3. Red Hat Developer Hub Web UI でのロールの削除

Web UI を使用して、Red Hat Developer Hub でロールを削除できます。

注記

policy.csv または ConfigMap ファイルから生成されたポリシーは、Developer Hub Web UI を使用して編集または削除することはできません。

前提条件

  • Developer Hub の管理者ロールがある。
  • Developer Hub に @janus-idp/backstage-plugin-rbac プラグインをインストールした。詳細は、Red Hat Developer Hub でのプラグインの設定 を参照してください。
  • 必要な権限ポリシーが設定されている。詳細は、「権限ポリシーの設定」 を参照してください。
  • 削除するロールが Developer Hub で作成されている。

手順

  1. Developer Hub のサイドバーの下部にある Administration に移動します。

    RBAC タブが表示され、Developer Hub で作成されたすべてのロールが表示されます。

  2. (オプション) 任意のロールをクリックすると、OVERVIEW ページにロール情報が表示されます。
  3. 削除するロールの Actions 列から削除アイコンを選択します。

    Delete this role? というポップアップが画面に表示されます。

  4. DELETE をクリックします。

第5章 ロールベースアクセス制御 (RBAC) REST API

Red Hat Developer Hub は、Developer Hub で権限とロールを管理するために使用できる RBAC REST API を提供します。この API は、Developer Hub の権限ポリシーとロールのメンテナンスを容易にし、自動化します。

RBAC REST API を使用すると、次のアクションを実行できます。

  • すべて、または特定の権限ポリシー、もしくはロールに関する情報を取得します。
  • 権限ポリシーまたはロールを作成、更新、削除します。
  • 静的プラグインに関する権限ポリシーの情報を取得します。

RBAC REST API には、次のコンポーネントが必要です。

認可

RBAC REST API には、許可されたユーザーロールに対するベアラートークンの認可が必要です。開発目的の場合、ブラウザーで Web コンソールにアクセスできます。ネットワーク要求リストでトークン要求を更新すると、応答 JSON 内でトークンが見つかります。

Authorization: Bearer $token

たとえば、Developer Hub の Homepage で、Network タブに移動し、query?term= ネットワーク呼び出しを検索します。または、Catalog ページに移動し、任意のカタログ API ネットワーク呼び出しを選択して、ベアラートークンを取得することもできます。

HTTP メソッド

RBAC REST API は、API 要求で次の HTTP メソッドをサポートします。

  • GET: 指定したリソースのエンドポイントから指定した情報を取得する
  • POST: リソースを作成または更新する
  • PUT: リソースを更新する
  • DELETE: リソースを削除する
ベース URL
RBAC REST API 要求のベース URL は、http://SERVER:PORT/api/permission/policies (http://localhost:7007/api/permission/policies など) です。
Endpoints

RBAC REST API エンドポイント (特定の kindnamespacename/api/permission/policies/[kind]/[namespace]/[name] など) は、対応するリソースにアクセスするためにベース URL に追加する URI です。

以下は、/api/permission/policies/[kind]/[namespace]/[name] エンドポイントの要求 URL の例です。

http://localhost:7007/api/permission/policies/user/default/johndoe

注記

少なくとも 1 つの権限が user:default/johndoe に割り当てられている場合、前述した要求 URL の例は、有効な認可トークンを含む GET 応答で送信されると結果を返します。ただし、権限がロールにのみ割り当てられている場合、例として挙げた要求 URL は出力を返しません。

要求データ

RBAC REST API の HTTP POST 要求では、データに JSON 要求の body が必要になる場合があります。

http://localhost:7007/api/permission/policiesPOST 要求 URL と JSON 要求の body データの例:

{
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "delete",
    "effect": "allow"
}
Copy to Clipboard Toggle word wrap
HTTP ステータスコード

RBAC REST API は、応答として返される次の HTTP ステータスコードをサポートしています。

  • 200 OK: 要求は成功しました。
  • 201 Created: 要求により、新しいリソースが正常に作成されました。
  • 204 No Content: 要求は成功しましたが、応答ペイロードで送信する追加コンテンツはありません。
  • 400 Bad Request: 要求に入力エラーがありました。
  • 401 Unauthorized: 要求されたリソースに対する有効な認証がありません。
  • 403 Forbidden: 要求の承認が拒否されました。
  • 404 Not Found: 要求されたリソースは見つかりません。
  • 409 Conflict: 要求が、現在の状態およびターゲットリソースと競合しています。
ソース

RBAC プラグインを使用して作成された各権限ポリシーとロールは、プラグイン内でデータの一貫性を維持するために、ソースに関連付けられます。次の指定のソース情報に基づいて、権限ポリシーとロールを操作できます。

  • CSV ファイル
  • 設定ファイル
  • REST API
  • レガシー

CSV ファイルと REST API から生成されたロールと権限ポリシーを管理する場合、元のソース情報に基づく簡単な変更が必要になります。

設定ファイルは、RBAC プラグインによって提供されるデフォルトの role:default/rbac_admin ロールに関係します。デフォルトのロールには、権限ポリシーまたはロールの作成、読み取り、更新、削除、およびカタログエンティティーの読み取りを行うための制限された権限があります。

注記

デフォルトの権限が管理要件に適していない場合は、必要な権限ポリシーを使用してカスタム管理者ロールを作成できます。

レガシーソースは、RBAC バックエンドプラグインバージョン 2.1.3 より前に定義されたポリシーとロールに適用されます。上記の選択肢の中で、最も制限が少ないソースの場所です。REST API ソースまたは CSV ファイルソースを使用するには、レガシーソースの権限とロールを更新する必要があります。

必要に応じて、GET リクエストを使用してロールとポリシーをクエリーし、ソース情報を確認できます。

5.1. REST クライアントまたは curl ユーティリティーを使用して RBAC REST API で要求を送信する

RBAC REST API を使用すると、ユーザーインターフェイスを使用せずに、Developer Hub の権限ポリシーおよびロールと対話できます。RBAC REST API 要求は、任意の REST クライアントまたは curl ユーティリティーを使用して送信できます。

前提条件

  • Red Hat Developer Hub がインストールされ、実行されている。

Red Hat Developer Hub のインストールの詳細は、Helm チャートを使用した OpenShift Container Platform への Red Hat Developer Hub のインストール を参照してください。

  • Developer Hub にアクセスできる。

手順

  1. 要求の送信先となる API エンドポイント (例: POST/api/permission/policies) を特定します。ユースケースに合わせて、要求の詳細を調整します。

    REST クライアントの場合:

    • Authorization: Web コンソールから生成されたトークンを入力します。
    • HTTP method: POST に設定します。
    • URL: RBAC REST API のベース URL とエンドポイント (例: http://localhost:7007/api/permission/policies) を入力します。

    curl ユーティリティーの場合:

    • -X: POST に設定します。
    • -H: 以下のヘッダーを設定します。

      Content-type: application/json

      Authorization: Bearer $token

      $token は、ブラウザーの Web コンソールから要求されたトークンです。

    • URL: 次の RBAC REST API ベースの URL エンドポイント (例: http://localhost:7007/api/permission/policies) を入力します。
    • -d: 要求の JSON body を追加します。

    要求例:

    curl -X POST "http://localhost:7007/api/permission/roles" -d '{"memberReferences": ["group:default/example"], "name": "role:default/test", "metadata": { "description": "This is a test role" } }' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

    curl -X POST "http://localhost:7007/api/permission/policies" -d '[{"entityReference":"role:default/test", "permission": "catalog-entity", "policy": "read", "effect":"allow"}]' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

    curl -X POST "http://localhost:7007/api/permission/roles/conditions" -d '{"result": "CONDITIONAL", "roleEntityRef": "role:default/test", "pluginId": "catalog", "resourceType": "catalog-entity", "permissionMapping": ["read"], "conditions": {"rule": "IS_ENTITY_OWNER", "resourceType": "catalog-entity", "params": {"claims": ["group:default/janus-authors"]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

  2. 要求を実行し、応答を確認します。

5.2. サポートされている RBAC REST API エンドポイント

RBAC REST API は、Developer Hub でロール、権限、条件付きポリシーを管理し、ロールとポリシーに関する情報を取得するためのエンドポイントを提供します。

5.2.1. ロール

RBAC REST API は、Red Hat Developer Hub でロールを管理するために、次のエンドポイントをサポートします。

[GET] /api/permission/roles

Developer Hub のすべてのロールを返します。

応答例 (JSON)

[
  {
    "memberReferences": ["user:default/username"],
    "name": "role:default/guests"
  },
  {
    "memberReferences": [
      "group:default/groupname",
      "user:default/username"
    ],
    "name": "role:default/rbac_admin"
  }
]
Copy to Clipboard Toggle word wrap

[GET] /api/permission/roles/{kind}/{namespace}/{name}

Developer Hub の 1 つのロールに関する情報を返します。

応答例 (JSON)

[
  {
    "memberReferences": [
      "group:default/groupname",
      "user:default/username"
    ],
    "name": "role:default/rbac_admin"
  }
]
Copy to Clipboard Toggle word wrap

[POST] /api/permission/roles/{kind}/{namespace}/{name}

Developer Hub でロールを作成します。

Expand
表5.1 要求パラメーター
名前説明存在

body

作成される新しいロールの memberReferencesgroupnamespacename

リクエストの本文

必須

要求の body の例 (JSON)

{
  "memberReferences": ["group:default/test"],
  "name": "role:default/test_admin"
}
Copy to Clipboard Toggle word wrap

応答の例

201 Created
Copy to Clipboard Toggle word wrap

[PUT] /api/permission/roles/{kind}/{namespace}/{name}

Developer Hub のロールの memberReferenceskindnamespace、または name を更新します。

要求パラメーター

要求の body には、oldRole オブジェクトと newRole オブジェクトが含まれています。

Expand
名前説明存在

body

作成される新しいロールの memberReferencesgroupnamespacename

リクエストの本文

必須

要求の body の例 (JSON)

{
  "oldRole": {
    "memberReferences": ["group:default/test"],
    "name": "role:default/test_admin"
  },
  "newRole": {
    "memberReferences": ["group:default/test", "user:default/test2"],
    "name": "role:default/test_admin"
  }
}
Copy to Clipboard Toggle word wrap

応答の例

200 OK
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/roles/{kind}/{namespace}/{name}?memberReferences=<VALUE>

Developer Hub のロールから、指定されたユーザーまたはグループを削除します。

Expand
表5.2 要求パラメーター
名前説明存在

kind

エンティティーの種類

String

必須

namespace

エンティティーの namespace

String

必須

name

エンティティーの名前

String

必須

memberReferences

関連するグループの情報

String

必須

応答の例

204
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/roles/{kind}/{namespace}/{name}

Developer Hub から、指定されたロールを削除します。

Expand
表5.3 要求パラメーター
名前説明存在

kind

エンティティーの種類

String

必須

namespace

エンティティーの namespace

String

必須

name

エンティティーの名前

String

必須

応答の例

204
Copy to Clipboard Toggle word wrap

5.2.2. 権限ポリシー

RBAC REST API は、Red Hat Developer Hub で権限ポリシーを管理するために、次のエンドポイントをサポートします。

[GET] /api/permission/policies

すべてのユーザーの権限ポリシーリストを返します。

応答例 (JSON)

[
  {
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow",
    "metadata": {
      "source": "csv-file"
    }
  },
  {
    "entityReference": "role:default/test",
    "permission": "catalog.entity.create",
    "policy": "use",
    "effect": "allow",
    "metadata": {
      "source": "csv-file"
    }
  },
]
Copy to Clipboard Toggle word wrap

[GET] /api/permission/policies/{kind}/{namespace}/{name}

指定されたエンティティー参照に関連する権限ポリシーを返します。

Expand
表5.4 要求パラメーター
名前説明存在

kind

エンティティーの種類

String

必須

namespace

エンティティーの namespace

String

必須

name

エンティティーに関連する名前

String

必須

応答例 (JSON)

[
  {
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow",
    "metadata": {
      "source": "csv-file"
    }
  },
  {
    "entityReference": "role:default/test",
    "permission": "catalog.entity.create",
    "policy": "use",
    "effect": "allow",
    "metadata": {
      "source": "csv-file"
    }
  }
]
Copy to Clipboard Toggle word wrap

[POST] /api/permission/policies

指定されたエンティティーの権限ポリシーを作成します。

Expand
表5.5 要求パラメーター
名前説明存在

entityReference

kindnamespacename を含むエンティティーの参照値

String

必須

permission

特定のプラグイン、リソースタイプ、または名前からの権限

String

必須

policy

権限のポリシーアクション (createreadupdatedeleteuse など)

String

必須

effect

ポリシーを許可するかどうか

String

必須

要求の body の例 (JSON)

[
  {
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow"
  }
]
Copy to Clipboard Toggle word wrap

応答の例

201 Created
Copy to Clipboard Toggle word wrap

[PUT] /api/permission/policies/{kind}/{namespace}/{name}

指定されたエンティティーの権限ポリシーを更新します。

要求パラメーター

要求の body には、oldPolicy オブジェクトと newPolicy オブジェクトが含まれています。

Expand
名前説明存在

permission

特定のプラグイン、リソースタイプ、または名前からの権限

String

必須

policy

権限のポリシーアクション (createreadupdatedeleteuse など)

String

必須

effect

ポリシーを許可するかどうか

String

必須

要求の body の例 (JSON)

{
  "oldPolicy": [
    {
      "permission": "catalog-entity",
      "policy": "read",
      "effect": "allow"
    },
    {
      "permission": "catalog.entity.create",
      "policy": "create",
      "effect": "allow"
    }
  ],
  "newPolicy": [
    {
      "permission": "catalog-entity",
      "policy": "read",
      "effect": "deny"
    },
    {
      "permission": "policy-entity",
      "policy": "read",
      "effect": "allow"
    }
  ]
}
Copy to Clipboard Toggle word wrap

応答の例

200
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/policies/{kind}/{namespace}/{name}?permission={value1}&policy={value2}&effect={value3}

指定されたエンティティーに追加された権限ポリシーを削除します。

Expand
表5.6 要求パラメーター
名前説明存在

kind

エンティティーの種類

String

必須

namespace

エンティティーの namespace

String

必須

name

エンティティーに関連する名前

String

必須

permission

特定のプラグイン、リソースタイプ、または名前からの権限

String

必須

policy

権限のポリシーアクション (createreadupdatedeleteuse など)

String

必須

effect

ポリシーを許可するかどうか

String

必須

応答の例

204 No Content
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/policies/{kind}/{namespace}/{name}

指定されたエンティティーに追加されているすべての権限ポリシーを削除します。

Expand
表5.7 要求パラメーター
名前説明存在

kind

エンティティーの種類

String

必須

namespace

エンティティーの namespace

String

必須

name

エンティティーに関連する名前

String

必須

応答の例

204 No Content
Copy to Clipboard Toggle word wrap

[GET] /api/permission/plugins/policies

すべての静的プラグインの権限ポリシーを返します。

応答例 (JSON)

[
  {
    "pluginId": "catalog",
    "policies": [
      {
        "isResourced": true,
        "permission": "catalog-entity",
        "policy": "read"
      },
      {
        "isResourced": false,
        "permission": "catalog.entity.create",
        "policy": "create"
      },
      {
        "isResourced": true,
        "permission": "catalog-entity",
        "policy": "delete"
      },
      {
        "isResourced": true,
        "permission": "catalog-entity",
        "policy": "update"
      },
      {
        "isResourced": false,
        "permission": "catalog.location.read",
        "policy": "read"
      },
      {
        "isResourced": false,
        "permission": "catalog.location.create",
        "policy": "create"
      },
      {
        "isResourced": false,
        "permission": "catalog.location.delete",
        "policy": "delete"
      }
    ]
  },
  ...
]
Copy to Clipboard Toggle word wrap

5.2.3. 条件付きポリシー

RBAC REST API は、Red Hat Developer Hub で条件付きポリシーを管理するための次のエンドポイントをサポートしています。

[GET] /api/permission/plugins/condition-rules

Developer Hub で有効になっている利用可能なプラグインの利用可能な条件ルールパラメータースキーマを返します。

応答例 (JSON)

[
   {
      "pluginId": "catalog",
      "rules": [
         {
            "name": "HAS_ANNOTATION",
            "description": "Allow entities with the specified annotation",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "annotation": {
                     "type": "string",
                     "description": "Name of the annotation to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the annotation to match on"
                  }
               },
               "required": [
                  "annotation"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_LABEL",
            "description": "Allow entities with the specified label",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "label": {
                     "type": "string",
                     "description": "Name of the label to match on"
                  }
               },
               "required": [
                  "label"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_METADATA",
            "description": "Allow entities with the specified metadata subfield",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "key": {
                     "type": "string",
                     "description": "Property within the entities metadata to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the given property to match on"
                  }
               },
               "required": [
                  "key"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "HAS_SPEC",
            "description": "Allow entities with the specified spec subfield",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "key": {
                     "type": "string",
                     "description": "Property within the entities spec to match on"
                  },
                  "value": {
                     "type": "string",
                     "description": "Value of the given property to match on"
                  }
               },
               "required": [
                  "key"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "IS_ENTITY_KIND",
            "description": "Allow entities matching a specified kind",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "kinds": {
                     "type": "array",
                     "items": {
                        "type": "string"
                     },
                     "description": "List of kinds to match at least one of"
                  }
               },
               "required": [
                  "kinds"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         },
         {
            "name": "IS_ENTITY_OWNER",
            "description": "Allow entities owned by a specified claim",
            "resourceType": "catalog-entity",
            "paramsSchema": {
               "type": "object",
               "properties": {
                  "claims": {
                     "type": "array",
                     "items": {
                        "type": "string"
                     },
                     "description": "List of claims to match at least one on within ownedBy"
                  }
               },
               "required": [
                  "claims"
               ],
               "additionalProperties": false,
               "$schema": "http://json-schema.org/draft-07/schema#"
            }
         }
      ]
   }
   ... <another plugin condition parameter schemas>
]
Copy to Clipboard Toggle word wrap

[GET] /api/permission/roles/conditions/:id

指定された ID の条件を返します。

応答例 (JSON)

{
  "id": 1,
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/test",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["read"],
  "conditions": {
    "anyOf": [
      {
        "rule": "IS_ENTITY_OWNER",
        "resourceType": "catalog-entity",
        "params": {
          "claims": ["group:default/team-a"]
        }
      },
      {
        "rule": "IS_ENTITY_KIND",
        "resourceType": "catalog-entity",
        "params": {
          "kinds": ["Group"]
        }
      }
    ]
  }
}
Copy to Clipboard Toggle word wrap

[GET] /api/permission/roles/conditions

全ロールの全条件のリストを返します。

応答例 (JSON)

[
  {
    "id": 1,
    "result": "CONDITIONAL",
    "roleEntityRef": "role:default/test",
    "pluginId": "catalog",
    "resourceType": "catalog-entity",
    "permissionMapping": ["read"],
    "conditions": {
      "anyOf": [
        {
          "rule": "IS_ENTITY_OWNER",
          "resourceType": "catalog-entity",
          "params": {
            "claims": ["group:default/team-a"]
          }
        },
        {
          "rule": "IS_ENTITY_KIND",
          "resourceType": "catalog-entity",
          "params": {
            "kinds": ["Group"]
          }
        }
      ]
    }
  }
]
Copy to Clipboard Toggle word wrap

[POST] /api/permission/roles/conditions

指定されたロールの条件付きポリシーを作成します。

Expand
表5.8 要求パラメーター
名前説明存在

result

常に CONDITIONAL の値を持つ

String

必須

roleEntityRef

RBAC ロールへの文字列エンティティー参照 (role:default/dev など)

String

必須

pluginId

対応するプラグイン ID (catalog など)

String

必須

permissionMapping

権限アクションの配列 (['read', 'update', 'delete'] など)

String array

必須

resourceType

プラグインによって提供されるリソースタイプ (catalog-entity など)

String

必須

conditions

条件によって結合されたパラメーターまたは配列パラメーターを含む条件 JSON

JSON

必須

name

ロールの名前

String

必須

metadata.description

ロールの説明

String

任意

要求の body の例 (JSON)

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/test",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["read"],
  "conditions": {
    "rule": "IS_ENTITY_OWNER",
    "resourceType": "catalog-entity",
    "params": {
      "claims": ["group:default/team-a"]
    }
  }
}
Copy to Clipboard Toggle word wrap

応答例 (JSON)

{
  "id": 1
}
Copy to Clipboard Toggle word wrap

[PUT] /permission/roles/conditions/:id

指定された ID の条件ポリシーを更新します。

Expand
表5.9 要求パラメーター
名前説明存在

result

常に CONDITIONAL の値を持つ

String

必須

roleEntityRef

RBAC ロールへの文字列エンティティー参照 (role:default/dev など)

String

必須

pluginId

対応するプラグイン ID (catalog など)

String

必須

permissionMapping

権限アクションの配列 (['read', 'update', 'delete'] など)

String array

必須

resourceType

プラグインによって提供されるリソースタイプ (catalog-entity など)

String

必須

conditions

条件によって結合されたパラメーターまたは配列パラメーターを含む条件 JSON

JSON

必須

name

ロールの名前

String

必須

metadata.description

ロールの説明

String

任意

要求の body の例 (JSON)

{
  "result": "CONDITIONAL",
  "roleEntityRef": "role:default/test",
  "pluginId": "catalog",
  "resourceType": "catalog-entity",
  "permissionMapping": ["read"],
  "conditions": {
    "anyOf": [
      {
        "rule": "IS_ENTITY_OWNER",
        "resourceType": "catalog-entity",
        "params": {
          "claims": ["group:default/team-a"]
        }
      },
      {
        "rule": "IS_ENTITY_KIND",
        "resourceType": "catalog-entity",
        "params": {
          "kinds": ["Group"]
        }
      }
    ]
  }
}
Copy to Clipboard Toggle word wrap

応答の例

200
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/roles/conditions/:id

指定された ID の条件付きポリシーを削除します。

応答の例

204
Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る