kubernetes 権限設定の概要
Kubernetesの権限設定は管理対象で以下の2つで分けられます。
- ServiceAccount:kubernetesクラスタに対する操作権限
- ServiceAccount自体はNamespaceと紐付くリソースです。
- SecurityContext:コンテナ(OS)に対する操作権限
また、ServiceAccountの権限設定では、Roleという権限を定義するリソースを使って設定します。
Roleは権限の影響範囲で、以下の2種類
- Role:Namespace範囲(Namespace指定して作成する)
- ClusterRole:クラスタ全体(Namespace指定不可)
最後に、ServiceAccountとRoleを紐付けするための定義に、以下のBinding用のリソースも必要です。
- RoleBinding:ServiceAccountとRoleの紐付け
- ClusterRoleBingding:ServiveAccountとClusterRoleの紐付け
権限設定のまとめ
上記の内容を踏まえて、権限設定の概要は以下でまとめられます。
- ServiceAccount:kubernetesクラスタに対する操作権限
- Role:Namespace範囲(Namespace指定して作成する)、管理対象もNamespace範囲内
- RoleBing:ServiceAccountとRoleの紐付け
- ClusterRole:クラスタ全体(Namespace指定不可)、管理対象はNodeなどのクラスタリソースも含む
- ClusterRoleBing:ServiveAccountとClusterRoleの紐付け
- Role:Namespace範囲(Namespace指定して作成する)、管理対象もNamespace範囲内
- SecurityContext:コンテナ(OS)に対する操作権限
ServiceAccount仕組みの関係図
仕組みの理解をイメージしやすいよう、以下の図を作成しました。
簡単にイメージ作りに役に立ってればと思います。
Roleのイメージ図
ClusterRoleのイメージ図
最後に
今回はkubernetesの権限管理の概要について、ご紹介しました。
次回から、今回の内容を深堀して、それぞれのリソースの詳細について説明していきたいと思います。
ここまで読んでいただいて、お疲れ様でした。
コメント