Connecter Spanner à un cluster GKE

Cette page explique comment accorder à votre cluster Google Kubernetes Engine (GKE) des autorisations d'accès à votre base de données Spanner.

GKE est un service Kubernetes géré qui facilite le déploiement et la gestion des applications conteneurisées. En utilisant GKE et Spanner ensemble, vous pouvez profiter de la scalabilité, de la fiabilité, de la sécurité et de la haute disponibilité dans votre couche application et dans votre couche de base de données.

Votre cluster GKE peut accéder à l'API Spanner via la fédération d'identité de charge de travail pour GKE. La fédération d'identité de charge de travail pour GKE permet à un compte de service Kubernetes de votre cluster d'agir en tant que compte de service IAM. Le compte de service IAM fournit les identifiants par défaut de l'application pour vos pods. Vous n'avez donc pas besoin de configurer chaque pod pour qu'il utilise vos identifiants utilisateur personnels.

Une fois que vous avez configuré vos applications pour qu'elles s'authentifient à l'aide de la fédération d'identité de charge de travail pour GKE, vous pouvez utiliser les bibliothèques clientes Spanner pour interroger vos bases de données Spanner. Vous pouvez également migrer vos applications vers vos pools de nœuds GKE.

Pour créer une connexion dans un environnement d'exemple, essayez l'atelier de programmation Connecter Spanner à GKE Autopilot.

Activer la fédération d'identité de charge de travail pour GKE

Si vous ne l'avez pas déjà fait, activez Workload Identity Federation for GKE pour votre cluster GKE. Vous pouvez activer la fédération d'identité de charge de travail pour GKE sur un nouveau cluster en créant un pool de nœuds ou en activant la fédération d'identité de charge de travail pour GKE sur un pool de nœuds existant. La fédération d'identité de charge de travail pour GKE est activée par défaut sur les clusters GKE Autopilot. Pour en savoir plus, consultez la page Activer la fédération d'identité de charge de travail pour GKE.

Authentifier la connexion à Spanner avec Workload Identity Federation for GKE

Configurez vos applications pour qu'elles s'authentifient auprès de Google Cloud à l'aide de la fédération d'identité de charge de travail pour GKE.

  1. Assurez-vous que votre pod GKE utilise un objet ServiceAccount Kubernetes, comme décrit dans la section Configurer l'autorisation et les principaux.

  2. Créez une stratégie d'autorisation IAM qui accorde les rôles IAM Spanner nécessaires à l'objet ServiceAccount Kubernetes. L'exemple suivant accorde le rôle Utilisateur de base de données 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
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID de projet du cluster GKE.
    • PROJECT_NUMBER: numéro numérique du projet Google Cloud.
    • NAMESPACE: espace de noms Kubernetes contenant le compte de service.
    • KSA_NAME: nom du compte de service.

Connecter des bases de données Spanner

Une fois le pod de votre application authentifié, vous pouvez utiliser l'une des bibliothèques clientes Spanner pour interroger votre base de données Spanner.

Étape suivante