このセクションのトピックでは、スタンドアローン管理クラスタを使用して、Tanzu Kubernetes Grid (TKG) で ID およびアクセス管理を構成する方法について説明します。
ID およびアクセス管理を有効にして構成するには、次のリンク先のトピックに従います。
Tanzu Kubernetes Grid (TKG) は Pinniped を使用して、ID およびアクセス管理の認証と認可を実装します。
Tanzu Kubernetes Grid は、Kubernetes クラスタのオープンソース認証サービスである Pinniped を使用してユーザー認証を実装します。Pinniped を使用すると、外部 OpenID Connect (OIDC) または LDAP ID プロバイダ (IdP) をワークロード クラスタに接続して、それらのクラスタへのユーザー アクセスを制御できます。LDAP 認証の場合、Pinniped はエンドポイントとして Dex を使用してアップストリーム LDAP IdP に接続します。OIDC を使用する場合、Pinniped は独自のエンドポイントを提供するため、Dex は必要ありません。ID 管理を有効にすると、Pinniped と Dex は管理クラスタ内のクラスタ内サービスとして自動的に実行されます。Tanzu Kubernetes Grid で ID 管理を有効にする方法については、「ID 管理の構成」を参照してください。
管理クラスタとワークロード クラスタ間の認証フローには、次のことが含まれます。
kubeconfig
をユーザーに提供します。kubeconfig
を使用してワークロード クラスタに接続します。たとえば、kubectl get pods --kubeconfig
を実行します。kubectl get pods
要求を許可または拒否します。次の図では、青い矢印が、ワークロード クラスタ、管理クラスタ、および外部 IdP 間の認証フローを表しています。緑色の矢印は、ワークロード クラスタ、管理クラスタ、外部 IdP 間での Tanzu CLI と kubectl
のトラフィックを表しています。
次の図は、ID 管理を有効にしたときに、Tanzu Kubernetes Grid によって管理クラスタとワークロード クラスタに展開される ID 管理のコンポーネントを示しています。
図について:
紫色の四角形は、ID 管理のコンポーネント(管理クラスタ内の Pinniped、Dex、展開後ジョブ、およびワークロード クラスタ内の Pinniped と展開後ジョブ)を示しています。Dex は LDAP プロバイダにのみ展開されます。OIDC プロバイダを構成すると、Pinniped は Dex を経由せずにプロバイダと直接通信します。
灰色の四角形は、Tanzu Kubernetes Grid が ID 管理のコンポーネントのライフサイクルを制御するために使用するコンポーネント(Tanzu CLI、tanzu-addons-manager
、および kapp-controller
)を示しています。
緑色の四角形は、管理クラスタ用に作成された Pinniped アドオン シークレットを示しています。
管理クラスタ内のオレンジ色の四角形は、ワークロード クラスタ用に作成された Pinniped アドオン シークレットを示しています。シークレットはワークロード クラスタにミラーリングされます。
内部的には、Tanzu Kubernetes Grid は ID 管理のコンポーネントを自動管理パッケージ pinniped
として展開します。このパッケージには、pinniped
アドオンが含まれています。ID 管理が有効になっている管理クラスタを展開するか、展開後の手順として ID 管理を有効にすると、Tanzu CLI が管理クラスタ内に pinniped
アドオンの Kubernetes シークレットを作成します。tanzu-addons-manager
は IdP 構成情報を含むシークレットを読み取り、シークレットからの構成情報を使用して pinniped
アドオンを構成するように kapp-controller
に指示します。
Tanzu CLI は、管理クラスタから展開するワークロード クラスタごとに、個別の pinniped
アドオン シークレットを作成します。すべてのシークレットは管理クラスタに保存されます。詳細については、「自動管理パッケージ」を参照してください。
Tanzu Kubernetes Grid は、ロールベースのアクセス制御 (RBAC) 認可を使用します。RBAC の構成方法については、「RBAC の構成」を参照してください。