Autenticazione cluster Workload Identity

Questo documento descrive come configurare e utilizzare l'autenticazione dei cluster Workload Identity per Google Distributed Cloud (solo software) su bare metal. Anziché le chiavi degli account di servizio, l'autenticazione dei cluster Workload Identity utilizza token di breve durata e la federazione di Workload Identity per creare e proteggere i cluster. Le credenziali di breve durata per l'account di servizio sono sotto forma di token di accesso OAuth 2.0. Per impostazione predefinita, i token di accesso scadono dopo 1 ora, ad eccezione dei token di estrazione delle immagini, che scadono dopo 12 ore.

L'autenticazione del cluster Workload Identity è disponibile solo per i cluster della versione 1.30 e successive.

Al contrario, la modalità con chiave, il metodo standard per creare e proteggere i cluster, utilizza le chiavi degli account di servizio scaricate. Quando crei un cluster autonomo (amministratore, ibrido o autonomo), specifica il percorso delle chiavi scaricate. Le chiavi vengono quindi archiviate come segreti nel cluster e in eventuali cluster di utenti gestiti. Per impostazione predefinita, le chiavi degli account di servizio non scadono e rappresentano un rischio per la sicurezza se non vengono gestite correttamente.

L'autenticazione cluster di Workload Identity offre due vantaggi principali rispetto all'utilizzo delle chiavi dell'account di servizio:

  • Maggiore sicurezza: le chiavi degli account di servizio comportano un rischio per la sicurezza se non vengono gestite correttamente. I token OAuth 2.0 e la Federazione delle identità per i carichi di lavoro sono considerati best practice alternative alle chiavi degli account di servizio. Per ulteriori informazioni sui token degli account di servizio, consulta Credenziali degli account di servizio di breve durata. Per maggiori informazioni sulla federazione di Workload Identity, consulta Federazione di Workload Identity.

  • Manutenzione ridotta: le chiavi dell'account di servizio richiedono una maggiore manutenzione. La rotazione e la protezione regolari di queste chiavi possono rappresentare un onere amministrativo significativo.

Anche se questa funzionalità è in anteprima, sono stati riscontrati alcuni limiti.

Prima di iniziare

Nelle sezioni seguenti, crei gli account di servizio e concedi i ruoli necessari per l'autenticazione del cluster Workload Identity. Le istruzioni di configurazione riportate in questo documento non sostituiscono quelle riportate in Configurare le risorse Google Cloud , ma sono necessarie oltre ai prerequisiti di installazione solo software di Google Distributed Cloud standard. Gli account di servizio richiesti per l'autenticazione dei cluster Workload Identity sono simili agli account di servizio descritti in Configurare le risorse Google Cloud , ma hanno un nome univoco, quindi non interferiscono con i cluster che utilizzano le chiavi degli account di servizio predefinite.

Questa pagina è rivolta ad amministratori, architetti e operatori che configurano, monitorano e gestiscono il ciclo di vita dell'infrastruttura tecnologica di base. Per approfondire i ruoli comuni e le attività di esempio a cui facciamo riferimento nei contenutiGoogle Cloud , consulta Ruoli e attività comuni degli utenti di GKE Enterprise.

La tabella seguente descrive gli account di servizio richiesti per l'autenticazione del cluster Workload Identity:

Service account Finalità Ruoli
ADMIN_SA Utilizza questo account di servizio per generare token. Ogni token ha i privilegi associati ai ruoli dell'account di servizio. roles/gkehub.admin
roles/logging.admin
roles/monitoring.admin
roles/monitoring.dashboardEditor
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountTokenCreator
baremetal-controller L'agente Connect utilizza questo account di servizio per mantenere una connessione tra il cluster e Google Cloud e per registrare i cluster in un parco risorse. Questo account di servizio aggiorna anche i token per l'account di servizio baremetal-gcr. roles/gkehub.admin
roles/monitoring.dashboardEditor
roles/serviceusage.serviceUsageViewer
baremetal-cloud-ops L'agente Stackdriver utilizza questo account di servizio per esportare log e metriche dai cluster in Cloud Logging e Cloud Monitoring. roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/monitoring.viewer
roles/serviceusage.serviceUsageViewer
roles/kubernetesmetadata.publisher
baremetal-gcr Google Distributed Cloud utilizza questo account di servizio per scaricare immagini container da Container Registry. Nessuno

Crea e configura gli account di servizio per l'autenticazione del cluster Workload Identity

Le sezioni seguenti contengono istruzioni per creare gli account di servizio richiesti e concedervi i ruoli necessari per l'autenticazione del cluster Workload Identity. Per un elenco dei service account e dei relativi ruoli obbligatori, consulta la tabella nella sezione precedente.

Creazione di account di servizio

Per creare gli account di servizio per l'autenticazione del cluster Workload Identity, segui questi passaggi:

  1. Nella workstation di amministrazione, accedi a Google Cloud CLI:

    gcloud auth login
    
  2. Se vuoi, crea l'account di servizio amministrativo:

    Il nome dell'account di servizio ADMIN_SA è arbitrario. Puoi anche utilizzare un account di servizio esistente, se dispone dei ruoli identificati nella tabella della sezione precedente, ma questa opzione non è consigliata perché viola il principio del privilegio minimo.

    gcloud iam service-accounts create ADMIN_SA \
        --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

  3. Crea gli account di servizio standard per l'autenticazione del cluster Workload Identity:

    Gli account di servizio standard per l'autenticazione dei cluster Workload Identity hanno nomi predeterminati che possono essere personalizzati, se vuoi.

    gcloud iam service-accounts create baremetal-controller \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-cloud-ops \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-gcr \
        --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Aggiungere associazioni di criteri di Identity and Access Management per gli account di servizio

  1. Aggiungi associazioni di criteri IAM per i ruoli richiesti per l'account di servizio ADMIN_SA:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    
  2. Aggiungi associazioni di criteri IAM per i ruoli richiesti per l'account di servizio baremetal-controller:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
  3. Aggiungi associazioni di criteri IAM per i ruoli richiesti per l'account di servizio baremetal-cloud-ops:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.logWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.metricWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/opsconfigmonitoring.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/stackdriver.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.viewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/kubernetesmetadata.publisher
    
  4. Concedi all'account di servizio baremetal-controller la possibilità di generare token di accesso per conto dell'account di servizio baremetal-controller:baremetal-gcr

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    

Configurare la federazione delle identità per i carichi di lavoro per i tuoi cluster

Per fornire Google Cloud l'accesso con la federazione delle identità per i carichi di lavoro per GKE, crei un Google Cloud criterio di autorizzazione IAM che concede l'accesso a una risorsa specifica a un principale corrispondente all'identità della tua Google Cloud applicazione. In questo caso, la federazione delle identità di carico di lavoro concede accesso a operatori specifici nel cluster. Per ulteriori informazioni su Workload Identity Federation per GKE, consulta Workload Identity Federation nella documentazione di IAM.

Aggiungi associazioni di criteri IAM per l'operatore del cluster

I seguenti comandi concedono all'account di servizio Kubernetes anthos-cluster-operator la possibilità di rubare l'identità dell'account di servizio baremetal-controller e di interagire con le risorse Google Cloud per conto del cluster:

  1. Per ogni cluster configurato per l'autenticazione cluster Workload Identity (o pianificato per l'utilizzo dell'autenticazione cluster Workload Identity), incluso il cluster di bootstrap, concedi a anthos-cluster-operator nel cluster la possibilità di rubare l'identità dell'account servizio baremetal-controller:

    Nel seguente comando, principalSet è costituito dal pool di identità di carico di lavoro e da un account di servizio Kubernetes, anthos-cluster-operator, nello spazio dei nomi kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/anthos-cluster-operator \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

  2. Verifica le associazioni dei criteri per l'account di servizio baremetal-controller:

    gcloud iam service-accounts get-iam-policy \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com
    

    La risposta dovrebbe essere simile alla seguente:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/anthos-cluster-operator
      role: roles/iam.workloadIdentityUser
    etag: BwYoN3QLig0=
    version: 1
    

Aggiungi associazioni di criteri IAM per gli operatori di Google Cloud Observability

I seguenti comandi concedono ai seguenti account di servizio Kubernetes di Google Cloud Observability la possibilità di rubare l'identità dell'account di servizio baremetal-cloud-ops e di interagire con le risorse Google Cloud per conto del cluster:

  • cloud-audit-logging
  • gke-metrics-agent
  • kubestore-collector
  • metadata-agent
  • stackdriver-log-forwarder
  1. Per ogni cluster configurato per l'autenticazione del cluster Workload Identity (o pianificato per l'utilizzo dell'autenticazione del cluster Workload Identity), incluso il cluster di bootstrap, concedi agli operatori di Google Cloud Observability nel cluster la possibilità di rubare l'identità dell'account servizio baremetal-cloud-ops:

    In ciascuno dei seguenti comandi, principalSet è costituito dal pool di identità dei carichi di lavoro e da un account di servizio Kubernetes, ad esempio cloud-audit-logging, nello spazio dei nomi kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/cloud-audit-logging \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/gke-metrics-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/kubestore-collector \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/metadata-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/stackdriver-log-forwarder \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
  2. Verifica le associazioni dei criteri per l'account di servizio baremetal-cloud-ops:

    gcloud iam service-accounts get-iam-policy \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
    

    La risposta dovrebbe essere simile alla seguente:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/stackdriver-log-forwarder
      role: roles/iam.workloadIdentityUser
    etag: BwYhT4gL-dY=
    version: 1
    

Configurazione cluster

La differenza di configurazione del cluster più evidente per i cluster che utilizzano l'autenticazione del cluster Workload Identity è che non devi specificare i percorsi delle chiavi dell'account di servizio scaricate.

  1. Quando compili le impostazioni del cluster nel file di configurazione, lascia vuoti i percorsi delle chiavi dell'account di servizio nella sezione delle credenziali, come mostrato nell'esempio seguente:

    gcrKeyPath:
    sshPrivateKeyPath: /home/USERNAME/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath:
    gkeConnectRegisterServiceAccountKeyPath:
    cloudOperationsServiceAccountKeyPath:
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
      ...
    
  2. Se vuoi, imposta nomi personalizzati per gli account di servizio di autenticazione del cluster Workload Identity:

    La specifica di nomi personalizzati ti consente di utilizzare gli account di servizio esistenti. Se specifichi lo stesso nome personalizzato per più di un account di servizio, puoi consolidare in meno account di servizio.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
      annotations:
        baremetal.cluster.gke.io/controller-service-account: "CUSTOM_CONTROLLER_GSA"
        baremetal.cluster.gke.io/cloud-ops-service-account: "CUSTOM_CLOUD_OPS_GSA"
        baremetal.cluster.gke.io/gcr-service-account: "CUSTOM_GCR_GSA"
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
        ...
    

Funzionamento dei cluster

Quando è tutto pronto per creare, eseguire l'upgrade o eliminare un cluster che utilizza l'autenticazione cluster di Workload Identity, segui questi passaggi:

  1. Accedi a Google Cloud CLI:

    gcloud auth login
    
  2. Nella workstation di amministrazione, crea e scarica una chiave per l'account di servizio ADMIN_SA:

    gcloud iam service-accounts keys create TMP_KEY_FILE_PATH \
        --iam-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com
    

    Sostituisci TMP_KEY_FILE_PATH con il percorso, incluso il nome file, del file della chiave scaricato.

  3. Autorizza l'accesso a Google Cloud con l'account di servizio ADMIN_SA:

    gcloud auth activate-service-account ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --key-file=TMP_KEY_FILE_PATH
    
  4. Elimina il file della chiave JSON scaricato:

    rm TMP_KEY_FILE_PATH
    
  5. Nella workstation di amministrazione, crea una variabile di ambiente GCP_ACCESS_TOKEN con il valore di un token di accesso creato dall'account di servizio ADMIN_SA:

    export GCP_ACCESS_TOKEN=$(gcloud auth print-access-token \
        --impersonate-service-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)
    

    Per impostazione predefinita, il token di accesso ha una durata di 1 ora.

  6. Verifica che il token sia generato dall'account di servizio ADMIN_SA con la scadenza corretta:

    curl "https://oauth2.googleapis.com/tokeninfo?access_token=$GCP_ACCESS_TOKEN"
    

    La risposta deve includere righe simili alle seguenti:

    ...
    "expires_in": "3582",
    "email": "ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)",
    ...
    

    Il valore di scadenza è in secondi e deve essere inferiore a 3600, indicando che il token scade tra meno di un'ora.

  7. Esegui un comando bmctl per creare, eseguire l'upgrade o eliminare un cluster:

    Se bmctl rileva che la variabile di ambiente GCP_ACCESS_TOKEN è stata impostata, esegue la convalida del token. Se il token è valido, bmctl lo utilizza per le operazioni del cluster.

    Per i cluster che utilizzano l'autenticazione del cluster Workload Identity, i comandi seguenti richiedono che la variabile di ambiente GCP_ACCESS_TOKEN sia impostata su un token di accesso valido e attivo:

    • bmctl create cluster -c CLUSTER_NAME
    • bmctl reset cluster -c CLUSTER_NAME
    • bmctl upgrade cluster -c CLUSTER_NAME

Limitazioni

Mentre l'autenticazione dei cluster Workload Identity è in anteprima, le seguenti funzionalità non sono supportate:

  • Utilizzo di un server proxy
  • Controlli di servizio VPC

Passaggi successivi