1.2. ロールベースのアクセス制御の実装


Red Hat Advanced Cluster Management for Kubernetes RBAC は、コンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールの権限に基づいて有効化/無効化できます。

マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management の前提条件であり、クラスターライフサイクル機能です。マルチクラスターエンジン Operator を使用してクラスターの RBAC を管理する場合は、Kubernetes オペレーターのクラスターライフサイクルマルチクラスターエンジンのロールベースのアクセス制御 ドキュメントで RBAC ガイダンスを確認してください。

Red Hat Advanced Cluster Management の特定のライフサイクルにおける RBAC の詳細については、以下のセクションを参照してください。

1.2.1. アプリケーションライフサイクル RBAC

アプリケーションの作成時に、subscription namespace が作成され、configuration map が subscription namespace に作成されます。channel namespace へのアクセス権も必要です。サブスクリプションを適用する場合は、サブスクリプションの管理者である必要があります。アプリケーションの管理の詳細は、サブスクリプション管理者としての許可および拒否リストの作成 を参照してください。

以下のアプリケーションライフサイクル RBAC 操作を確認してください。

  • username という名前のユーザーを使用して、すべてのマネージドクラスターでアプリケーションを作成および管理します。クラスターロールバインディングを作成し、username にバインドする必要があります。以下のコマンドを実行します。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin --user=<username>
    Copy to Clipboard Toggle word wrap

    このロールはスーパーユーザーであるため、すべてのリソースとアクションにアクセスできます。このロールを使用して、アプリケーションの namespace および namespace 内のすべてのアプリケーションリソースを作成できます。

  • 複数の namespace にリソースをデプロイするアプリケーションを作成します。open-cluster-management:subscription-admin クラスターロールにバインドするクラスターロールを作成し、username という名前のユーザーにバインドする必要があります。以下のコマンドを実行します。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:subscription-admin --user=<username>
    Copy to Clipboard Toggle word wrap
  • username ユーザーを使用して、cluster-name マネージドクラスター内に application-name という名前のアプリケーションを作成し、管理します。以下のコマンドを入力して、open-cluster-management:admin:<cluster-name> クラスターロールへのバインドを作成し、username にバインドする必要があります。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>
    Copy to Clipboard Toggle word wrap

    このロールには、マネージドクラスター cluster-name のすべての application リソースに対する読み取りおよび書き込み権限があります。他のマネージドクラスターへのアクセスが必要な場合は、この操作を繰り返します。

  • 以下のコマンドを入力し、admin ロールを使用して application namespace にバインドする namespace ロールを作成し、それを username にバインドします。

    oc create rolebinding <role-binding-name> -n <application-namespace> --clusterrole=admin --user=<username>
    Copy to Clipboard Toggle word wrap

    このロールには、application namspace のすべての application リソースに対する読み取りおよび書き込み権限があります。他のアプリケーションへのアクセスが必要な場合や、アプリケーションが複数の namespace にデプロイされる場合は、これを繰り返します。

  • リソースを複数の namespace にデプロイするアプリケーションを作成できます。以下のコマンドを入力して、open-cluster-management:subscription-admin クラスターロールへのバインドを作成し、username にバインドします。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:subscription-admin --user=<username>
    Copy to Clipboard Toggle word wrap
  • username という名前のユーザーで cluster-name という名前のマネージドクラスター上のアプリケーションを表示するには、open-cluster-management:view: クラスターロールにバインドするクラスターロールを作成し、username にバインドします。以下のコマンドを入力します。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>
    Copy to Clipboard Toggle word wrap

    このロールは、マネージドクラスター cluster-name のすべての application リソースに対する読み取り権限があります。他のマネージドクラスターへのアクセスが必要な場合は、この操作を繰り返します。

  • view ロールを使用して application namespace にバインドする namespace ロールを作成し、それを username にバインドします。以下のコマンドを入力します。

    oc create rolebinding <role-binding-name> -n <application-namespace> --clusterrole=view --user=<username>
    Copy to Clipboard Toggle word wrap

    このロールには、application の namspace にある全 application リソースに対する読み取り権限があります。他のアプリケーションへのアクセスが必要な場合は、この操作を繰り返します。

1.2.1.1. アプリケーションライフサイクルのコンソールと API RBAC テーブル

アプリケーションライフサイクルの以下のコンソールおよび API RBAC の表を表示します。

Expand
表1.2 アプリケーションライフサイクルのコンソール RBAC の表
リソース管理編集表示

アプリケーション

create, read, update, delete

create, read, update, delete

read

チャネル

create, read, update, delete

create, read, update, delete

read

サブスクリプション

create, read, update, delete

create, read, update, delete

read

配置ルール

create, read, update, delete

create, read, update, delete

read

Expand
表1.3 アプリケーションライフサイクルの API RBAC の表
API管理編集View

applications.app.k8s.io

create, read, update, delete

create, read, update, delete

read

channels.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

deployables.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

helmreleases.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

placements.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

placementrules.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

subscriptions.apps.open-cluster-management.io

create, read, update, delete

create, read, update, delete

read

configmaps

create, read, update, delete

create, read, update, delete

read

secrets

create, read, update, delete

create, read, update, delete

read

namespace

create, read, update, delete

create, read, update, delete

read

1.2.2. ガバナンスライフサイクル RBAC

ポリシーが作成されると、ポリシーはクラスターに作成されます。ガバナンスライフサイクルのロールは namespace-scoped です。ユーザーは、マネージドクラスターへのアクセス権も必要です。

ユーザーがガバナンスライフサイクル操作を実行するには、ポリシーが作成される namespace、およびポリシーが適用されるマネージドクラスターへのアクセス権が必要です。

次の操作を実行します。

  • policy namespace にポリシーを作成し、それを cluster-name という名前のマネージドクラスターに適用するには、open-cluster-management:admin:<cluster-name> クラスターロールを使用して、policy namespace にバインドする namespace ロールを作成します。以下のコマンドを実行します。

    oc create rolebinding <role-binding-name> -n <policy-namespace> --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>
    Copy to Clipboard Toggle word wrap
  • マネージドクラスターでポリシーを表示するには、open-cluster-management:view:<cluster-name> クラスターロールへのバインドを作成し、次のコマンドを使用して view ロールにバインドします。

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>
    Copy to Clipboard Toggle word wrap

1.2.2.1. ガバナンスライフサイクルのコンソールと API RBAC テーブル

以下は、ガバナンスライフサイクルのコンソールおよび API RBAC の表です。

Expand
表1.4 ガバナンスライフサイクルのコンソール RBAC の表
リソース管理編集表示

ポリシー

create, read, update, delete

read, update

read

PlacementBindings

create, read, update, delete

read, update

read

Placements

create, read, update, delete

read, update

read

PlacementRules

create, read, update, delete

read, update

read

PolicyAutomations

create, read, update, delete

read, update

read

Expand
表1.5 ガバナンスライフサイクルの API RBAC の表
API管理編集View

policies.policy.open-cluster-management.io

create, read, update, delete

read, update

read

placementbindings.policy.open-cluster-management.io

create, read, update, delete

read, update

read

policyautomations.policy.open-cluster-management.io

create, read, update, delete

read, update

read

1.2.3. 可観測性の RBAC

マネージドクラスターの可観測性メトリックを表示するには、ハブクラスター上のそのマネージドクラスターに対する view 権限が必要です。以下の可観測性機能の一覧を参照してください。

  • マネージドクラスターのメトリクスへのアクセス

    ユーザーがハブクラスター上のマネージドクラスターの view ロールに割り当てられていない場合、ユーザーによるマネージドクラスターメトリックへのアクセスは拒否されます。次のコマンドを実行して、マネージドクラスターの namespace で managedClusterView ロールの作成権限がユーザーにあるか確認します。

    oc auth can-i create ManagedClusterView -n <managedClusterName> --as=<user>
    Copy to Clipboard Toggle word wrap

    クラスター管理者として、マネージドクラスターの namespace に managedClusterView ロールを作成します。以下のコマンドを実行します。

    oc create role create-managedclusterview --verb=create --resource=managedclusterviews -n <managedClusterName>
    Copy to Clipboard Toggle word wrap

    次に、ロールバインドを作成してロールをユーザーに適用し、バインドします。以下のコマンドを実行します。

    oc create rolebinding user-create-managedclusterview-binding --role=create-managedclusterview --user=<user>  -n <managedClusterName>
    Copy to Clipboard Toggle word wrap
  • リソースの検索

    ユーザーがリソースタイプにアクセスできるか確認するには、次のコマンドを使用します。

    oc auth can-i list <resource-type> -n <namespace> --as=<rbac-user>
    Copy to Clipboard Toggle word wrap

    注記: <resource-type> は複数形にする必要があります。

  • Grafana で可観測性データを表示するには、マネージドクラスターの同じ namespace に RoleBinding リソースが必要です。

    以下は RoleBinding の例です。

    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
     name: <replace-with-name-of-rolebinding>
     namespace: <replace-with-name-of-managedcluster-namespace>
    subjects:
     - kind: <replace with User|Group|ServiceAccount>
       apiGroup: rbac.authorization.k8s.io
       name: <replace with name of User|Group|ServiceAccount>
    roleRef:
     apiGroup: rbac.authorization.k8s.io
     kind: ClusterRole
     name: view
    Copy to Clipboard Toggle word wrap

詳細は、ロールバインディングポリシー を参照してください。可観測性を設定するには、可観測性のカスタマイズ を参照してください。

1.2.3.1. 可観測性ライフサイクルのコンソールと API RBAC テーブル

可観測性のコンポーネントを管理する場合は、以下の API RBAC の表を確認してください。

Expand
表1.6 可観測性の API RBAC の表

API

管理

編集

View

multiclusterobservabilities.observability.open-cluster-management.io

create, read, update, delete

read, update

read

searchcustomizations.search.open-cluster-management.io

create、get、list、watch、update、delete、patch

-

-

policyreports.wgpolicyk8s.io

get, list, watch

get, list, watch

get, list, watch

次は リスクとコンプライアンス でクラスターのセキュリティー保護について確認してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat