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 sui 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.

    Enable the APIs

gcloud

Esegui questo 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 sul provider di identità, le informazioni nei token JWT che fornisce per l'identificazione degli utenti e altre informazioni fornite durante la registrazione del servizio di identità GKE 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 di piattaforma, o chiunque gestisca 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

  1. Nella console Google Cloud, vai alla pagina Gestione funzionalità.

    Vai a Gestore funzionalità

  2. Fai clic su Abilita nel riquadro Identity Service (Servizio di identità), quindi fai di nuovo clic su Abilita nel riquadro visualizzato. Questa operazione crea una nuova istanza controller di GKE Identity Service per gestire il ciclo di vita di GKE Identity Service nei cluster del parco risorse.

Seleziona cluster

  1. Torna alla pagina Gestore 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.
  2. Fai clic su Aggiorna servizio di identità per aprire il riquadro di configurazione.
  3. 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, vedi Configurare i valori predefiniti a livello di parco risorse.
  4. Nel menu a discesa Provider identità, scegli come configurare il cluster. Se nel cluster è già presente una configurazione di GKE Identity Service, puoi scegliere di aggiornarla. Se un cluster registrato esistente ha una configurazione di GKE Identity Service che vuoi utilizzare, puoi scegliere di copiare questa configurazione 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

  1. Seleziona Nuovo OpenID Connect per creare una nuova configurazione OIDC.
  2. Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Questo 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.
  3. Specifica l'ID client restituito durante la registrazione del servizio di identità GKE con il tuo provider nel campo ID client.
  4. Specifica il client secret che deve essere condiviso tra l'applicazione client e il provider di identità nel campo Client secret.
  5. Specifica l'URI a cui vengono inviate le richieste di autorizzazione al tuo provider di identità nel campo URL emittente.
  6. Fai clic su Avanti per impostare gli attributi OIDC.

Azure AD

  1. Seleziona Nuova Azure Active Directory per creare una nuova configurazione di Azure AD.
  2. Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Questo nome deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Non puoi modificare questo nome dopo aver creato una configurazione.
  3. Specifica l'ID client restituito durante la registrazione di GKE Identity Service con il tuo provider nel campo ID client.
  4. Specifica il client secret che deve essere condiviso tra l'applicazione client e il provider di identità nel campo Client Secret.
  5. Specifica il tenant che corrisponde all'account Azure AD da autenticare in Tenant.
  6. Fai clic su Avanti per impostare gli attributi di Azure AD.

LDAP

  1. Seleziona LDAP per creare una nuova configurazione LDAP.
  2. Specifica il nome che vuoi utilizzare per identificare questa configurazione nel campo Nome provider, in genere il nome del provider di identità. Questo nome deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Non puoi modificare questo nome dopo aver creato una configurazione.
  3. Fai clic su Avanti.
  4. Specifica il nome host (obbligatorio), il tipo di connessione LDAP e il certificato CA con codifica Base64 del server LDAP.
  5. Fai clic su Avanti per configurare il server.
  6. Specifica il nome distinto, il filtro, l'attributo di accesso e l'attributo identificatore dell'utente.
  7. Fai clic su Avanti per impostare i dettagli dell'utente.
  8. Se scegli di utilizzare i gruppi, specifica il nome distinto, il filtro e l'attributo identificatore del gruppo.
  9. Fai clic su Avanti per impostare i dettagli del gruppo.
  10. Specifica il nome utente e la password dell'account di servizio.
  11. Fai clic su Fine per impostare il nome dell'account di servizio.

Imposta gli attributi

Gli attributi da aggiungere dipendono dal tuo provider di identità e dalle opzioni di configurazione scelte dall'amministratore della piattaforma durante la configurazione del provider per GKE Identity Service.

OIDC

  • Compila gli attributi di configurazione:

    • URI di reindirizzamento kubectl: l'URL di reindirizzamento e la porta utilizzati da gcloud CLI e specificati dall'amministratore di piattaforma al momento della registrazione, in genere nel formato http://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à.
    • (Facoltativo) Rivendicazione di gruppo: l'attestazione JWT (nome del campo) che il tuo provider utilizza 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 se disponi di 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, il servizio di identità GKE utilizza "sub", ovvero l'attestazione 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.
    • (Facoltativo) Parametri aggiuntivi: eventuali parametri aggiuntivi richiesti per la configurazione, specificati come i parametri Key e Value. Fai clic su Aggiungi parametro per aggiungere altri parametri, se necessario.
    • (Facoltativo) Abilita il token di accesso: se abilitato, consente il supporto di gruppo per i provider OIDC come Okta.
    • (Facoltativo) Esegui il deployment del proxy della console Google Cloud: se questa opzione è abilitata, 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.

Azure AD

  • Compila gli attributi di configurazione:

    • URI di reindirizzamento kubectl: l'URL di reindirizzamento e la porta utilizzati da gcloud CLI e specificati dall'amministratore di piattaforma al momento della registrazione, in genere nel formato http://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.
    • (Facoltativo) Proxy (Facoltativo): indirizzo del server proxy da utilizzare per la connessione al provider di identità, se applicabile. Potresti dover impostare questa opzione se, ad esempio, il cluster si trova su una rete privata e deve connettersi a un provider di identità pubblica. Ad esempio: http://user:password@10.10.10.10:8888.

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 altri provider di identità.

Aggiorna configurazione

  • Fai clic su Aggiorna configurazione. Se necessario, installa GKE Identity Service (solo cluster EKS, nei cluster GKE è già installato GKE Identity Service) e applica la configurazione del client sui cluster selezionati.

gcloud

Crea il file di configurazione

GKE Identity Service utilizza un tipo di risorsa personalizzata (CRD) di Kubernetes chiamato ClientConfig per la configurazione del cluster, con campi per tutte le informazioni necessarie a GKE Identity Service per interagire con il provider di identità. Le sezioni seguenti forniscono le configurazioni per OIDC e LDAP in cui puoi creare 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 le 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'ancoraggio 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 Il nome che vuoi utilizzare per identificare questa configurazione, in genere il nome del provider di identità. Il nome della 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 L'identificatore client restituito durante la registrazione di GKE Identity Service con il provider. Stringa
clientSecret Il client secret restituito durante la registrazione di GKE Identity Service 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. Il valore predefinito è 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 delimitato da virgole
enableAccessToken No Se abilitato, il servizio di identità GKE può utilizzare endpoint userinfo per ottenere informazioni sui gruppi quando un utente accede dal dall'interfaccia a riga di comando. In questo modo puoi utilizzare i gruppi di sicurezza per l'autorizzazione se disponi di un provider (come Okta) che fornisca attestazioni di gruppo 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 se hai configurazioni per più provider di identità (in genere il nome del provider). Stringa
issuerURI L'URI in cui vengono inviate le richieste di autorizzazione al tuo provider di identità. L'URI deve utilizzare HTTPS. Stringa URL
kubectlRedirectURI 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 Ambiti aggiuntivi da inviare al provider OpenID. Ad esempio, Microsoft Azure e Okta richiedono l'ambito offline_access. Elenco delimitato da virgole
userClaim No L'attestazione JWT (nome campo) che il tuo provider utilizza 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 altre rivendicazioni, ad esempio "email" o "nome", 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 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 Microsoft Azure AD e il nome di dominio principale. 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 seguente tabella 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 Il nome che vuoi utilizzare per identificare questa configurazione, in genere il nome del provider di identità. Il nome della 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 L'ID entità SAML per il provider SAML, specificato in un formato URI. Ad esempio: https://www.idp.com/saml. Stringa URL
idpSingleSignOnURI L'endpoint SSO del provider SAML specificato in un formato URI. Ad esempio: https://www.idp.com/saml/sso. Stringa URL
idpCertificateDataList 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 del provider di identità, sono supportati 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 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 i risultati stringa in certificateAuthorityData come una 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 Un nome per identificare questa configurazione LDAP Stringa
server
host 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 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 alcuni tipi di connessioni 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 La posizione nel sottoalbero della 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 facoltativo del filtro. Il valore predefinito è userPrincipalName. Stringa
filtro no Filtro facoltativo da applicare per cercare l'utente. Questa opzione può essere utilizzata per limitare ulteriormente gli account utente a cui è consentito l'accesso. 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 il loro identificatore effettivo come indirizzo email o nome distinto (DN) completo. Ad esempio, l'impostazione di loginAttribute a sAMAccountName eidentifierAttribute a userPrincipalName consente a un utente di accedere come bsmith, ma in realtà I criteri RBAC per l'utente vengono 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 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. Può essere utilizzato per associare esplicitamente solo determinati gruppi al fine di ridurre il numero 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 Il nome distinto dell'utente dell'account di servizio. Stringa
password La password dell'utente con 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 controller del servizio di identità GKE da gestire il ciclo di vita di GKE Identity Service nei cluster del 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.

Facoltativamente, puoi abilitare il servizio di identità GKE con un livello di parco risorse configurazione predefinita. Con questa configurazione, il fornitore del servizio GKE Identity Service che specifichi viene applicato automaticamente a ogni cluster GKE su Google Cloud registrato nel tuo parco risorse durante la creazione del cluster. Tu Per saperne di più su come farlo, vedi Configurare le impostazioni predefinite a livello di parco risorse.

Applica la configurazione a un cluster

Per installare GKE Identity Service se necessario (solo cluster EKS, per tutti gli altri tipi di cluster supportati è già installato GKE Identity Service per impostazione predefinita) e applicare la configurazione a un cluster, esegui questo 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 GKE Identity Service vengono riconciliate dal controller con la configurazione specificata in questa configurazione.

In questo modo, il servizio di identità GKE può recuperare le informazioni dei gruppi Google per gli account utente che accedono con il proprio ID Google. Questa configurazione è applicabile ai cluster su Google Distributed Cloud (sia VMware e bare metal) a partire dalla versione 1.13 di GKE Enterprise. Per saperne di più sulla funzionalità Google Gruppi, consulta Configurare Connect Gateway con Google Gruppi.

Tieni presente che se sul cluster è già presente una configurazione per opzioni di autenticazione, si applica quanto segue:

  • Se esistono configurazioni 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 già configurazioni a livello di cluster per 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 impostare il servizio di identità GKE Azure AD. L'utilizzo di questa configurazione consente al servizio di identità GKE di recuperare l'utente e sui gruppi di informazioni da Azure AD e consente di configurare Controllo controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes in base ai gruppi. Tuttavia, l'uso di questa configurazione limita il recupero all'incirca 200 gruppi per utente.

Se devi recuperare più di 200 gruppi per utente, consulta 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 al servizio di identità GKE recuperare informazioni su utenti e gruppi senza limiti al numero di gruppi per 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 utilizza la configurazione predefinita utilizzando un anchor oidc in ClientConfig. Per ulteriori informazioni, consulta le istruzioni per Azure AD.

Tutti i campi della 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 illustrato come configurare l'autenticazione utilizzando sia utenti che gruppi con Okta come provider di identità. Questa configurazione consente al servizio di identità GKE recuperare le rivendicazioni di utenti e gruppi utilizzando un token di accesso e endpoint userinfo.

...
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 valori predefiniti a livello di parco risorse

Puoi abilitare GKE Identity Service con una configurazione predefinita a livello di parco risorse. Con questa configurazione, ogni nuovo Cluster GKE su Google Cloud registrato durante la creazione del cluster oppure Cluster GKE l'abilitazione automatica di GKE Identity Service sul cluster la configurazione specificata. Se esistono già cluster membro del parco risorse attivi questa funzionalità, non vengono aggiornate automaticamente con le impostazioni predefinite del parco risorse, ma puoi scegliere di applicarvi la configurazione predefinita. Per maggiori informazioni informazioni sulla gestione della configurazione a livello di parco risorse, vedi Gestire le funzionalità a livello di parco risorse.

Per configurare GKE Identity Service con una configurazione predefinita a livello di parco risorse:

  1. Crea un file denominato fleet-default.yaml e compilalo seguendo la procedura descritta in Creare il file di configurazione.
  2. 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 membro del parco risorse esistente, esegui seguente comando:

    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

Verifica la configurazione del servizio di identità

Dopo aver completato la configurazione a livello di parco risorse, puoi verificare se i cluster nel parco risorse sono stati configurati correttamente con la configurazione del servizio di identità che hai specificato.

Console

  1. Nella console Google Cloud, vai alla pagina Gestione funzionalità.

    Vai a Gestore funzionalità

    Tutte le funzionalità attivate sono contrassegnate dalla dicitura Attivate nel riquadro corrispondente.

  2. 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 con la configurazione dell'accesso degli utenti.