Configurare i cluster con GKE Identity Service a livello di parco risorse
Questo documento è rivolto agli amministratori dei cluster o agli operatori di applicazioni che vogliono configurare GKE Identity Service sui propri cluster. Contiene istruzioni su come configurare GKE Identity Service a livello di parco risorse nei tuoi cluster con il provider di identità che preferisci.
Abilita API
Per iniziare, devi attivare le API pertinenti.
Console
Assicurati che sia selezionato il progetto in cui sono registrati i cluster.
-
Enable the GKE Hub and Kubernetes Engine APIs.
gcloud
Esegui il seguente comando per abilitare le API richieste per la configurazione:
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
Configura i cluster
Per configurare i cluster in modo che utilizzino il provider scelto, GKE Identity Service richiede di specificare i dettagli del provider di identità, le informazioni nei token JWT forniti per l'identificazione degli utenti e altre informazioni fornite durante la registrazione di GKE Identity Service come applicazione client.
Ad esempio, se il tuo provider crea token di identità con i seguenti campi (tra gli altri), dove iss
è l'URI del provider di identità, sub
identifica l'utente e groupList
elenca i gruppi di sicurezza a cui l'utente appartiene:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...la configurazione avrà i seguenti campi corrispondenti:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
L'amministratore della piattaforma o chi gestisce l'identità nella tua organizzazione dovrebbe fornirti la maggior parte delle informazioni necessarie per creare la configurazione. Per esempi di configurazioni per alcuni provider di identità di uso comune, consulta Configurazioni specifiche del provider.
Il servizio GKE Identity ti consente di creare o aggiornare e applicare questa configurazione dalla console Google Cloud o utilizzando Google Cloud CLI.
Console
Abilita GKE Identity Service
Nella console Google Cloud, vai alla pagina Gestione funzionalità.
Fai clic su Attiva nel riquadro Servizio di identità, quindi fai di nuovo clic su Attiva nel riquadro visualizzato. Viene creata una nuova istanza del controller GKE Identity Service per gestire il ciclo di vita di GKE Identity Service nei cluster del tuo parco risorse.
Seleziona cluster
- Torna nella pagina Gestione funzionalità, fai clic su Dettagli nel riquadro Servizio di identità per aprire il riquadro dei dettagli del servizio. Vengono visualizzati i cluster del progetto e il relativo stato di GKE Identity Service a livello di parco risorse.
- Fai clic su Aggiorna servizio di identità per aprire il riquadro di configurazione.
- Seleziona i cluster che vuoi configurare. È possibile selezionare solo i tipi di cluster supportati. Puoi scegliere singoli cluster o specificare che tutti i cluster devono essere configurati con la stessa configurazione dell'identità. Se hai configurato i valori predefiniti a livello di parco risorse, la configurazione viene riconciliata con i valori predefiniti. Per ulteriori informazioni, consulta Configurare i valori predefiniti a livello di parco risorse.
- Nel menu a discesa Provider identità, scegli come configurare il cluster. Se il cluster ha già una configurazione del servizio GKE Identity, puoi scegliere di aggiornarla. Se un cluster registrato esistente ha una configurazione di GKE Identity Service che vuoi utilizzare, puoi scegliere di copiarla nei cluster selezionati. Per creare una configurazione completamente nuova, segui le istruzioni per il fornitore scelto, come descritto nella sezione successiva.
Imposta i dettagli del provider
I dettagli del provider da aggiungere dipendono dal tipo di provider di identità che vuoi utilizzare per la configurazione.
OIDC
- Seleziona Nuovo OpenID Connect per creare una nuova configurazione OIDC.
- Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Il nome deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Una volta creata una configurazione, non puoi modificare questo nome.
- Specifica l'ID client restituito durante la registrazione di GKE Identity Service con il tuo provider nel campo ID client.
- Specifica il client secret che deve essere condiviso tra l'applicazione client e il provider di identità nel campo Client secret.
- Specifica l'URI a cui vengono inviate le richieste di autorizzazione al tuo provider di identità nel campo URL emittente.
- Fai clic su Avanti per impostare gli attributi OIDC.
Azure AD
- Seleziona Nuova Azure Active Directory per creare una nuova configurazione di Azure AD.
- Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Il nome deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Una volta creata una configurazione, non puoi modificare questo nome.
- Specifica l'ID client restituito durante la registrazione di GKE Identity Service con il tuo provider nel campo ID client.
- Specifica il client secret che deve essere condiviso tra l'applicazione client e il provider di identità nel campo Client secret.
- Specifica il tenant che corrisponde all'account Azure AD da autenticare in Tenant.
- Fai clic su Avanti per impostare gli attributi di Azure AD.
LDAP
- Seleziona LDAP per creare una nuova configurazione LDAP.
- Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Il nome deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Una volta creata una configurazione, non puoi modificare questo nome.
- Fai clic su Avanti.
- Specifica il nome host (obbligatorio), il tipo di connessione LDAP e il certificato CA con codifica Base64 del server LDAP.
- Fai clic su Avanti per configurare il server.
- Specifica il nome distinto, il filtro, l'attributo di accesso e l'attributo identificatore dell'utente.
- Fai clic su Avanti per impostare i dettagli dell'utente.
- Se scegli di utilizzare i gruppi, specifica il nome distinto, il filtro e l'attributo identificatore del gruppo.
- Fai clic su Avanti per impostare i dettagli del gruppo.
- Specifica il nome utente e la password dell'account di servizio.
- Fai clic su Fine per impostare il nome dell'account di servizio.
Imposta gli attributi
Gli attributi da aggiungere dipendono dal provider di identità e dalle opzioni di configurazione scelte dall'amministratore della piattaforma durante la configurazione del provider per Identity Service for GKE.
OIDC
Compila gli attributi di configurazione:
- URI di reindirizzamento
kubectl
: l'URL di reindirizzamento e la porta utilizzati dall'interfaccia alla gcloud CLI e specificati dall'amministratore della piattaforma al momento della registrazione, in genere nel formatohttp://localhost:PORT/callback
. - Autorità di certificazione (facoltativo): se fornita dall'amministratore della piattaforma, una stringa del certificato con codifica PEM per il provider di identità.
- Attestazione gruppo (facoltativa): l'attributo JWT (nome del campo) utilizzato dal provider per restituire i gruppi di sicurezza di un account.
- Prefisso gruppo (facoltativo): il prefisso da anteporre ai nomi dei gruppi di sicurezza per evitare conflitti con i nomi esistenti nelle regole di controllo dell'accesso#39;accesso se hai configurazioni per più provider di identità (in genere il nome del provider).
- Proxy (facoltativo): indirizzo del server proxy da utilizzare per connettersi al provider di identità, se applicabile. Potresti dover impostare questo valore se, ad esempio, il tuo cluster si trova in una rete privata e deve connettersi a un provider di identità pubblico. Ad esempio:
http://user:password@10.10.10.10:8888
. - Ampiezze (facoltative): eventuali ambiti aggiuntivi richiesti dal tuo provider di identità. Microsoft Azure e Okta richiedono l'ambito
offline_access
. Fai clic su Aggiungi ambito per aggiungere altri ambiti, se necessario. - Claim utente (facoltativo): l'attributo JWT (nome del campo) utilizzato dal fornitore per identificare un account. Se non specifichi un valore qui, GKE Identity Service utilizza "sub", che è l'affermazione dell'ID utente utilizzata da molti provider. Puoi scegliere altri claim, ad esempio "email" o "name", a seconda del provider OpenID. Alle attestazioni diverse da "email" viene aggiunto come prefisso l'URL dell'emittente per evitare conflitti di denominazione.
- Prefisso utente (facoltativo): il prefisso da anteporre alle attestazioni degli utenti per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito.
- Parametri aggiuntivi (facoltativo): eventuali parametri aggiuntivi necessari per la configurazione, specificati come parametri Chiave e Valore. Fai clic su Aggiungi param per aggiungere altri parametri, se necessario.
- Attiva token di accesso (facoltativo): se attivato, consente il supporto dei gruppi per i provider OIDC come Okta.
- Esegui il deployment del proxy della console Google Cloud (facoltativo): se questa opzione è attivata, viene eseguito il deployment di un proxy che consente alla console Google Cloud di connettersi a un provider di identità on-premise non accessibile pubblicamente su internet.
- URI di reindirizzamento
Azure AD
Compila gli attributi di configurazione:
- URI di reindirizzamento
kubectl
: l'URL di reindirizzamento e la porta utilizzati dall'interfaccia alla gcloud CLI e specificati dall'amministratore della piattaforma al momento della registrazione, in genere nel formatohttp://localhost:PORT/callback
. - Claim utente (facoltativo): l'attributo JWT (nome del campo) utilizzato dal fornitore per identificare un account. Se non specifichi un valore qui, GKE Identity Service utilizza un valore nell'ordine di "email", "preferred_username" o "sub" per recuperare i dettagli dell'utente.
- Proxy (facoltativo): indirizzo del server proxy da utilizzare per connettersi al provider di identità, se applicabile. Potresti dover impostare questo valore se, ad esempio, il tuo cluster si trova in una rete privata e deve connettersi a un provider di identità pubblico. Ad esempio:
http://user:password@10.10.10.10:8888
.
- URI di reindirizzamento
Aggiungi provider di identità
- Se hai altri provider di identità che vuoi configurare per il tuo parco risorse, puoi aggiungerli qui. Segui i passaggi per specificare fornitori di identità aggiuntivi.
Aggiorna configurazione
- Fai clic su Aggiorna configurazione. Se necessario, viene installato GKE Identity Service (solo cluster EKS, i cluster GKE hanno già GKE Identity Service installato per impostazione predefinita) e viene applicata la configurazione del client ai cluster selezionati.
gcloud
Crea il file di configurazione
GKE Identity Service utilizza un tipo di risorsa personalizzata (CRD) Kubernetes chiamato ClientConfig per la configurazione del cluster, con campi per tutte le informazioni di cui GKE Identity Service ha bisogno per interagire con il provider di identità.
Le sezioni seguenti forniscono le configurazioni per OIDC e LDAP in cui crei un file denominato auth-config.yaml
con la tua configurazione.
OIDC
Il seguente file mostra sia una configurazione oidc
sia una configurazione azuread
. Per ulteriori informazioni su quando utilizzare oidc
o azuread
, consulta Configurazioni specifiche del provider.
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
Se hai configurato più di un provider di identità, puoi elencare più configurazioni di autenticazione nel file auth-config.yaml
sotto l'ancora authentication
nello stesso formato della configurazione precedente.
La tabella seguente descrive i campi dell'oggetto ClientConfig oidc
e azuread
. La maggior parte dei campi è facoltativa. I campi da aggiungere dipendono dal provider di identità e dalle opzioni di configurazione scelte dall'amministratore della piattaforma durante la configurazione del provider per GKE Identity Service.
Campo | Obbligatorio | Descrizione | Formato |
---|---|---|---|
nome | sì | Il nome che vuoi utilizzare per identificare questa configurazione, in genere il nome del provider di identità. Il nome di una configurazione deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. | Stringa |
certificateAuthorityData | No | Se fornita dall'amministratore della piattaforma, una stringa del certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come singola riga. |
Stringa |
clientID | Sì | L'identificatore client restituito durante la registrazione di GKE Identity Service con il tuo provider. | Stringa |
clientSecret | Sì | Il client secret restituito durante la registrazione di Identity Service for GKE con il tuo provider. | Stringa |
deployCloudConsoleProxy | No | Specifica se è stato implementato un proxy che consente alla console Google Cloud di connettersi a un provider di identità on-premise non accessibile pubblicamente tramite internet. Per impostazione predefinita, questo valore è impostato su false . |
Booleano |
extraParams | No | Parametri chiave=valore aggiuntivi da inviare all'identity provider, specificati come elenco separato da virgole; ad esempio, "prompt=consent,access_type=offline". | Elenco separato da virgole |
enableAccessToken | No | Se abilitato, GKE Identity Service può utilizzare l'endpoint userinfo del provider di identità per ottenere informazioni sui gruppi quando un utente accede dalla riga di comando. Ciò ti consente di utilizzare i gruppi di sicurezza per l'autorizzazione se hai un provider (come Okta) che fornisce rivendicazioni di gruppi da questo endpoint. Se non è impostato, viene considerato false . |
Booleano |
groupsClaim | No | L'attributo JWT (nome del campo) utilizzato dal provider per restituire i gruppi di sicurezza di un account. | Stringa |
groupPrefix | No | Il prefisso da anteporre ai nomi dei gruppi di sicurezza per evitare conflitti con i nomi esistenti nelle regole di controllo dell'accesso#39;accesso se hai configurazioni per più provider di identità (in genere il nome del provider). | Stringa |
issuerURI | Sì | L'URI a cui vengono inviate le richieste di autorizzazione al tuo provider di identità. L'URI deve utilizzare HTTPS. | Stringa URL |
kubectlRedirectURI | Sì | L'URL di reindirizzamento e la porta utilizzati dall'interfaccia a riga di comando gcloud e specificati dall'amministratore della piattaforma al momento della registrazione, in genere nel formato http://localhost:PORT/callback . |
Stringa URL |
ambiti | Sì | Ambiti aggiuntivi da inviare al provider OpenID. Ad esempio, Microsoft Azure e Okta
richiedono l'ambito offline_access . |
Elenco separato da virgole |
userClaim | No | L'attributo JWT (nome del campo) utilizzato dal provider per identificare un account utente. Se non specifichi un valore qui, GKE Identity Service utilizza "sub", che è l'affermazione dell'ID utente utilizzata da molti provider. Puoi scegliere altri claim, ad esempio "email" o "name", a seconda del provider OpenID. Alle attestazioni diverse da "email" viene aggiunto come prefisso l'URL dell'emittente per evitare conflitti di denominazione. | Stringa |
userPrefix | No | Il prefisso da anteporre alle attestazioni degli utenti per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito. | Stringa |
tenant | Sì | Il tipo di account Azure AD da autenticare. I valori supportati sono l'ID tenant o il nome del tenant per gli account che appartengono a un tenant specifico. Il nome del tenant è noto anche come dominio principale. Per informazioni dettagliate su come trovare questi valori, consulta Trovare l'ID tenant e il nome di dominio principale di Microsoft Azure AD. | Stringa |
proxy | No | Indirizzo del server proxy da utilizzare per connettersi al provider di identità, se applicabile. Potresti dover impostare questo valore se, ad esempio, il tuo cluster si trova in una rete privata e deve connettersi a un provider di identità pubblico. Ad esempio: http://user:password@10.10.10.10:8888 . |
Stringa |
SAML
Il seguente file mostra una configurazione 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: <>
La tabella seguente descrive i campi dell'oggetto ClientConfig saml
. I campi da aggiungere dipendono dal provider di identità e dalle opzioni di configurazione scelte dall'amministratore della piattaforma durante la configurazione del provider per GKE Identity Service.
Campo | Obbligatorio | Descrizione | Formato |
---|---|---|---|
nome | sì | Il nome che vuoi utilizzare per identificare questa configurazione, in genere il nome del provider di identità. Il nome di una configurazione deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. | Stringa |
idpEntityID | Sì | L'ID entità SAML per il provider SAML, specificato in un formato URI. Ad esempio: https://www.idp.com/saml . |
Stringa URL |
idpSingleSignOnURI | Sì | L'endpoint SSO del provider SAML, specificato in formato URI. Ad esempio: https://www.idp.com/saml/sso . |
Stringa URL |
idpCertificateDataList | Sì | Corrisponde ai certificati del provider di identità utilizzati per verificare la risposta SAML. Questi certificati devono essere con codifica base64 standard e in formato PEM. Per semplificare la rotazione dei certificati dei provider di identità, è supportato solo un massimo di due certificati. | Stringa |
userAttribute | No | Nome dell'attributo nella risposta SAML che contiene il nome utente. | Stringa |
groupsAttribute | No | Nome dell'attributo nella risposta SAML che contiene le informazioni sul gruppo dell'utente. | Stringa |
userPrefix | No | Il prefisso da anteporre alle attestazioni degli utenti per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito. | Stringa |
groupPrefix | No | Il prefisso da anteporre ai nomi dei gruppi di sicurezza per evitare conflitti con i nomi esistenti nelle regole di controllo dell'accesso#39;accesso se hai configurazioni per più provider di identità (in genere il nome del provider). | Stringa |
attributeMapping | No | La mappatura di attributi utente aggiuntivi. | Stringa |
certificateAuthorityData | No | Se fornita dall'amministratore della piattaforma, una stringa del certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come singola riga. |
Stringa |
preferredAuthentication | No | Nome del metodo di autenticazione preferito configurato nel cluster. | Stringa |
LDAP
Il seguente file mostra una configurazione 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
La tabella seguente descrive i campi dell'oggetto ClientConfig ldap
. I campi da aggiungere dipendono dal provider di identità e dalle opzioni di configurazione scelte dall'amministratore della piattaforma durante la configurazione del provider per GKE Identity Service:
Campo | Obbligatorio | Descrizione | Formato |
---|---|---|---|
nome | sì | Un nome per identificare questa configurazione LDAP | Stringa |
server | |||
host | sì | Nome host o indirizzo IP del server LDAP. La porta è facoltativa e, se non specificata, il valore predefinito è 389. Ad esempio, ldap.server.example.com o 10.10.10.10:389 .
|
Stringa |
connectionType | sì | Tipo di connessione LDAP da usare per connettersi al server LDAP. Se viene specificato starttls o ldaps , il campo certificateAuthorityData non deve essere vuoto.
|
Stringa |
certificateAuthorityData | Obbligatorio per determinati tipi di connessione LDAP | Contiene un certificato dell'autorità di certificazione con codifica Base64 e formato PEM per il server LDAP. Deve essere fornito solo per le connessioni ldaps e startTLS .
|
Stringa |
utente | |||
baseDN | sì | La posizione del sottoalbero nella directory LDAP in cui cercare le voci degli utenti. | Stringa in formato DN. |
loginAttribute | no | Il nome dell'attributo che corrisponde al nome utente immesso. Viene utilizzato per trovare l'utente nel database LDAP, ad esempio (<LoginAttribute>=<username>) , e viene combinato con il campo di filtro facoltativo. Il valore predefinito è userPrincipalName .
|
Stringa |
filtro | no | Filtro facoltativo da applicare per cercare l'utente. Questo può essere utilizzato per limitare ulteriormente gli account utente che possono accedere. Se non specificato, il valore predefinito è (objectClass=User) .
|
Stringa |
identifierAttribute | no | Determina quale attributo
da usare come identità dell'utente dopo che ha eseguito l'autenticazione.
Questo campo è diverso da loginAttribute per consentire agli utenti di accedere con un nome utente, ma poi avere come identificatore effettivo un indirizzo email o un nome distinto (DN) completo. Ad esempio, l'impostazione di loginAttribute
su sAMAccountName e di identifierAttribute su userPrincipalName
consentirebbe a un utente di accedere come bsmith , ma i criteri RBAC effettivi per l'utente sarebbero scritti come bsmith@example.com .
Ti consigliamo di utilizzare userPrincipalName , poiché sarà univoco per ogni utente. Se non specificato, il valore predefinito è userPrincipalName .
|
Stringa |
group (campo facoltativo) | |||
baseDN | sì | La posizione nel sottoalbero della directory LDAP in cui cercare le voci dei gruppi. | Stringa |
filtro | no | Filtro facoltativo da utilizzare per cercare i gruppi a cui appartiene un utente. Questo può essere utilizzato per associare in modo esplicito solo determinati gruppi al fine di ridurre la quantità di gruppi restituiti per ogni utente. Il valore predefinito è (objectClass=Group) .
|
Stringa |
identifierAttribute | no | Il nome che identifica ogni gruppo a cui appartiene un utente. Ad esempio, se questo valore è impostato su distinguishedName , le RBAC e altre aspettative di gruppo devono essere scritte come DN completi. Se non specificato, il valore predefinito è distinguishedName .
|
Stringa |
serviceAccount/simpleBindCredentials | |||
dn | sì | Il nome distinto dell'utente dell'account di servizio. | Stringa |
password | sì | La password dell'utente dell'account di servizio. | Stringa |
Abilita GKE Identity Service
Per attivare il servizio GKE Identity per il tuo progetto, esegui il seguente comando:
gcloud container fleet identity-service enable
Viene creata una nuova istanza del controller GKE Identity Service per gestire il ciclo di vita di GKE Identity Service nei cluster del tuo parco risorse. Devi eseguire questo comando solo una volta per progetto per utilizzare GKE Identity Service con tutti i cluster supportati registrati nel parco risorse del progetto.
Se vuoi, puoi attivare GKE Identity Service con una configurazione predefinita a livello di parco risorse. Con questa configurazione, il fornitore di servizi di identità GKE specificato viene applicato automaticamente a ogni cluster GKE su Google Cloud registrato nel tuo parco risorse durante la creazione del cluster. Puoi approfondire la questione in Configurare i valori predefiniti a livello di parco risorse.
Applica la configurazione a un cluster
Per installare GKE Identity Service, se necessario (solo cluster EKS, tutti gli altri tipi di cluster supportati hanno già GKE Identity Service installato per impostazione predefinita) e applicare la configurazione a un cluster, esegui il seguente comando:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Sostituisci CLUSTER_NAME
con il nome univoco del cluster all'interno del parco risorse.
Dopo l'esecuzione di questo comando, la configurazione viene gestita dal controller GKE Identity Service. Eventuali modifiche locali apportate alla configurazione del client di Identity Service for GKE vengono riconciliate dal controller con la configurazione specificata in questa configurazione.
In questo modo, GKE Identity Service può recuperare le informazioni di Google Gruppi per gli account utente che accedono con il proprio ID Google. Questa configurazione è applicabile ai cluster su Google Distributed Cloud (sia VMware che bare metal) dalla versione 1.13 di GKE Enterprise in poi. Per saperne di più sulla funzionalità Google Gruppi, consulta Configurare Connect Gateway con Google Gruppi.
Tieni presente che se nel tuo cluster è già presente una configurazione per le opzioni di autenticazione, si applicano le seguenti regole:
- Se hai configurazioni esistenti a livello di cluster per i provider OIDC, l'applicazione di una configurazione di GKE Identity Service a livello di parco risorse al cluster sovrascrive tutte le specifiche di autenticazione esistenti.
- Se esistono configurazioni a livello di cluster per i provider non supportati per la configurazione a livello di parco risorse, questa configurazione non andrà a buon fine. Per applicare la configurazione a livello di parco risorse, devi rimuovere la configurazione del provider esistente.
Se non vuoi più che il controller GKE Identity Service gestisca la tua configurazione, ad esempio se vuoi utilizzare un'opzione o più opzioni di autenticazione diverse, puoi disattivare questa funzionalità seguendo le istruzioni riportate in Disattivare la gestione di GKE Identity Service.
Configurazioni specifiche del provider
Questa sezione fornisce indicazioni sulla configurazione per i provider OIDC (come Azure AD e Okta), inclusa una configurazione di esempio che puoi copiare e modificare con i tuoi dettagli.
Azure AD
Questa è la configurazione predefinita per configurare GKE Identity Service con Azure AD. L'utilizzo di questa configurazione consente a GKE Identity Service di recuperare le informazioni sugli utenti e sui gruppi da Azure AD e di configurare il controllo degli controllo dell'accesso basato su ruoli (RBAC) di Kubernetes in base ai gruppi. Tuttavia, l'utilizzo di questa configurazione ti consente di recuperare circa 200 gruppi per utente.
Se devi recuperare più di 200 gruppi per utente, consulta le istruzioni per Azure AD (avanzato).
...
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 (avanzato)
Questa configurazione facoltativa per Azure AD consente a GKE Identity Service di recuperare informazioni su utenti e gruppi senza limiti al numero di gruppi per utente utilizzando l'API Microsoft Graph. Per informazioni sulle piattaforme che supportano questa configurazione, vedi Configurazione avanzata per Azure AD.
Se devi recuperare meno di 200 gruppi per utente, ti consigliamo di utilizzare la configurazione predefinita con un'ancora oidc
in ClientConfig. Per ulteriori informazioni, consulta le istruzioni per Azure AD.
Tutti i campi nella configurazione di esempio sono obbligatori.
...
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.
...
Sostituisci GROUP_FORMAT con il formato in cui vuoi recuperare le informazioni del gruppo. Questo campo può assumere valori corrispondenti a ID
o NAME
dei gruppi di utenti. Questa impostazione è disponibile solo per i cluster nei deployment di Google Distributed Cloud (on-premise).
Okta
Di seguito viene descritto come configurare l'autenticazione utilizzando sia gli utenti sia i gruppi con Okta come provider di identità. Questa configurazione consente a GKE Identity Service di recuperare le rivendicazioni utente e di gruppo utilizzando un token di accesso e l'endpoint userinfo di 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.
...
Configura i valori predefiniti a livello di parco risorse
Puoi attivare GKE Identity Service con una configurazione predefinita a livello di parco risorse. Con questa configurazione, in ogni nuovo cluster GKE su Google Cloud registrato durante la creazione del cluster o cluster GKE viene attivato automaticamente il servizio GKE Identity con la configurazione specificata. Se hai già cluster di membri del parco risorse quando attivi questa funzionalità, questi non vengono aggiornati automaticamente con i valori predefiniti del parco risorse, anche se puoi scegliere di applicare la configurazione predefinita. Per ulteriori informazioni sulla gestione della configurazione a livello di parco risorse, consulta Gestire le funzionalità a livello di parco risorse.
Per configurare Identity Service for GKE con una configurazione predefinita a livello di parco risorse, procedi nel seguente modo:
- Crea un file denominato
fleet-default.yaml
e compilalo come descritto in Creare il file di configurazione. Abilita GKE Identity Service con la configurazione predefinita a livello di parco risorse:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Per modificare la configurazione predefinita esistente a livello di parco risorse o aggiungerne una se GKE Identity Service è già attivato nel tuo parco risorse senza questa funzionalità, esegui il seguente comando:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
I cluster membri del parco risorse esistenti che hai registrato prima di configurare la configurazione predefinita a livello di parco risorse non ereditano automaticamente la configurazione predefinita. Per applicare la configurazione predefinita a un cluster di membri del parco risorse esistente, esegui il comando seguente:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Per disattivare i valori predefiniti a livello di parco per GKE Identity Service, esegui il seguente comando per rimuovere la configurazione predefinita:
gcloud container fleet identity-service delete --fleet-default-member-config
Verificare la configurazione del servizio di identità
Una volta completata la configurazione a livello di parco risorse, puoi verificare se i cluster del parco risorse sono stati configurati correttamente con la configurazione del servizio di identità specificata.
Console
Nella console Google Cloud, vai alla pagina Gestione funzionalità.
Tutte le funzionalità abilitate sono indicate come Attivate nel relativo riquadro.
Fai clic su Dettagli nel riquadro Servizio di identità. Un riquadro dei dettagli mostra lo stato dei cluster registrati.
gcloud
Esegui questo comando:
gcloud container fleet identity-service describe
Passaggi successivi
Dopo aver configurato i cluster, continua a configurare l'accesso utente.