VKS における vSphere 名前空間の権限について
search cancel

VKS における vSphere 名前空間の権限について

book

Article ID: 433406

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項: これは英文の記事「vSphere Namespace Permissions for VKS」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

この記事は、下記の公式ドキュメントを補足するものです。
vSphere 名前空間の各権限が VKS クラスタにどのような影響を与えるかを説明します。

vCenter Single Sign-On ユーザーおよびグループに対する vSphere 名前空間の権限の構成

シナリオ例

Environment

vSphere Kubernetes Service

Resolution

"表示可能 (Can View)" 権限

この権限により、スーパーバイザーコンテキストへの読み取り専用アクセスが許可されます。

スーパーバイザーレベル: ユーザーは、vSphere名前空間でクラスタAPIリソースなどを表示できます。

kubectl vsphere login -u [email protected] --server=https://${SUPERVISOR_VIP}
kubectl config use-context vsphere-ns-1

kubectl get cluster,ma,vm # OK
kubectl delete ma <ma_object> # NG
kubeatl edit cluster <cluster> # NG

VKSクラスタレベル: ユーザーはVKSクラスタの内部にアクセスできません。

kubectl config use-context <TARGET_VKS_CLUSTER>
kubectl get pods  # NG

 

"編集可能 (Can Edit)" 権限

この権限により、ユーザーは対象のvSphere名前空間内でVKSクラスターを管理できます。
「編集可能」を有効にすると、対象ユーザーに以下の権限が付与されます。

  • ライフサイクル管理: Supervisorコンテキストを介して、対象のvSphere名前空間内でのVKSクラスターの作成、編集、削除を行うフルコントロール権限。
  • クラスター全体の管理者アクセス: そのvSphere名前空間内のすべてのVKSクラスタに対して、自動的に cluster-admin ロールが付与されます。
  • フルリソースコントロール: VKSクラスタ内部のリソース(Pod、Nodeなど)に対する、kubectl get/delete/edit を含む完全な管理権限。

VKSクラスタ内部で以下のコマンドを実行することで、この自動的なクラスターロールバインディングを確認できます。

kubectl config use-context <TARGET_VKS_CLUSTER>
kubectl get clusterrolebindings | grep cluster-admin
  #> vmware-system-auth-sync-wcp:vsphere-ns-1:group:vsphere.local:administrators   ClusterRole/cluster-admin
  #> vmware-system-auth-sync-wcp:vsphere-ns-1:group:vsphere.local:test             ClusterRole/cluster-admin

注意: 「開発者」アクセスの推奨事項

ユーザーにワークロードのデプロイは許可したいが、k8s クラスタ自体の削除はさせたくない場合、「編集可能」権限は過剰である場合があります。 名前空間の「編集可能」(クラスターライフサイクル管理)権限を与えずに、VKSクラスタへのアクセスのみを許可する必要がある場合は、以下のドキュメントを参照してください。

VKS クラスターへの開発者アクセスの付与

「編集可能」権限は、あくまで Supervisor に対する kubectl 操作のためのものです。vSphere Client で vSphere 名前空間の設定を変更する権限を付与するものではありません。

 

"所有者 (Owner)" 権限

VKSクラスタの観点からは、「所有者」は「編集可能」と機能的に同一です。
「所有者」の追加機能は、Supervisorコンテキスト(kubectl)を介して新しいvSphere名前空間を作成できることです。

前提条件: 管理者が事前にvSphere Clientで「vSphere 名前空間セルフサービス(テンプレート)」を構成している必要があります。
kubectl を使用した vSphere 名前空間の作成の有効化

注意: 「所有者」権限であっても、vSphere Client経由でvSphere名前空間の構成を変更する権限は付与されません。名前空間自体の管理は、引き続きvSphere管理者に限定されます。