Configurare il servizio di identità GKE a livello di parco risorse

Questo documento è rivolto agli amministratori di cluster o agli operatori di applicazioni che configurano GKE Identity Service sui propri cluster. Offre istruzioni su come configurare GKE Identity Service a livello di parco risorse sui tuoi cluster con il tuo provider di identità preferito. Le istruzioni riportate in questo documento presuppongono che GKE Identity Service sia già stato registrato con il tuo provider di identità come applicazione client. Per saperne di più sul servizio GKE Identity e sulle altre opzioni di configurazione, consulta la panoramica. Per scoprire come accedere a un cluster utilizzando questo servizio come sviluppatore o utente del cluster, consulta Accesso ai cluster con GKE Identity Service.

Prima di iniziare

  • Prima di iniziare la configurazione, assicurati che l'amministratore della piattaforma ti abbia fornito tutte le informazioni necessarie indicate nella sezione Configurazione dei provider OIDC per GKE Identity Service, inclusi l'ID client e il secret per GKE Identity Service.
  • Assicurati che i cluster che vuoi configurare soddisfino i prerequisiti per la configurazione a livello di parco risorse. Per altri tipi di cluster e ambienti, consulta la panoramica di GKE Identity Service.
  • Assicurati di aver installato i seguenti strumenti a riga di comando:
    • La versione più recente di Google Cloud CLI, che include gcloud, lo strumento a riga di comando per interagire con Google Cloud. Se devi installare Google Cloud CLI, consulta la guida all'installazione.
    • kubectl per eseguire comandi sui cluster Kubernetes. Se devi installare kubectl, consulta la guida all'installazione. Se utilizzi Cloud Shell come ambiente shell per interagire con Google Cloud, questi strumenti sono installati automaticamente.
  • Assicurati di aver inizializzato gcloud CLI per utilizzarlo con il progetto in cui sono registrati i cluster.
  • Se non sei il proprietario del progetto, devi disporre del ruolo Amministratore hub GKE nel progetto in cui sono registrati i cluster per completare i passaggi di configurazione.

Abilita le API

Console

Assicurati che sia selezionato il progetto in cui sono registrati i cluster.

  • Abilita le API GKE Hub and Kubernetes Engine.

    Abilita le API

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 che tu specifichi 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 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 appartiene l'utente:

{
  'iss': 'https://server.example.com'
  'sub': 'u98523-4509823'
  'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp']
  ...
}

...la tua configurazione avrà i seguenti campi corrispondenti:

issueruri: 'https://server.example.com'
username: 'sub'
group: 'groupList'
...

L'amministratore della piattaforma, o chiunque gestisca l'identità all'interno della 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 per i provider.

GKE Identity Service 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 Funzionalità di GKE Enterprise.

    Vai alle funzionalità di GKE Enterprise

  2. Nella tabella Funzionalità, fai clic su Attiva nella riga Servizio di identità, quindi fai di nuovo clic su Attiva nel riquadro visualizzato. Viene creata una nuova istanza del controller del servizio GKE Identity per gestire il ciclo di vita del servizio GKE Identity nei cluster del tuo parco risorse.

Seleziona cluster

  1. Torna alla tabella Funzionalità, fai clic su Dettagli nella riga Servizio di identità per aprire il riquadro dei dettagli del servizio. Vengono visualizzati i cluster del progetto e il relativo stato del servizio GKE Identity 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. Puoi selezionare solo i tipi di cluster supportati. Puoi scegliere singoli cluster o specificare che tutti i cluster devono essere configurati con la stessa configurazione delle identità. Se hai configurato valori predefiniti a livello di parco risorse, la configurazione viene riconciliata con quella predefinita. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni predefinite a livello di parco risorse.
  4. Nel menu a discesa Provider di identità, scegli come configurare il cluster. Se il cluster ha una configurazione esistente di GKE Identity Service, puoi scegliere di aggiornarla. Se un cluster registrato esistente ha una configurazione del servizio di identità GKE che vuoi utilizzare, puoi scegliere di copiarla nei cluster selezionati. Per creare una configurazione completamente nuova, segui le istruzioni per il provider scelto, come descritto nella sezione successiva.

Imposta i dettagli del provider

I dettagli del provider che devi aggiungere dipendono dal tipo di provider di identità che vuoi utilizzare per la configurazione.

OIDC

  1. Seleziona New Open ID Connect per creare una nuova configurazione OIDC.
  2. Specifica il nome da 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 al momento della registrazione di GKE Identity Service con il tuo provider nel campo Client ID.
  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 Issuer URL (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 da 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 al momento della registrazione di GKE Identity Service con il tuo provider nel campo Client ID.
  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 nel 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 da 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. Tocca Avanti.
  4. Specifica il nome host (obbligatorio), il tipo di connessione LDAP e il certificato CA codificato in 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 l'attributo nome distinto, filtro e 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 che devi 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.

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 della piattaforma al momento della registrazione, generalmente nel formato http://localhost:PORT/callback.
    • Autorità di certificazione (facoltativa): se fornita dall'amministratore di piattaforma, una stringa di certificato con codifica PEM per il provider di identità.
    • (Facoltativo) Dichiarazione di gruppo: la rivendicazione JWT (nome del campo) utilizzata dal provider per restituire i gruppi di sicurezza di un account.
    • (Facoltativo) Prefisso gruppo: 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. Potrebbe essere necessario impostare questa opzione se, ad esempio, il 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.
    • Ambiti (facoltativo): 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.
    • (Facoltativo) Rivendicazione dell'utente: la rivendicazione JWT (nome del campo) che il tuo fornitore utilizza per identificare un account. Se non specifichi alcun valore qui, GKE Identity Service utilizza "sub ", ovvero l'attestazione dello User-ID utilizzata da molti provider. Puoi scegliere altre attestazioni, ad esempio "email" o "nome", a seconda del provider OpenID. Le rivendicazioni diverse da "email" sono precedute dal prefisso dell'URL dell'emittente per evitare conflitti di denominazione.
    • Prefisso utente (facoltativo): il prefisso da anteporre alle rivendicazioni 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 parametri Chiave e Valore. Fai clic su Aggiungi parametro per aggiungere altri parametri, se necessario.
    • Attiva token di accesso (facoltativo): se attivato, consente il supporto di gruppi 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 della piattaforma al momento della registrazione, generalmente nel formato http://localhost:PORT/callback.
    • (Facoltativo) Rivendicazione dell'utente: la rivendicazione JWT (nome del campo) che il tuo fornitore utilizza per identificare un account. Se non specifichi alcun valore qui, GKE Identity Service utilizza un valore dell'ordine "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. Potrebbe essere necessario impostare questa opzione se, ad esempio, il 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.

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. Questa operazione installa GKE Identity Service se necessario (solo cluster EKS, nei cluster GKE è già installato GKE Identity Service per impostazione predefinita) e applica la configurazione del client sui cluster selezionati.

gcloud

Creare il file di configurazione

GKE Identity Service utilizza un tipo di risorsa personalizzata (CRD) Kubernetes denominata 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 seguenti sezioni 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 saperne di più su quando utilizzare oidc o azuread, consulta Configurazioni specifiche per i 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 nell'ancoraggio authentication nello stesso formato della configurazione precedente. La tabella seguente descrive i campi degli oggetti ClientConfig oidc e azuread. La maggior parte dei campi è facoltativa. I campi che devi 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 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. String
certificateAuthorityData No Se fornita dall'amministratore della piattaforma, una stringa di certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come singola riga. String
clientID L'identificatore client restituito durante la registrazione di GKE Identity Service con il tuo provider. String
clientSecret Il client secret restituito durante la registrazione di GKE Identity Service con il tuo provider. String
deployCloudConsoleProxy No Specifica se 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. Il valore predefinito è false. Booleano
extraParams No Parametri chiave=valore aggiuntivi da inviare al provider di identità, specificati come elenco separato da virgole; ad esempio "prompt=consent,access_type=offline". Elenco delimitato 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. In questo modo puoi utilizzare i gruppi di sicurezza per l'autorizzazione se hai un provider (come Okta) che fornisce attestazioni di gruppi da questo endpoint. Se non viene configurato, viene considerato false. Booleano
groupsClaim No L'attestazione JWT (nome del campo) che il provider utilizza per restituire i gruppi di sicurezza di un account. String
groupPrefix No Il prefisso che vuoi 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). String
issuerURI L'URI in cui vengono effettuate 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 da gcloud CLI e specificati dall'amministratore della piattaforma al momento della registrazione, generalmente 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 del campo) che il tuo provider utilizza per identificare un account utente. Se non specifichi alcun valore qui, GKE Identity Service utilizza "sub ", ovvero l'attestazione dello User-ID utilizzata da molti provider. Puoi scegliere altre attestazioni, ad esempio "email" o "nome", a seconda del provider OpenID. Le rivendicazioni diverse da "email" sono precedute dal prefisso dell'URL dell'emittente per evitare conflitti di denominazione. String
userPrefix No Il prefisso che vuoi anteporre alle rivendicazioni degli utenti per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito. String
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 è anche noto come dominio principale. Per maggiori dettagli su come trovare questi valori, vedi Trovare l'ID tenant e il nome di dominio principale di Microsoft Azure AD. String
proxy No Indirizzo del server proxy da utilizzare per connettersi al provider di identità, se applicabile. Potrebbe essere necessario impostare questa opzione se, ad esempio, il 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. String

SAML

Il seguente file mostra una configurazione di 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 saml ClientConfig. I campi che devi 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 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. String
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 codificati in base64 standard e in formato PEM. Sono supportati solo un massimo di due certificati per facilitare la rotazione dei certificati del provider di identità. String
userAttribute No Nome dell'attributo nella risposta SAML contenente il nome utente. String
groupsAttribute No Nome dell'attributo nella risposta SAML contenente le informazioni sul gruppo dell'utente. String
userPrefix No Il prefisso che vuoi anteporre alle rivendicazioni degli utenti per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito. String
groupPrefix No Il prefisso che vuoi 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). String
attributeMapping No La mappatura di attributi utente aggiuntivi. String
certificateAuthorityData No Se fornita dall'amministratore della piattaforma, una stringa di certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come singola riga. String
preferredAuthentication No Nome del metodo di autenticazione preferito configurato nel cluster. String

LDAP

Il seguente file mostra una configurazione di 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 nell'oggetto ldap ClientConfig. I campi che devi 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 String
API
host Nome host o indirizzo IP del server LDAP. La porta è facoltativa e, se non specificata, il valore predefinito sarà 389. Ad esempio, ldap.server.example.com o 10.10.10.10:389. String
connectionType Tipo di connessione LDAP da usare per connettersi al server LDAP. Se starttls o ldaps è specificato, il campo certificateAuthorityData non deve essere vuoto. String
certificateAuthorityData Obbligatorio per alcuni 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. String
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 inserito. Questo viene utilizzato per trovare l'utente nel database LDAP, ad esempio (<LoginAttribute>=<username>), ed è combinato con il campo del filtro facoltativo. Il valore predefinito è userPrincipalName. String
filtra no Filtro facoltativo da applicare per cercare l'utente. Questa opzione può essere utilizzata per limitare ulteriormente gli account utente autorizzati ad accedere. Se non specificato, il valore predefinito è (objectClass=User). String
identifierAttribute no Determina quale attributo utilizzare come identità dell'utente dopo l'autenticazione. È diverso dal campo loginAttribute per consentire agli utenti di accedere con un nome utente, ma il loro identificatore effettivo è un indirizzo email o un DN (DN) completo. Ad esempio, l'impostazione di loginAttribute su sAMAccountName e di identifierAttribute su userPrincipalName consente a un utente di accedere come bsmith, ma i criteri RBAC effettivi per l'utente saranno scritti come bsmith@example.com. Si consiglia di utilizzare userPrincipalName poiché è univoco per ogni utente. Se non specificato, il valore predefinito è userPrincipalName. String
gruppo (campo facoltativo)
baseDN La posizione nel sottoalbero della directory LDAP in cui cercare le voci dei gruppi. String
filtra 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). String
identifierAttribute no Il nome che identifica ogni gruppo a cui appartiene un utente. Ad esempio, se questo valore è impostato su distinguishedName, gli RBAC e le altre aspettative del gruppo devono essere scritti come DN completi. Se non specificato, il valore predefinito è distinguishedName. String
serviceAccount/simpleBindCredentials
dn Il nome distinto dell'utente dell'account di servizio. String
password La password dell'utente dell'account di servizio. String

Abilita GKE Identity Service

Puoi anche abilitare GKE Identity Service con una configurazione predefinita a livello di parco risorse. Utilizzando questa configurazione, la configurazione specificata viene applicata automaticamente a ogni nuovo cluster registrato nel parco risorse. Per saperne di più sulle configurazioni predefinite a livello di parco risorse, consulta Configurare le impostazioni predefinite a livello di parco risorse. Per abilitare GKE Identity Service per il tuo progetto, esegui questo comando:

gcloud container fleet identity-service enable

Viene creata una nuova istanza del controller del servizio GKE Identity per gestire il ciclo di vita del servizio GKE Identity nei cluster del tuo parco risorse. Devi eseguire questo comando una sola volta per progetto per utilizzare GKE Identity Service con tutti i cluster supportati registrati nel parco risorse di progetti.

Applica la configurazione a un cluster

Per installare GKE Identity Service se necessario (solo cluster EKS, nei cluster GKE è 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 tuo cluster all'interno del parco risorse. Quando viene eseguito questo comando, la configurazione viene gestita dal controller GKE Identity Service. Eventuali modifiche locali apportate alla configurazione del client del servizio identità GKE vengono riconciliate dal controller con la configurazione specificata in questa configurazione.

Questo consente al servizio di identità GKE di recuperare le informazioni di Google Gruppi per gli account utente che accedono con il loro ID Google. Questa configurazione è applicabile a GKE su VMware e Google Distributed Cloud Virtual for Bare Metal a partire dalla versione GKE Enterprise 1.13. Per saperne di più sulla funzionalità di Google Gruppi, vedi Configurare il gateway di connessione con Google Gruppi.

Tieni presente che se nel tuo cluster è già presente una configurazione per qualsiasi opzione di autenticazione, si applica quanto segue:

  • Se esistono già configurazioni a livello di cluster per i provider OIDC, l'applicazione al cluster di una configurazione del servizio di identità GKE a livello di parco risorse 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. Devi rimuovere la configurazione del provider esistente per applicare la configurazione a livello di parco risorse.

Se non vuoi più che il controller del servizio identità GKE gestisca la tua configurazione, ad esempio se vuoi utilizzare un'opzione o un'opzione di autenticazione diversa, puoi disabilitare questa funzionalità seguendo le istruzioni riportate in Disabilitare la gestione del servizio GKE Identity.

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'uso di questa configurazione consente a GKE Identity Service di ottenere informazioni su utenti e gruppi da Azure AD e consente di impostare il controllo degli controllo dell'accesso basato sui ruoli di Kubernetes (RBAC) in base ai gruppi. Tuttavia, l'uso di questa configurazione limita il recupero di circa 200 gruppi per utente.

Se devi recuperare più di 200 gruppi per utente, consulta le istruzioni per Azure AD (Advanced).

...
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 le 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 ancoraggio 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 GKE su VMware e Google Distributed Cloud Virtual for Bare Metal.

Okta

Di seguito viene mostrato come configurare l'autenticazione utilizzando sia utenti che gruppi con Okta come provider di identità. Questa configurazione consente a GKE Identity Service di recuperare le rivendicazioni di utenti e gruppi 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 impostazioni predefinite a livello di parco risorse

Puoi abilitare il servizio di identità GKE con una configurazione predefinita a livello di parco risorse. Utilizzando questa configurazione, per ogni nuovo cluster GKE su Google Cloud registrato durante la creazione del cluster o per ogni cluster GKE, GKE Identity Service sarà abilitato sul cluster con la configurazione da te specificata. Per saperne di più sulla gestione della configurazione a livello di parco risorse, consulta 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 come indicato nell'articolo Crea il file di configurazione.
  2. Abilita il servizio di identità GKE con una configurazione predefinita a livello di parco risorse:

    gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
    
  3. Per modificare la configurazione predefinita a livello di parco risorse esistente o aggiungerne una se GKE Identity Service è già abilitato nel tuo parco risorse senza una configurazione predefinita a livello di parco risorse, esegui questo comando:

    gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
    
  4. I cluster registrati prima della configurazione predefinita a livello di parco risorse non ereditano automaticamente la configurazione predefinita. Se vuoi applicare la configurazione predefinita a un cluster che appartiene a questa classe di cluster, esegui questo comando:

    gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
    
  5. Per rimuovere la configurazione predefinita a livello di parco risorse, esegui questo comando:

    gcloud container fleet identity-service delete --fleet-default-member-config
    

Verificare la configurazione del servizio di identità

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

Console

  1. Nella console Google Cloud, vai alla pagina Funzionalità di GKE Enterprise.

    Vai a Gestione delle funzionalità di GKE Enterprise

    Tutte le funzionalità attivate sono indicate come Attivate nell'elenco Funzionalità.

  2. Fai clic su DETTAGLI nella funzionalità Identity Service. Un riquadro dei dettagli mostra lo stato dei cluster registrati.

gcloud

Esegui questo comando:

gcloud container fleet identity-service describe

Configurare l'accesso degli utenti

Dopo aver configurato i cluster, continua a configurare l'accesso utente.

Disabilita la gestione dei servizi di identità GKE a livello di parco risorse

Se non vuoi più che Google Cloud gestisca la configurazione e il ciclo di vita del servizio GKE Identity, puoi disabilitare questa funzionalità. La disabilitazione della gestione a livello di parco risorse non rimuove GKE Identity Service o la configurazione dell'autenticazione dal cluster, quindi gli utenti possono comunque autenticarsi nel cluster utilizzando il provider di identità di terze parti configurato. Tuttavia, se apporti modifiche manuali locali sul cluster alla configurazione o alle risorse di GKE Identity Service, queste modifiche non vengono più riconciliate con uno stato corrispondente a un'unica fonte attendibile.

Disabilita la gestione a livello di parco risorse per un cluster

Per disabilitare la gestione a livello di parco risorse per un cluster, esegui questo comando:

gcloud container fleet identity-service delete --membership=CLUSTER_NAME

dove, CLUSTER_NAME è il nome univoco del tuo cluster all'interno del parco risorse.

Disattiva la gestione a livello di parco risorse per un parco risorse

Per disabilitare la gestione dei servizi di identità GKE a livello di parco risorse per il tuo parco risorse:

Console

  1. Nella console Google Cloud, vai alla pagina Funzionalità di GKE Enterprise.

    Vai alle funzionalità di GKE Enterprise

  2. Nella tabella Funzionalità, fai clic su Dettagli nella riga Servizio di identità, quindi fai clic su Disabilita servizio identità GKE nel riquadro visualizzato.

gcloud

Esegui questo comando:

gcloud container fleet identity-service disable

Dopo aver disabilitato la funzionalità per il tuo parco risorse, non puoi più visualizzare o aggiornare lo stato del servizio GKE Identity di alcun cluster nella console Google Cloud o utilizzare gcloud.

Risoluzione dei problemi

Se riscontri problemi durante la configurazione, consulta la guida alla risoluzione dei problemi.