Configura i cluster per GKE Identity Service con SAML

Questo documento è rivolto agli amministratori dei cluster o agli operatori di applicazioni che vogliono configurare GKE Identity Service su singoli cluster, consentendo a sviluppatori e altri utenti di accedere ai cluster utilizzando i propri dati di identità esistenti da un provider Security Assertion Markup Language (SAML). La guida presuppone che tu abbia letto la panoramica del servizio di identità GKE. Le istruzioni riportate in questo documento presuppongono che Identity Service for GKE sia già stato registrato presso il tuo provider di identità come applicazione client.

Prima di iniziare

  • Prima di iniziare la configurazione, assicurati che l'amministratore della piattaforma ti abbia fornito tutte le informazioni necessarie riportate in Registrare GKE Identity Service con il tuo provider.
  • Assicurati di avere installato i seguenti strumenti a riga di comando:

    • Utilizza la versione 466.0.0 o successive 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, segui queste istruzioni.

    Se utilizzi Cloud Shell come ambiente shell per interagire con Google Cloud, questi strumenti vengono installati automaticamente.

  • Assicurati di aver inizializzato gcloud CLI per l'utilizzo con il progetto in cui sono registrati i cluster.

Configura il cluster

GKE Identity Service utilizza un tipo speciale di risorsa personalizzata (CRD) Kubernetes per configurare i cluster, chiamato ClientConfig, con campi per informazioni sull'identity provider e sui parametri necessari per restituire le informazioni utente.

kubectl

Per modificare il ClientConfig predefinito, assicurati di poterti connettere al cluster utilizzando kubectl ed esegui il seguente comando:

kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public

Sostituisci KUBECONFIG_PATH con il percorso del file kubeconfig del tuo cluster, ad esempio $HOME/.kube/config.

Un editor di testo carica la risorsa ClientConfig del cluster. Aggiungi l'oggetto saml come indicato nello snippet.

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: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
     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: <>

# Rest of the resource is managed by Google. DO NOT MODIFY.
...

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 Identity Service for GKE.

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. 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 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 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. Questo serve 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, si tratta di una stringa di certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come una singola riga. Stringa
preferredAuthentication No Nome del metodo di autenticazione preferito configurato nel cluster. Stringa

Dopo aver completato ClientConfig, salva il file, che aggiorna ClientConfig sul cluster. Se hai commesso errori di sintassi, ti viene chiesto di modificare di nuovo la configurazione per correggerli.

Passaggi successivi

Dopo aver applicato la configurazione, continua a configurare l'accesso degli utenti ai cluster.