Questa pagina descrive come concedere al tuo cluster Google Kubernetes Engine (GKE) le autorizzazioni per accedere al tuo 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 di applicazione e nel livello del database.
Il cluster GKE può accedere all'API Spanner tramite Workload Identity Federation for GKE. La federazione delle identità per i carichi di lavoro per GKE consente a un account di servizio Kubernetes nel tuo cluster di agire come account di servizio IAM. L'account di servizio IAM fornisce le credenziali predefinite per l'applicazione per i pod, in modo da non dover configurare ogni pod per utilizzare le tue credenziali utente personali.
Dopo aver configurato le applicazioni per l'autenticazione utilizzando la federazione delle identità per i carichi di lavoro per GKE, puoi utilizzare le librerie client di Spanner per eseguire query sui tuoi database Spanner. Puoi anche eseguire la migrazione delle tue applicazioni ai pool di nodi GKE.
Per creare una connessione in un ambiente di esempio, prova il codelab Connessione di Spanner con GKE Autopilot.
Abilita Workload Identity Federation per GKE
Se non l'hai già fatto, abilita Workload Identity Federation for GKE per il tuo cluster GKE. Puoi abilitare Workload Identity Federation for GKE in un nuovo cluster creando un nuovo pool di nodi o puoi abilitare Workload Identity Federation for GKE in un pool di nodi esistente. I cluster GKE Autopilot hanno la federazione delle identità per i carichi di lavoro per GKE abilitata per impostazione predefinita. Per ulteriori informazioni, consulta Abilitare Workload Identity Federation per GKE.
Autentica la connessione a Spanner con Workload Identity Federation for GKE
Configura le tue applicazioni per autenticarle Google Cloud utilizzando Workload Identity Federation for GKE.
Assicurati che il pod GKE utilizzi un oggetto Kubernetes
ServiceAccount
come descritto in Configurare l'autorizzazione e i principali.Crea un criterio di autorizzazione IAM che conceda i ruoli IAM Spanner necessari all'oggetto Kubernetes
ServiceAccount
. 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 del 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 del servizio account.
Connettere i 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
- Scopri come eseguire il deployment dell'applicazione nel cluster GKE.
- Scopri come eseguire il deployment dell'applicazione utilizzando GKE Autopilot e Spanner.
- Scopri di più su come eseguire la migrazione dei carichi di lavoro esistenti a Workload Identity Federation per GKE.
- Scopri di più sulle best practice per SQL.
- Integra Spanner con altri ORM, tra cui Hibernate ORM, gorm e Django ORM.