在機群層級設定叢集,使用 GKE Identity 服務
本文適用於想在叢集上設定 GKE Identity Service 的叢集管理員或應用程式運算子。這份指南說明如何在叢集的機群層級,使用偏好的身分識別提供者設定 GKE Identity Service。
啟用 API
如要開始使用,請啟用相關 API。
控制台
確認已選取註冊叢集的專案。
-
Enable the GKE Hub and Kubernetes Engine APIs.
gcloud
執行下列指令,啟用設定所需的 API:
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
設定叢集
如要將叢集設為使用所選供應商,GKE Identity Service 需要您指定身分識別提供者詳細資料、JWT 權杖中用於識別使用者的資訊,以及註冊 GKE Identity Service 做為用戶端應用程式時提供的其他資訊。舉例來說,假設您的供應商建立的身分權杖包含下列欄位 (和其他欄位),其中 iss
是身分識別提供者 URI,sub
用於識別使用者,而 groupList
則列出使用者所屬的安全群組:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...您的設定會包含下列對應欄位:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
平台管理員或貴機構的身分管理員應會提供您建立設定所需的大部分資訊。 如需一些常用身分識別提供者的設定範例,請參閱「特定提供者的設定」。
您可以使用 GKE Identity Service,透過 Google Cloud 控制台或 Google Cloud CLI 建立/更新及套用這項設定。
控制台
啟用 GKE Identity Service
前往 Google Cloud 控制台的「Feature Manager」頁面。
在「身分識別服務」面板中按一下「啟用」,然後在顯示的窗格中再次按一下「啟用」。這會建立新的 GKE Identity Service 控制器執行個體,用於管理機群叢集中 GKE Identity Service 的生命週期。
選取叢集
- 返回「功能管理員」頁面,然後按一下「身分識別服務」面板中的「詳細資料」,開啟服務的詳細資料窗格。這會顯示專案的叢集,以及叢集層級的 GKE Identity Service 狀態。
- 按一下「更新身分識別服務」,開啟設定窗格。
- 選取要設定的叢集。只能選取支援的叢集類型。您可以選擇個別叢集,也可以指定要為所有叢集設定相同的身分識別設定。如果您已設定機群層級預設值,系統會將設定調解回預設值。詳情請參閱「設定車隊層級預設值」。
- 在「身分識別提供者」下拉式選單中,選擇叢集的設定方式。如果叢集已有 GKE Identity Service 設定,您可以選擇更新。如果現有已註冊的叢集有您想使用的 GKE Identity Service 設定,您可以選擇將該設定複製到所選叢集。如要建立全新的設定,請按照下一節的說明,根據所選供應商操作。
設定提供者詳細資料
您需要新增的供應商詳細資料,取決於您要用於設定的識別資訊提供者類型。
OIDC
- 選取「New Open ID Connect」,建立新的 OIDC 設定。
- 在「供應商名稱」欄位中,指定要用來識別這項設定的名稱,通常是身分識別提供者名稱。名稱開頭須為英文字母,其後最多可接 39 個小寫英文字母、數字或連字號,但結尾不得為連字號。設定建立後,您就無法編輯這個名稱。
- 在「用戶端 ID」欄位中,指定向供應商註冊 GKE Identity 服務時傳回的用戶端 ID。
- 在「Client Secret」(用戶端密鑰) 欄位中,指定用戶端應用程式與身分識別提供者之間共用的用戶端密鑰。
- 在「核發者網址」欄位中,指定向識別資訊提供者提出授權要求的 URI。
- 按一下「下一步」設定 OIDC 屬性。
Azure AD
- 選取「新的 Azure Active Directory」,建立新的 Azure AD 設定。
- 在「供應商名稱」欄位中,指定要用來識別這項設定的名稱,通常是身分識別提供者名稱。名稱開頭須為英文字母,其後最多可接 39 個小寫英文字母、數字或連字號,但結尾不得為連字號。設定建立後,您就無法編輯這個名稱。
- 在「用戶端 ID」欄位中,指定向供應商註冊 GKE Identity 服務時傳回的用戶端 ID。
- 在「Client Secret」(用戶端密鑰) 欄位中,指定用戶端應用程式與身分識別提供者之間共用的用戶端密鑰。
- 在「租戶」中,指定要驗證的 Azure AD 帳戶所屬租戶。
- 按一下「下一步」,設定 Azure AD 屬性。
LDAP
- 選取「LDAP」LDAP,建立新的 LDAP 設定。
- 在「供應商名稱」欄位中,指定要用來識別這項設定的名稱,通常是身分識別提供者名稱。名稱開頭須為英文字母,其後最多可接 39 個小寫英文字母、數字或連字號,但結尾不得為連字號。設定建立後,您就無法編輯這個名稱。
- 點選「下一步」。
- 指定主機名稱 (必要)、LDAP 連線類型,以及 LDAP 伺服器的 Base64 編碼 CA 憑證。
- 按一下「下一步」設定伺服器。
- 指定使用者的識別名稱、篩選器、登入屬性和 ID 屬性。
- 按一下「下一步」設定使用者詳細資料。
- 如果選擇使用群組,請指定群組的識別名稱、篩選器和 ID 屬性。
- 點選「下一步」設定群組詳細資料。
- 指定服務帳戶的使用者名稱和密碼。
- 按一下「完成」,即可設定服務帳戶名稱。
設定屬性
您需要新增的屬性取決於識別資訊提供者,以及平台管理員為 GKE Identity Service 設定供應商時選擇的設定選項。
OIDC
填寫設定屬性:
kubectl
重新導向 URI:gcloud CLI 使用的重新導向網址和連接埠,通常由平台管理員在註冊時指定,格式通常為http://localhost:PORT/callback
。- 憑證授權單位 (選填):如果平台管理員提供,則為身分識別提供者的 PEM 編碼憑證字串。
- 群組聲明 (選填):供應商用來傳回帳戶安全性群組的 JWT 聲明 (欄位名稱)。
- 群組前置字串 (選用):您要附加至安全群組名稱的前置字串,可避免與存取控制規則中的現有名稱衝突 (如果您有多個身分識別提供者 (通常是提供者名稱) 的設定)。
- Proxy (選用):用於連線至身分識別提供者的 Proxy 伺服器位址 (如適用)。舉例來說,如果叢集位於私人網路中,且需要連線至公開身分識別提供者,您可能就需要設定這項功能。例如:
http://user:password@10.10.10.10:8888
。 - 範圍 (選填):身分識別供應商要求的任何其他範圍。Microsoft Azure 和 Okta 需要
offline_access
範圍。視需要按一下「新增範圍」,新增更多範圍。 - 使用者聲明 (選用):供應商用來識別帳戶的 JWT 聲明 (欄位名稱)。如果您未在此指定值,GKE Identity Service 會使用「sub」,這是許多供應商使用的使用者 ID 聲明。視 OpenID 供應商而定,您可以選擇其他憑證附加資訊,例如「電子郵件地址」或「姓名」。「電子郵件地址」以外的憑證附加資訊都必須在前方加上核發者網址,以免發生命名衝突。
- 使用者前置字元 (選用):如不想使用預設前置字元,請輸入要加在使用者憑證附加資訊前方的字串,避免與現有名稱衝突。
- 額外參數 (選用):設定所需的任何額外參數,指定為參數「鍵」和「值」。視需要按一下「新增參數」,新增更多參數。
- 啟用存取權權杖 (選用):啟用後,系統會支援 Okta 等 OIDC 提供者。
- 部署 Google Cloud 控制台 Proxy (選用):啟用後,系統會部署 Proxy,讓 Google Cloud 控制台連線至無法透過網際網路公開存取的內部部署身分識別提供者。
Azure AD
填寫設定屬性:
kubectl
重新導向 URI:gcloud CLI 使用的重新導向網址和連接埠,通常由平台管理員在註冊時指定,格式通常為http://localhost:PORT/callback
。- 使用者聲明 (選用):供應商用來識別帳戶的 JWT 聲明 (欄位名稱)。如果您未在此指定值,GKE Identity Service 會依序使用「email」、「preferred_username」或「sub」中的值來擷取使用者詳細資料。
- Proxy (選用):用於連線至身分識別提供者的 Proxy 伺服器位址 (如適用)。舉例來說,如果叢集位於私人網路中,且需要連線至公開身分識別提供者,您可能就需要設定這項功能。例如:
http://user:password@10.10.10.10:8888
。
新增識別資訊提供者
- 如要為機群設定其他身分識別提供者,可以在這裡新增提供者。按照步驟指定其他身分識別提供者。
更新設定
- 按一下「更新設定」。如有必要,這會安裝 GKE Identity Service (僅限 EKS 叢集,GKE 叢集預設已安裝 GKE Identity Service),並在所選叢集上套用用戶端設定。
gcloud
建立設定檔
GKE Identity Service 使用名為 ClientConfig 的 Kubernetes 自訂資源類型 (CRD) 進行叢集設定,並提供欄位,讓 GKE Identity Service 與身分識別提供者互動時可使用所有必要資訊。以下各節提供 OIDC 和 LDAP 的設定,您可以在其中建立名為 auth-config.yaml
的檔案,並加入設定。
OIDC
下列檔案同時顯示 oidc
和 azuread
設定。如要進一步瞭解何時該使用 oidc
或 azuread
,請參閱「供應商專屬設定」。
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
proxy: PROXY_URL
oidc:
certificateAuthorityData: CERTIFICATE_STRING
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
deployCloudConsoleProxy: PROXY_BOOLEAN
extraParams: EXTRA_PARAMS
groupsClaim: GROUPS_CLAIM
groupPrefix: GROUP_PREFIX
issuerURI: ISSUER_URI
kubectlRedirectURI: http://localhost:PORT/callback
scopes: SCOPES
userClaim: USER_CLAIM
userPrefix: USER_PREFIX
- name: NAME
proxy: PROXY_URL
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
如果您已設定多個身分識別提供者,可以在 auth-config.yaml
檔案的 authentication
錨點下方,以與上述設定相同的格式列出多個驗證設定。
下表說明 ClientConfig oidc
和 azuread
物件的欄位。大部分欄位都是選填欄位。您需要新增的欄位取決於識別資訊提供者,以及平台管理員為 GKE Identity Service 設定提供者時選擇的設定選項。
欄位 | 必填 | 說明 | 格式 |
---|---|---|---|
名稱 | 是 | 您要用來識別這項設定的名稱,通常是身分識別提供者名稱。設定名稱開頭須為英文字母,其後最多可接 39 個小寫英文字母、數字或連字號,但結尾不得為連字號。 | 字串 |
certificateAuthorityData | 否 | 身分識別提供者的 PEM 編碼憑證字串 (由平台管理員提供)。並把產生的字串另列一行加入 certificateAuthorityData 。 |
字串 |
clientID | 是 | 向供應商註冊 GKE Identity Service 時傳回的用戶端 ID。 | 字串 |
clientSecret | 是 | 向供應商註冊 GKE Identity Service 時傳回的用戶端密鑰。 | 字串 |
deployCloudConsoleProxy | 否 | 指定是否部署 Proxy,讓 Google Cloud 控制台連線至無法透過網際網路公開存取的內部部署身分識別提供者。預設值為 false 。 |
布林值 |
extraParams | 否 | 要傳送至身分識別提供者的其他 key=value 參數,以逗號分隔的清單形式指定,例如 `prompt=consent,access_type=offline`。 | 以半形逗號分隔的清單 |
enableAccessToken | 否 | 啟用之後,當使用者透過指令列登入時,GKE Identity Service 就能使用識別資訊提供者的使用者資訊端點來取得群組資訊。如果您有提供者 (例如 Okta) 會從這個端點提供群組憑證附加資訊,這樣就能使用安全性群組進行授權。如未設定,系統會視為 false 。 |
布林值 |
groupsClaim | 否 | 供應商用來傳回帳戶安全性群組的 JWT 憑證附加資訊 (欄位名稱)。 | 字串 |
groupPrefix | 否 | 如有多個身分識別提供者 (通常是提供者名稱) 的設定,請在安全群組名稱前方加上前置字串,以免與存取控制規則中的現有名稱衝突。 | 字串 |
issuerURI | 是 | 向識別資訊提供者提出授權要求的 URI。URI 必須使用 HTTPS。 | 網址字串 |
kubectlRedirectURI | 是 | gcloud CLI 使用的重新導向網址和通訊埠,通常由平台管理員在註冊時指定,格式一般為 http://localhost:PORT/callback 。 |
網址字串 |
範圍 | 是 | 要傳送給 OpenID 供應商的其他範圍。舉例來說,Microsoft Azure 和 Okta 需要 offline_access 範圍。 |
以半形逗號分隔的清單 |
userClaim | 否 | 供應商用來識別使用者帳戶的 JWT 憑證附加資訊 (欄位名稱)。如果您未在此指定值,GKE Identity Service 會使用「sub」,這是許多供應商使用的使用者 ID 聲明。視 OpenID 供應商而定,您可以選擇其他憑證附加資訊,例如「電子郵件地址」或「姓名」。「電子郵件地址」以外的憑證附加資訊都必須在前方加上核發者網址,以免發生命名衝突。 | 字串 |
userPrefix | 否 | 如不想使用預設前置字串,請輸入要加在使用者憑證附加資訊前方的字串,避免與現有名稱衝突。 | 字串 |
用戶群 | 是 | 待驗證的 Azure AD 帳戶種類。如果帳戶隸屬於某個用戶群,支援的值則為用戶群 ID 或用戶群名稱。租戶名稱也稱為「主網域」。如要瞭解如何找出這些值,請參閱「找出 Microsoft Azure AD 租戶 ID 和主要網域名稱」。 | 字串 |
proxy | 否 | 用於連線至身分識別提供者的 Proxy 伺服器位址 (如適用),舉例來說,如果叢集位於私人網路中,且需要連線至公開身分識別提供者,您可能就需要設定這項功能。例如 http://user:password@10.10.10.10:8888 。 |
字串 |
SAML
下列檔案顯示 SAML
設定:
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: GROUPS_ATTRIBUTE
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
下表說明 ClientConfig saml
物件的欄位。您需要新增的欄位取決於識別資訊提供者,以及平台管理員為 GKE Identity Service 設定提供者時選擇的設定選項。
欄位 | 必填 | 說明 | 格式 |
---|---|---|---|
名稱 | 是 | 您要用來識別這項設定的名稱,通常是身分識別提供者名稱。設定名稱開頭須為英文字母,其後最多可接 39 個小寫英文字母、數字或連字號,但結尾不得為連字號。 | 字串 |
idpEntityID | 是 | SAML 供應商的 SAML 實體 ID,以 URI 格式指定。例如 https://www.idp.com/saml 。 |
網址字串 |
idpSingleSignOnURI | 是 | SAML 供應商的 SSO 端點,以 URI 格式指定。例如 https://www.idp.com/saml/sso 。 |
網址字串 |
idpCertificateDataList | 是 | 對應於用於驗證 SAML 回應的識別資訊提供者憑證。 這些憑證必須採用標準 Base64 編碼和 PEM 格式。最多只能使用兩個憑證,方便識別資訊提供者輪替憑證。 | 字串 |
userAttribute | 否 | SAML 回應中含有使用者名稱的屬性名稱。 | 字串 |
groupsAttribute | 否 | SAML 回應中包含使用者群組資訊的屬性名稱。 | 字串 |
userPrefix | 否 | 如不想使用預設前置字串,請輸入要加在使用者憑證附加資訊前方的字串,避免與現有名稱衝突。 | 字串 |
groupPrefix | 否 | 如有多個身分識別提供者 (通常是提供者名稱) 的設定,請在安全群組名稱前方加上前置字串,以免與存取控制規則中的現有名稱衝突。 | 字串 |
attributeMapping | 否 | 額外使用者屬性的對應。 | 字串 |
certificateAuthorityData | 否 | 身分識別提供者的 PEM 編碼憑證字串 (由平台管理員提供)。並把產生的字串另列一行加入 certificateAuthorityData 。 |
字串 |
preferredAuthentication | 否 | 叢集中設定的偏好驗證方法名稱。 | 字串 |
LDAP
下列檔案顯示 ldap
設定。
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: ldap
ldap:
server:
host: HOST_NAME
connectionType: CONNECTION_TYPE
certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA
user:
baseDn: BASE_DN
loginAttribute: LOGIN_ATTRIBUTE
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
group:
baseDn: BASE_DN
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
serviceAccount:
simpleBindCredentials:
dn: DISTINGUISHED_NAME
password: PASSWORD
下表說明 ClientConfig ldap
物件中的欄位。您需要新增的欄位取決於識別資訊提供者,以及平台管理員為 GKE Identity Service 設定供應商時選擇的設定選項:
欄位 | 必填 | 說明 | 格式 |
---|---|---|---|
name | 是 | 識別這項 LDAP 設定的名稱 | String |
伺服器 | |||
主機 | 是 | LDAP 伺服器的主機名稱或 IP 位址。通訊埠為選用項目,如未指定,則預設為 389。例如 ldap.server.example.com 或 10.10.10.10:389 。
|
String |
connectionType | 是 | 連至 LDAP 伺服器時要使用的 LDAP 連線類型,如果指定 starttls 或 ldaps ,certificateAuthorityData 欄位不得為空白。
|
String |
certificateAuthorityData | 特定 LDAP 連線類型必須提供這項資訊 | 包含採用 Base64 編碼和 PEM 格式的 LDAP 伺服器憑證授權單位憑證。只有在 ldaps 和 startTLS 連線時,才需要提供這項資訊。
|
String |
使用者 | |||
baseDN | 是 | LDAP 目錄中子樹的位置,用來搜尋使用者項目。 | 採用 DN 格式的字串。 |
loginAttribute | 否 | 用來比對輸入使用者名稱的屬性名稱。這項資訊用於在 LDAP 資料庫中尋找使用者 (例如 (<LoginAttribute>=<username>) ),並與選用的篩選器欄位合併。預設值為 userPrincipalName 。
|
String |
篩選器 | 否 | 搜尋使用者時要套用的篩選器 (選用)。這項功能可用於進一步限制允許登入的使用者帳戶。如未指定,則預設為 (objectClass=User) 。
|
String |
identifierAttribute | 否 | 決定通過驗證的使用者用來表示身分的屬性。這與 loginAttribute 欄位不同,可讓使用者以使用者名稱登入,但實際的 ID 是電子郵件地址或完整辨別名稱 (DN)。舉例來說,如果將 loginAttribute 設為 sAMAccountName ,並將 identifierAttribute 設為 userPrincipalName ,使用者就能以 bsmith 身分登入,但使用者實際的 RBAC 政策會寫成 bsmith@example.com 。建議使用 userPrincipalName ,因為每位使用者都有專屬的 ID。如未指定,則預設為 userPrincipalName 。
|
String |
group (選填欄位) | |||
baseDN | 是 | LDAP 目錄中子樹的位置,用來搜尋群組項目。 | String |
篩選器 | 否 | 搜尋使用者所屬群組時要套用的篩選器 (選用)。這項功能可用於明確比對特定群組,減少每個使用者傳回的群組數量。預設值為 (objectClass=Group) 。
|
String |
identifierAttribute | 否 | 使用者所屬各群組的識別名稱。舉例來說,如果設為 distinguishedName ,則 RBAC 和其他群組期望值應以完整 DN 形式撰寫。如未指定,則預設為 distinguishedName 。
|
String |
serviceAccount/simpleBindCredentials | |||
dn | 是 | 服務帳戶使用者的識別名稱。 | String |
密碼 | 是 | 服務帳戶使用者的密碼。 | String |
啟用 GKE Identity Service
如要為專案啟用 GKE Identity Service,請執行下列指令:
gcloud container fleet identity-service enable
這會建立新的 GKE Identity Service 控制器執行個體,用於管理機群叢集中 GKE Identity Service 的生命週期。如要搭配使用 GKE Identity Service 與註冊至專案機群的所有支援叢集,您只需要為每個專案執行一次這個指令。
您也可以選擇使用機群層級的預設設定,啟用 GKE Identity Service。使用這項設定時,您指定的 GKE Identity Service 供應商設定,會在建立叢集時自動套用至 Google Cloud 註冊至機群的每個 GKE 叢集。如要進一步瞭解如何執行這項操作,請參閱「設定機群層級的預設值」。
將設定套用到叢集
如要安裝 GKE Identity Service (僅限 EKS 叢集,其他支援的叢集類型預設已安裝 GKE Identity Service),並將設定套用至叢集,請執行下列指令:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
將 CLUSTER_NAME
替換為機群中叢集的專屬名稱。執行這項指令後,設定會由 GKE Identity Service 控制器管理。控制器會將對 GKE Identity Service 用戶端設定所做的任何本機變更,與此設定中指定的設定進行比對。
這樣一來,GKE Identity Service 就能為使用 Google ID 登入的使用者帳戶擷取 Google 群組資訊。 這項設定適用於 Google Distributed Cloud 上的叢集 (包括 VMware 和裸機),且須為 GKE Enterprise 1.13 以上版本。如要進一步瞭解 Google 網路論壇功能,請參閱「使用 Google 網路論壇設定連線閘道」。
請注意,如果叢集已設定任何驗證選項,則適用下列事項:
- 如果您已為 OIDC 提供者設定叢集層級設定,將機群層級的 GKE Identity Service 設定套用至叢集時,系統會覆寫所有現有的驗證規格。
- 如果現有叢集層級設定的供應商不支援機群層級設定,這項設定就會失敗。如要套用機群層級設定,請務必移除現有的供應商設定。
如果您不想再讓 GKE Identity Service 控制器管理設定 (例如想使用其他驗證選項),可以按照「停用 GKE Identity Service 管理功能」一文中的操作說明停用這項功能。
供應商專屬設定
本節提供 OIDC 提供者 (例如 Azure AD 和 Okta) 的設定指南,包括可複製並使用您自己的詳細資料編輯的設定範例。
Azure AD
這是使用 Azure AD 設定 GKE Identity Service 的預設設定。透過這項設定,GKE Identity Service 可以從 Azure AD 取得使用者和群組資訊,並根據群組設定 Kubernetes 角色型存取控制 (RBAC)。不過,使用這項設定時,每位使用者只能擷取約 200 個群組。
如需為每位使用者擷取超過 200 個群組,請參閱 Azure AD (進階) 的操作說明。
...
spec:
authentication:
- name: oidc-azuread
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
extraParams: prompt=consent, access_type=offline
issuerURI: https://login.microsoftonline.com/TENANT_ID/v2.0
kubectlRedirectURI: http://localhost:PORT/callback
scopes: openid,email,offline_access
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Azure AD (進階)
這項 Azure AD 選用設定可讓 GKE Identity Service 使用 Microsoft Graph API 擷取使用者和群組資訊,且每位使用者可擁有的群組數量沒有限制。如要瞭解支援這項設定的平台,請參閱「Azure AD 進階設定」。
如果每位使用者需要擷取的群組少於 200 個,建議您使用 ClientConfig 中的 oidc
錨點,採用預設設定。詳情請參閱 Azure AD 的操作說明。
範例設定中的所有欄位都是必填欄位。
...
spec:
authentication:
- name: azure
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
groupFormat: GROUP_FORMAT
userClaim: USER_CLAIM
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
將 GROUP_FORMAT 替換為您要擷取群組資訊的格式。這個欄位可以採用與使用者群組的 ID
或 NAME
相對應的值。這項設定僅適用於 Google Distributed Cloud (內部部署) 部署作業中的叢集。
Okta
以下說明如何使用使用者和群組設定驗證,並以 Okta 做為身分識別提供者。GKE Identity Service 可透過這項設定,使用存取權杖和 Okta 的使用者資訊端點,擷取使用者和群組憑證附加資訊。
...
spec:
authentication:
- name: okta
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
enableAccessToken: true
extraParams: prompt=consent
groupsClaim: groups
issuerURI: https://OKTA_ISSUER_URI/
kubectlRedirectURI: http://localhost:PORT/callback
scopes: offline_access,email,profile,groups
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
設定機群層級預設值
您可以透過機群層級的預設設定啟用 GKE Identity Service。使用這項設定,在叢集建立期間註冊的每個新 GKE on Google Cloud 叢集或 GKE 叢集,都會自動在叢集上啟用 GKE Identity Service,並採用您指定的設定。啟用這項功能時,如果已有機群成員叢集,系統不會自動更新這些叢集,但您可以選擇將預設設定套用至這些叢集。如要進一步瞭解如何管理機群層級設定,請參閱「管理機群層級功能」。
如要使用機群層級預設設定設定 GKE Identity Service,請按照下列步驟操作:
- 建立名為
fleet-default.yaml
的檔案,並按照「建立設定檔」一節的說明填入內容。 使用機群層級的預設設定啟用 GKE Identity Service:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
如要修改現有的機群層級預設設定,或是在機群中已啟用 GKE Identity Service 但沒有這項功能的情況下新增設定,請執行下列指令:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
如果您在設定機群層級預設設定前註冊了現有機群成員叢集,這些叢集不會自動沿用預設設定。如要將預設設定套用至現有車隊成員叢集,請執行下列指令:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
如要停用 GKE Identity Service 的車隊層級預設值,請執行下列指令來移除預設設定:
gcloud container fleet identity-service delete --fleet-default-member-config
驗證身分識別服務設定
完成機群層級設定後,您可以驗證機群中的叢集是否已成功設定您指定的 ID 服務設定。
控制台
前往 Google Cloud 控制台的「Feature Manager」頁面。
所有已啟用的功能都會在面板中列為「已啟用」。
在「身分識別服務」面板中,按一下「詳細資料」。詳細資料面板會顯示已註冊叢集的狀態。
gcloud
執行下列指令:
gcloud container fleet identity-service describe
後續步驟
設定叢集後,請繼續設定使用者存取權。