5.2.4. 集約されたクラスターロールを使用した拡張機能リソースへのユーザーアクセスの許可
クラスター管理者は、集約されたクラスターロールを使用して拡張機能リソースへのユーザーアクセスを許可するように、ロールベースのアクセス制御 (RBAC) ポリシーを設定できます。
既存のデフォルトのクラスターロールを自動的に拡張するには、次のラベルを 1 つ以上 ClusterRole オブジェクトに追加して、集約ラベル を追加できます。
ClusterRole オブジェクトの集約ラベル
# ..
metadata:
labels:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-view: "true"
# ..
これにより、すでに view、edit、または admin ロールを持っているユーザーが、ClusterRole オブジェクトによって指定されたカスタムリソースとやり取りできるようになります。特定のユーザーまたはグループに、ロールまたはクラスターロールのバインディングを追加する必要はありません。
前提条件
- クラスター拡張機能がクラスターにインストールされている。
- API グループとリソース名のリストがある。「クラスター拡張機能によって公開される API グループとリソースの確認」の説明を参照してください。
手順
クラスター拡張機能によって提供される API グループとリソースを指定するクラスターロールのオブジェクト定義を作成し、集約ラベルを追加して 1 つ以上の既存のデフォルトクラスターロールを拡張します。
集約ラベルを使用した
ClusterRoleオブジェクトの例apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: view-custom-resource-aggregated labels: rbac.authorization.k8s.io/aggregate-to-view: "true" rules: - apiGroups: - <cluster_extension_api_group> resources: - <cluster_extension_custom_resource> verbs: - get - list - watchcreate、update、deleteなどの適切な動詞を使用して、editおよびadmin用の同様のClusterRoleオブジェクトを作成できます。集約ラベルを使用すると、カスタムリソースの権限がデフォルトのロールに追加されます。- オブジェクト定義を YAML ファイルに保存します。
以下のコマンドを実行してオブジェクトを作成します。
$ oc create -f <filename>.yaml