本節中的主題說明如何在具有獨立管理叢集的 Tanzu Kubernetes Grid (TKG) 中設定身分識別和存取管理。
若要啟用及設定身分識別和存取管理,請遵循以下的連結主題:
Tanzu Kubernetes Grid (TKG) 使用 Pinniped 來實作身分識別和存取管理的驗證和授權。
Tanzu Kubernetes Grid 使用 Pinniped (Kubernetes 叢集的開放原始碼驗證服務) 來實作使用者驗證。Pinniped 允許您將外部 OpenID Connect (OIDC) 或 LDAP 身分識別提供者 (IdP) 插入至工作負載叢集,如此您就可以控制使用者對這些叢集的存取權。對於 LDAP 驗證,Pinniped 使用 Dex 作為連線至您的上游 LDAP IdP 的端點。如果您使用的是 OIDC,Pinniped 會提供自己的端點,因此不需要 Dex。如果您啟用身分識別管理,Pinniped 和 Dex 會自動以叢集內服務形式,在您的管理叢集中執行。如需如何在 Tanzu Kubernetes Grid 中啟用身分識別管理的相關指示,請參閱設定身分識別管理。
管理叢集與工作負載叢集之間的驗證流程包括:
kubeconfig
給使用者。kubeconfig
來連線至工作負載叢集,例如,藉由執行 kubectl get pods --kubeconfig
。kubectl get pods
要求,具體取決於使用者角色的權限。在下圖中,藍色箭頭代表工作負載叢集、管理叢集和外部 IdP 之間的驗證流程。綠色箭頭代表工作負載叢集、管理叢集與外部 IdP 之間的 Tanzu CLI 和 kubectl
流量。
下圖顯示當您啟用身分識別管理時,Tanzu Kubernetes Grid 部署在管理叢集和工作負載叢集中的身分識別管理元件。
瞭解此圖:
帶有紫色邊框的長方形顯示身分識別管理元件,其中包括管理叢集中的 Pinniped、Dex 和部署後工作,以及工作負載叢集中的 Pinniped 和部署後工作。在 Tanzu Kubernetes Grid v1.3.0 中,Pinniped 使用 Dex 同時作為 OIDC 和 LDAP 提供者的端點。在 v1.3.1 及更新版本中,只會針對 LDAP 提供者部署 Dex。如果您在 v1.3.1 及更新版本中設定 OIDC 提供者,Pinniped 會直接與您的提供者通訊,而不會經由 Dex。
帶有灰色邊框的長方形顯示 Tanzu Kubernetes Grid 用來控制身分識別管理元件生命週期的元件,其中包括 Tanzu CLI、tanzu-addons-manager
和 kapp-controller
。
帶有綠色邊框的長方形顯示針對管理叢集所建立的 Pinniped 附加元件密碼。
管理叢集中帶有橙色邊框的長方形顯示針對工作負載叢集所建立的 Pinniped 附加元件密碼。密碼會鏡像到工作負載叢集。
在內部,Tanzu Kubernetes Grid 會將身分識別管理元件部署成自動管理的套件,pinniped
。此套件包含 pinniped
附加元件。如果您在部署管理叢集時啟用了身分識別管理,或是在部署後啟用,Tanzu CLI 會在管理叢集中,為 pinniped
附加元件建立 Kubernetes 密碼。tanzu-addons-manager
會讀取包含 IdP 組態資訊的密碼,並指示 kapp-controller
使用密碼中的組態資訊來設定 pinniped
附加元件。
Tanzu CLI 會為您從管理叢集部署的每一個工作負載叢集,分別建立一個 pinniped
附加元件密碼。所有密碼都儲存在管理叢集中。如需詳細資訊,請參閱自動管理的套件。
Tanzu Kubernetes Grid 會使用角色型存取控制 (RBAC) 授權。如需如何設定 RBAC 的指示,請參閱設定 RBAC。