使用完整網域名稱 (FQDN) 登入
透過 GKE Identity Service,您可以使用第三方身分識別提供者的使用者名稱和密碼,從指令列登入已設定的叢集。如果叢集管理員選擇讓您使用完整網域名稱 (FQDN) 直接在 GKE Identity Service 伺服器上進行驗證,請按照本頁的指示操作。如果是 SAML 供應商,則僅支援透過這種驗證方式登入。
只有 VMware 和 Bare Metal 上的地端部署叢集 (Google Distributed Cloud) 支援這種驗證方法,且版本須為 1.29 以上。系統不支援其他叢集類型。
如要使用提供的 FQDN 登入,gcloud
CLI 版本必須至少為 477.0.0。
登入工作流程
使用者透過 FQDN 存取方法登入時,工作流程步驟如下:
- 啟動登入程序:使用者執行
gcloud anthos auth login --server APISERVER-URL
指令,啟動登入程序。 - 選取識別資訊提供者:系統會向使用者提供已設定的識別資訊提供者清單。使用者選取憑證的儲存位置。
使用身分識別提供者進行驗證:驗證程序會因您選擇的身分識別提供者通訊協定而異:
- OIDC:系統會將使用者重新導向至 OIDC 提供者登入頁面。登入成功後,供應商會將代碼傳回 GKE Identity Service,後者會透過後端管道通訊,將代碼換成存取權杖。
- SAML:使用者會重新導向至 SAML 供應商登入頁面。登入成功後,供應商會直接將權杖 (判斷結果) 送回 GKE Identity Service,避免額外的回呼。
- LDAP:GKE Identity Service 不會重新導向至外部供應商,而是顯示登入頁面,讓使用者輸入 LDAP 憑證,並直接透過 LDAP 伺服器驗證。
權杖驗證和 kubeconfig 檔案產生:GKE Identity Service 會驗證收到的權杖 (或聲明),為使用者建立新權杖,並傳回含有該權杖的 kubeconfig 檔案。
叢集存取權:使用者可以使用
kubectl
指令存取叢集。kubectl
用戶端會自動在每個要求中傳送 kubeconfig 檔案中的權杖。權杖驗證和 RBAC 授權:Kubernetes API 伺服器會收到權杖,GKE Identity Service 則會驗證這個權杖,並擷取使用者的聲明 (使用者名稱和群組)。驗證成功後,API 伺服器會執行角色型存取權控管 (RBAC) 檢查,判斷使用者有權存取哪些資源。
使用信任的 SNI 憑證登入
SNI 憑證會運用公司裝置上已有的信任憑證,簡化叢集存取程序。管理員可以在建立叢集時指定這項憑證。如果叢集在叢集層級使用受信任的 SNI 憑證,請使用本節中的指令和管理員提供的 FQDN 登入叢集,並取得存取權杖。您也可以使用安全 kubeconfig
檔案,在驗證成功後儲存權杖。
執行下列指令,向伺服器進行驗證:
gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE
更改下列內容:
- APISERVER-URL:叢集 Kubernetes API 伺服器的 FQDN。
- OUTPUT_FILE:如果
kubeconfig
檔案位於預設位置以外的位置,請使用這個標記。如果省略這個旗標,系統會將驗證權杖新增至預設位置的kubeconfig
檔案。例如:--kubeconfig /path/to/custom.kubeconfig
。
使用叢集 CA 核發的憑證登入
如果您未使用叢集層級的受信任 SNI 憑證,身分識別服務使用的憑證是由叢集的憑證授權單位 (CA) 核發。管理員會將這個 CA 憑證發送給使用者。 使用叢集的 CA 憑證執行下列指令,登入叢集:
gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --login-config-cert CLUSTER_CA_CERTIFICATE
跨裝置驗證
透過跨裝置驗證,您可以使用未安裝瀏覽器的裝置登入 Google Distributed Cloud (GDC) 叢集。您可以在主要裝置 (未安裝瀏覽器) 上啟動驗證程序,然後在已安裝瀏覽器的次要裝置上完成驗證。
如要設定跨裝置驗證,請按照下列步驟操作。
登入主要裝置
在主要裝置上執行下列指令,向伺服器進行驗證。 指定
--no-browser
引數,指出您需要從沒有安裝瀏覽器的裝置存取叢集。gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser
從第二部裝置登入時,您需要使用 GKE Identity Service 傳回的指令。以下是指令範例:
You are authorizing gcloud CLI without access to a web browser. Please run the following command on a machine with a web browser and copy its output back here. gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE" Enter the output of the above command:
複製
gcloud
指令。在第二部裝置上登入叢集
從第二部裝置登入前,請確認您已安裝瀏覽器,且網路連線可連上 Kubernetes API 伺服器。在第二部裝置上執行上一個步驟複製的指令。
gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"
嘗試透過這部裝置登入時,系統會顯示警告訊息。按照瀏覽器上顯示的標準驗證程序操作。驗證成功後,系統會提供一次性代碼。複製這組代碼。
WARNING: The following line enables access to your Cluster resources. ONLY COPY IT TO A MACHINE YOU TRUST AND RUN 'gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser' EARLY ON. Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
在主要裝置上完成登入程序
將上一個步驟複製的程式碼貼到主要裝置的提示中。
Enter the code you received on the other device: Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
裝置會使用這個代碼產生憑證,並儲存在
kubeconfig
檔案中。這個檔案可讓您在主要裝置上存取叢集。登入後,系統會顯示下列訊息:You are logged in! Context is stored under the name '{cluster-name}'