ロールベースアクセス制御 (RBAC) で使用される Kubernetes ネイティブの Role または ClusterRole は、一連の権限を定義します。Role は名前空間にスコープされた権限を定義し、ClusterRole はクラスター全体のリソースに対する権限を定義します。このトピックでは、Role と ClusterRole をカスタマイズする方法について説明します。
Role と ClusterRole の概要
YAML ファイルまたは Alibaba Cloud Container Service for Kubernetes (ACK) コンソール を使用して、Role または ClusterRole を作成できます。
Role の作成
名前空間にスコープされた権限を定義するには、Role を作成します。
次の YAML ファイルを使用して、デフォルトの名前空間のポッドに対する権限を定義する Role を作成できます。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
namespace: default
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
ClusterRole の作成
クラスター全体の権限を定義するには、ClusterRole を作成します。
次の YAML ファイルを使用して、名前空間のポッドに対する権限を定義する ClusterRole を作成できます。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: test-clusterrole
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
Role と ClusterRole の詳細については、Role と ClusterRole を参照してください。
カスタムロールの作成
この例では、Resource Access Management (RAM) ユーザーまたは RAM ロール用のカスタム ClusterRole を作成する方法を示します。手順は、カスタム Role を作成する場合と同様です。必要に応じて構成を変更できます。
ACK コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、クラスターの名前をクリックします。左側のナビゲーションペインで、
を選択します。ロール ページで、クラスターロール タブをクリックし、作成 をクリックします。
YAML の作成 パネルで、ClusterRole の YAML コンテンツを入力し、OK をクリックします。
この例の YAML テンプレートは、クラスター全体の権限を定義します。ClusterRole が作成された後、クラスターロール タブで test-clusterrole という名前の ClusterRole を表示できます。
次のステップ
Kubernetes カスタム権限ポリシーを RAM ユーザーまたは RAM ロールにアタッチする方法の詳細については、RAM ユーザーまたは RAM ロールへの RBAC 権限の付与 を参照してください。
ACK では、カスタム ClusterRole のみを RBAC 権限にバインドできます。カスタム Role を RBAC 権限にバインドすることはできません。