DevOps エンジニアは、vSphere IaaS control plane に接続して TKG サービス クラスタのライフサイクルをプロビジョニングし、管理します。開発者は TKG サービス クラスタに接続して、パッケージ、ワークロード、およびサービスをデプロイします。管理者がトラブルシューティングを行うには、TKG サービス クラスタ ノードへの直接アクセスが必要になる場合があります。このプラットフォームには、ID とアクセス管理について、それぞれのユースケースとロールをサポートするツールと方法が用意されています。

TKG サービス クラスタ アクセスの対象範囲は vSphere 名前空間

vSphere 名前空間TKG サービス クラスタをプロビジョニングします。vSphere 名前空間 を構成する場合は、ID ソース、ユーザーとグループ、ロールも含めて、その名前空間の DevOps 権限を設定します。このプラットフォームでは、これらの権限を該当する vSphere 名前空間 でプロビジョニングされた各 TKG サービス クラスタに伝達します。このプラットフォームでサポートされている 2 つの認証方法は、vCenter Single Sign-OnOIDC 準拠の外部 ID プロバイダです。

vCenter Single Sign-On と Kubectl を使用した認証

デフォルトでは、vCenter Single Sign-On は、スーパーバイザーTKG サービス クラスタを含む環境で認証を行うために使用されます。vCenter Single Sign-On は、vSphere インフラストラクチャに認証を提供し、AD/LDAP システムと統合できます。詳細については、「vCenter Single Sign-On による vSphere 認証」を参照してください。

vCenter Single Sign-On を使用して認証するには、kubectl 向けの vSphere プラグイン を使用します。認証されたら、kubectl を使用して、TKG サービス クラスタの宣言によるプロビジョニングと管理、および スーパーバイザー の操作を実行します。

kubectl 向けの vSphere プラグインkubectl に依存しています。kubectl vsphere login コマンドで認証すると、プラグインは スーパーバイザー の /wcp/login エンドポイントに対する基本認証を使用して、POST を実行します。vCenter Server は、スーパーバイザー が信頼する JSON Web トークン (JWT) を発行します。

vCenter Single Sign-On を使用して接続するには、vCenter SSO 認証を使用した TKG サービス クラスタへの接続を参照してください。

外部 ID プロバイダと Tanzu CLI を使用した認証

OpenID Connect プロトコルをサポートする外部 ID プロバイダを使用して スーパーバイザー を構成できます。構成された スーパーバイザー は OAuth 2.0 クライアントとして機能し、Pinniped 認証サービスを使用して、Tanzu CLI によるクライアント接続を提供します。Tanzu CLI は、TKG サービス クラスタのライフサイクルのプロビジョニングと管理をサポートします。各 スーパーバイザー インスタンスは、外部 ID プロバイダを 1 つのみサポートします。

pinniped-auth CLI が機能するように認証プラグインと OIDC 発行者が適切に構成された後、tanzu login --endpoint を使用して スーパーバイザー にログインすると、システムはいくつかの既知の構成マップを検索して pinniped config 構成ファイルを構築します。

外部 OIDC プロバイダを使用して接続するには、外部 ID プロバイダを使用した スーパーバイザー 上の TKG クラスタへの接続を参照してください。

ハイブリッド アプローチを使用した認証:vCenter SSO と Tanzu CLI

vCenter Single Sign-On を ID プロバイダとして使用しており、Tanzu CLI を使用する場合は、ハイブリッド アプローチを利用し、両方のツールを使用して スーパーバイザー にログインできます。このアプローチは、標準パッケージのインストールに役立つことがあります。Tanzu CLI と vCenter SSO 認証を使用した スーパーバイザー への接続を参照してください。

DevOps のユーザーとグループ

vSphere 名前空間 の構成時に確立する権限は、DevOps ユーザーが TKG サービス クラスタのライフサイクルを管理するための権限です。権限を割り当てる対象の DevOps ユーザーまたはグループは、ID ソース内にある必要があります。DevOps ユーザーは、ID プロバイダの認証情報を使用して認証します。

DevOps ユーザーは、ダウンストリーム ユーザー(プロビジョニングされたクラスタにワークロードをデプロイする開発者など)にクラスタへのアクセス権を付与します。これらのユーザーは、ID プロバイダまたは Kubernetes のクラスタ ロールとバインドを使用して認証します。詳細については、次のセクションを参照してください。
注: vSphere 名前空間 の権限は、 TKG サービス クラスタを作成および管理する必要がある DevOps ユーザー専用です。これらのクラスタのユーザー(開発者など)は Kubernetes 認証メカニズムを使用します。

ロールの権限とバインド

TKGS クラスタには、2 種類のロール ベースのアクセス コントロール (RBAC) システム(vSphere 名前空間 の権限と Kubernetes RBAC 認可)があります。vSphere 管理者は、vSphere 名前空間 の権限を割り当てて、ユーザーが TKG サービス クラスタを作成および操作できるようにします。クラスタ オペレータは、Kubernetes RBAC を使用してクラスタへのアクセス権を付与し、開発者にロールの権限を割り当てます。開発者への TKG サービス クラスタへの vCenter SSO アクセス権付与を参照してください。

vSphere 名前空間 では、編集可能表示可能所有者の 3 つのロールがサポートされます。ロールの権限は、TKG サービス クラスタをホストする vSphere 名前空間 で割り当てられ、範囲がその名前空間に設定されます。TKG サービス クラスタをホストするための vSphere 名前空間 の構成を参照してください。

vSphere 名前空間編集可能ロール権限が付与されたユーザー/グループは、その vSphere 名前空間TKG サービス クラスタの作成、読み取り、更新、および削除を行うことができます。また、ユーザー/グループを 編集可能ロールに割り当てると、システムではその vSphere 名前空間 の各クラスタに RoleBinding を作成し、 cluster-admin という名前の Kubernetes ClusterRole に権限をバインドします。 cluster-admin ロールを使用すると、ユーザーはターゲット vSphere 名前空間 で TKG サービス クラスタをプロビジョニングおよび操作できます。このマッピングを表示するには、ターゲットの vSphere 名前空間 から kubectl get rolebinding コマンドを使用します。
kubectl get rolebinding -n tkgs-cluster-namespace
NAME                                                           ROLE                         AGE
wcp:tkg-cluster-namespace:group:vsphere.local:administrators   ClusterRole/edit             33d
wcp:tkg-cluster-namespace:user:vsphere.local:administrator     ClusterRole/edit             33d

vSphere 名前空間表示可能ロール権限が付与されたユーザー/グループには、その vSphere 名前空間 でプロビジョニングされた TKG サービス クラスタ オブジェクトへの読み取り専用アクセス権が割り当てられます。ただし、編集可能権限とは異なり、表示可能ロールには、その vSphere 名前空間 の TKGS クラスタで作成された Kubernetes RoleBinding がありません。これは、表示可能権限が付与されたユーザー/グループをバインドできる同等の読み取り専用ロールが Kubernetes に存在しないためです。cluster-admin 以外のユーザーの場合は、Kubernetes RBAC を使用してアクセス権を付与します。開発者への TKG サービス クラスタへの vCenter SSO アクセス権付与を参照してください。

vSphere 名前空間所有者権限が付与されたユーザー/グループは、その vSphere 名前空間TKG サービス クラスタを管理できます。また、kubectl を使用して追加の vSphere 名前空間 を作成および削除できます。ユーザー/グループを所有者ロールに割り当てると、システムでは ClusterRoleBinding を作成して ClusterRole にマッピングします。これにより、そのユーザー/グループが kubectl を使用して vSphere 名前空間 を作成および削除できます。同じ方法でこのマッピングを表示することはできません。このマッピングを表示するには、SSH で スーパーバイザー ノードに接続する必要があります。
注: 所有者ロールは、 vCenter Single Sign-On ID ソースからのユーザーに対してサポートされます。外部 ID プロバイダからのユーザー/グループで所有者ロールを使用することはできません。

vSphere の権限

次の表に、さまざまな vSphere IaaS control plane 個人設定で必要とされる vSphere 権限のタイプを示します。必要に応じて、ワークロード管理用のカスタム vSphere SSO グループとロールを作成できます。プラットフォーム オペレータ専用のグループおよびロールの作成を参照してください。

表 1. vSphere with Tanzu 個人設定の vSphere 権限
個人設定 vSphere のロール vSphere SSO グループ vSphere 名前空間
VI/Cloud 管理者 システム管理者 管理者 SSO ユーザー、Active Directory ユーザー
DevOps/プラットフォーム オペレータ 非管理者ロールまたはカスタム ロール ServiceProviderUsers SSO ユーザー、Active Directory ユーザー
開発者 読み取り専用、またはなし なし SSO ユーザー、Active Directory ユーザー

システム管理者の接続

管理者は、TKG サービス クラスタ ノードに kubernetes-admin ユーザーとして接続できます。この方法は、vCenter Single Sign-On 認証が使用できない場合に適していることがあります。トラブルシューティングを行う場合、システム管理者は SSH とプライベート キーを使用することにより、vmware-system-user として TKG サービス に接続できます。Kubernetes 管理者およびシステム ユーザーとしての TKG サービス クラスタへの接続を参照してください。