広告

kubernetes – セキュリティの概要

infrastructure as code

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の紐付け
  • SecurityContext:コンテナ(OS)に対する操作権限

ServiceAccount仕組みの関係図

仕組みの理解をイメージしやすいよう、以下の図を作成しました。
簡単にイメージ作りに役に立ってればと思います。

Roleのイメージ図

Role

ClusterRoleのイメージ図

ClusterRole

最後に

今回はkubernetesの権限管理の概要について、ご紹介しました。
次回から、今回の内容を深堀して、それぞれのリソースの詳細について説明していきたいと思います。

ここまで読んでいただいて、お疲れ様でした。

コメント

タイトルとURLをコピーしました