Connecter Spanner à un cluster GKE

Cette page explique comment accorder à votre cluster Google Kubernetes Engine (GKE) les 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 bénéficier de l'évolutivité, de la fiabilité, de la sécurité et de 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 des 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 d'utilisateur personnels.

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

Pour créer une connexion dans un exemple d'environnement, suivez l'atelier de programmation Connecter Spanner avec 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 sur un nouveau cluster en créant un pool de nœuds ou activer Workload Identity sur un pool de nœuds existant. Workload Identity est activé par défaut sur les clusters Autopilot GKE. Pour en savoir plus, consultez la page Activer Workload Identity.

Authentifier la connexion à Spanner avec Workload Identity

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

  1. Assurez-vous que votre pod GKE utilise un objet 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 attribue les rôles IAM Spanner nécessaires à l'objet ServiceAccount de Kubernetes. L'exemple suivant attribue le rôle d'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 de projet Google Cloud numérique.
    • NAMESPACE: espace de noms Kubernetes contenant le ServiceAccount.
    • KSA_NAME: nom du ServiceAccount.

Connecter des bases de données Spanner

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

Étapes suivantes