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 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 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 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 vos données identifiants utilisateur.
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 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 la fédération d'identité de charge de travail pour GKE
Si vous ne l'avez pas déjà fait, activez la fédération d'identité de charge de travail pour GKE pour votre cluster GKE. Vous pouvez activer la fédération d'identité de charge de travail pour GKE sur une nouvelle cluster en créant un pool de nœuds Vous pouvez également activer la fédération d'identité de charge de travail pour GKE sur un pool de nœuds existant. Clusters GKE Autopilot la fédération d'identité de charge de travail pour GKE est activée par défaut. 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 la fédération d'identité de charge de travail pour 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.
Assurez-vous que votre pod GKE utilise un objet
ServiceAccount
Kubernetes, comme décrit dans la section Configurer l'autorisation et les principaux.Créez une stratégie d'autorisation IAM qui accorde les autorisations de Cloud Spanner aux rôles IAM
ServiceAccount
. 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
- Découvrez comment déployer votre application sur le cluster GKE.
- Découvrez comment déployer votre application avec GKE Autopilot et Spanner.
- Découvrez comment migrer des charges de travail existantes vers la fédération d'identité de charge de travail pour GKE.
- Découvrez les bonnes pratiques SQL.
- intégrer Spanner à d'autres ORM, y compris Hibernate ORM ; gorm et Django ORM.