Rancher には RBAC の仕組みが備わっており,以下の3種類のスコープが存在する.
Global Permission: 特定クラスタに依存しない権限, Catalogやアカウント管理など
Cluster Role: Kubernetesクラスタ別の権限, ノードやストレージ, プロジェクトの管理など
Project Role: プロジェクト別の権限, 名前空間の管理やサービス, シークレット, ボリュームなど
(Permission と Role という単語が並列に用いられているのがもやっとする)
各スコープには複数のロールと権限が存在するが,
公式ドキュメントには Rancher の RBAC は Kubernetes の RBAC をベースとして実装している
と説明があるだけで具体的な権限についての説明がない.
ここでは Rancher の RBAC における 権限について確認する.
スコープ別のロールと権限
Global Permission
デフォルトでは Administrator と Standard User という2つのロールが定義されている.
ロールごとの権限は以下の通り
| Custom Global Permission | Administrator | Standard User |
|:--|:--|:--|:--|
| Manage Authentication | ✓ | |
| Manage Catalogs | ✓ | |
| Manage Node Drivers | ✓ | |
| Manage PodSecurityPolicy Templates | ✓ | |
| Manage Roles | ✓ | |
| Manage Users | ✓ | |
| Create Clusters | ✓ | ✓ |
| User Catalog Templates | ✓ | ✓ |
| Login Access | ✓ | ✓ |
Cluster Role
デフォルトでは Owner と Member の2つのロールが定義されている.
ロールごとの権限は以下の通り
| Custom Cluster Role | Owner | Member |
|---|---|---|
| Manage Cluster Members | ✓ | |
| Manage Nodes | ✓ | |
| Manage Storage | ✓ | |
| View All Projects | ✓ | |
| Create Project | ✓ | ✓ |
| View Cluster Members | ✓ | ✓ |
| View Nodes | ✓ | ✓ |
Project Role
デフォルトでは Owner, Member, Read Only の3つのロールが定義されている.
ロールごとの権限は以下の通り
| Custom Cluster Role | Owner | Member | Read Only |
|---|---|---|---|
| Manage Project Members | ✓ | ||
| Create Namespaces | ✓ | ✓ | |
| Manage Config Maps | ✓ | ✓ | |
| Manage Ingress | ✓ | ✓ | |
| Manage Secrets | ✓ | ✓ | |
| Manage Service Accounts | ✓ | ✓ | |
| Manage Services | ✓ | ✓ | |
| Manage Volumes | ✓ | ✓ | |
| Manage Workloads | ✓ | ✓ | |
| View Config Maps | ✓ | ✓ | ✓ |
| View Ingress | ✓ | ✓ | ✓ |
| View Project Members | ✓ | ✓ | ✓ |
| View Secrets | ✓ | ✓ | ✓ |
| View Service Accounts | ✓ | ✓ | ✓ |
| View Services | ✓ | ✓ | ✓ |
| View Volumes | ✓ | ✓ | ✓ |
| View Workloads | ✓ | ✓ | ✓ |
権限の設計
では,各権限はどのように定義されているかというと
Global > Security > Roles で確認できる(一部省略).
各権限を選択すると,権限ごとに設定されている対象リソースとオペレーションを確認できる.
ここで表示されている Create 〜 Watch までの操作は Kubernetes の RBAC で
指定可能な操作 (verb)と同じである.
参考: Kubernetes: RBACの設定におけるAPIリソース
また,対象のリソースは Rancher で定義された CRD(Custom Resource Definition)
であり,CRD の詳細を確認することで対象リソースの内容を確認できる.

