Connecter Spanner à un cluster GKE

Cette page explique comment accorder à votre compte Google Kubernetes Engine (GKE) les autorisations du cluster à accéder à votre base de données Spanner.

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

Votre cluster GKE peut accéder à l'API Spanner via Workload Identity : Workload Identity 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 paramètres par défaut de l'application Identifiants pour vos pods, de sorte que vous n'ayez pas à configurer chacun d'entre eux pour qu'ils utilisent identifiants utilisateur.

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

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

Activer Workload Identity

Si vous ne l'avez pas déjà fait, activez Workload Identity pour votre cluster GKE. Vous pouvez activer Workload Identity cluster en créant un pool de nœuds Vous pouvez également activer Workload Identity sur un pool de nœuds existant. Clusters GKE Autopilot Workload Identity est activé par défaut. Pour en savoir plus, consultez Activez Workload Identity.

Authentifier la connexion à Spanner avec Workload Identity

Configurez vos applications pour qu'elles s'authentifient auprès de Google Cloud à l'aide de Workload Identity.

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

  2. Créez une stratégie d'autorisation IAM qui accorde les autorisations de Cloud Spanner aux rôles IAM ServiceAccount. L'exemple suivant accorde à la base de données Spanner Rôle utilisateur (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 du projet cluster GKE.
    • PROJECT_NUMBER: valeur numérique Numéro de projet Google Cloud.
    • NAMESPACE: espace de noms Kubernetes contient le compte de service.
    • KSA_NAME: nom du ServiceAccount.

Connecter des bases de données Spanner

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

Étape suivante