DevOps エンジニアは、vSphere IaaS control plane に接続して TKG サービス クラスタのライフサイクルをプロビジョニングし、管理します。開発者は TKG サービス クラスタに接続して、パッケージ、ワークロード、およびサービスをデプロイします。管理者がトラブルシューティングを行うには、TKG サービス クラスタ ノードへの直接アクセスが必要になる場合があります。このプラットフォームには、ID とアクセス管理について、それぞれのユースケースとロールをサポートするツールと方法が用意されています。
TKG サービス クラスタ アクセスの対象範囲は vSphere 名前空間
vSphere 名前空間 で TKG サービス クラスタをプロビジョニングします。vSphere 名前空間 を構成する場合は、ID ソース、ユーザーとグループ、ロールも含めて、その名前空間の DevOps 権限を設定します。このプラットフォームでは、これらの権限を該当する vSphere 名前空間 でプロビジョニングされた各 TKG サービス クラスタに伝達します。このプラットフォームでサポートされている 2 つの認証方法は、vCenter Single Sign-On と OIDC 準拠の外部 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 プロバイダの認証情報を使用して認証します。
ロールの権限とバインド
TKGS クラスタには、2 種類のロール ベースのアクセス コントロール (RBAC) システム(vSphere 名前空間 の権限と Kubernetes RBAC 認可)があります。vSphere 管理者は、vSphere 名前空間 の権限を割り当てて、ユーザーが TKG サービス クラスタを作成および操作できるようにします。クラスタ オペレータは、Kubernetes RBAC を使用してクラスタへのアクセス権を付与し、開発者にロールの権限を割り当てます。開発者への TKG サービス クラスタへの vCenter SSO アクセス権付与を参照してください。
vSphere 名前空間 では、編集可能、表示可能、所有者の 3 つのロールがサポートされます。ロールの権限は、TKG サービス クラスタをホストする vSphere 名前空間 で割り当てられ、範囲がその名前空間に設定されます。TKG サービス クラスタをホストするための vSphere 名前空間 の構成を参照してください。
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 IaaS control plane 個人設定で必要とされる vSphere 権限のタイプを示します。必要に応じて、ワークロード管理用のカスタム vSphere SSO グループとロールを作成できます。プラットフォーム オペレータ専用のグループおよびロールの作成を参照してください。
個人設定 | 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 サービス クラスタへの接続を参照してください。