Connetti Spanner a un cluster GKE

Questa pagina descrive come concedere al cluster Google Kubernetes Engine (GKE) le autorizzazioni per accedere al database Spanner.

GKE è un servizio Kubernetes gestito che semplifica il deployment e la gestione delle applicazioni containerizzate. Utilizzando GKE e Spanner insieme, puoi sfruttare la scalabilità, l'affidabilità, la sicurezza e l'alta disponibilità nel livello della tua applicazione e nel tuo database.

Il tuo cluster GKE può accedere all'API Spanner tramite Workload Identity. Workload Identity consente a un account di servizio Kubernetes nel cluster di agire come account di servizio IAM. L'account di servizio IAM fornisce le credenziali predefinite dell'applicazione per i pod, in modo che tu non debba configurare ciascun pod per utilizzare le tue credenziali utente personali.

Dopo aver configurato le applicazioni per l'autenticazione mediante Workload Identity, puoi utilizzare le librerie client di Spanner per eseguire query sui database Spanner. Puoi anche eseguire la migrazione delle applicazioni ai pool di nodi GKE.

Per creare una connessione in un ambiente di esempio, prova il codelab Connecting Spanner with GKE Autopilot.

Abilita Workload Identity

Se non lo hai già fatto, abilita Workload Identity per il tuo cluster GKE. Puoi abilitare Workload Identity su un nuovo cluster creando un nuovo pool di nodi oppure abilitare Workload Identity in un pool di nodi esistente. Nei cluster Autopilot di GKE, Workload Identity è abilitato per impostazione predefinita. Per maggiori informazioni, consulta Abilitare Workload Identity.

Autentica la connessione a Spanner con Workload Identity

Configura le tue applicazioni per l'autenticazione in Google Cloud utilizzando Workload Identity.

  1. Assicurati che il pod GKE utilizzi un oggetto ServiceAccount di Kubernetes, come descritto in Configurare autorizzazione e entità.

  2. Crea un criterio di autorizzazione IAM che concede i ruoli IAM di Spanner necessari all'oggetto ServiceAccount di Kubernetes. Nell'esempio seguente viene concesso il ruolo Utente database Spanner (roles/spanner.databaseUser):

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME \
          --role=roles/spanner.databaseUser \
          --condition=None
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto del cluster GKE.
    • PROJECT_NUMBER: il numero numerico del progetto Google Cloud.
    • NAMESPACE: lo spazio dei nomi Kubernetes che contiene il ServiceAccount.
    • KSA_NAME: il nome dell'account di servizio.

Connetti database Spanner

Dopo aver autenticato il pod dell'applicazione, puoi utilizzare una delle librerie client di Spanner per eseguire query sul database Spanner.

Passaggi successivi