Esta página descreve como conceder permissões do cluster do Google Kubernetes Engine (GKE) para aceder à sua base de dados do Spanner.
O GKE é um serviço Kubernetes gerido que facilita a implementação e a gestão de aplicações em contentores. Ao usar o GKE e o Spanner em conjunto, pode tirar partido da escalabilidade, da fiabilidade, da segurança e da elevada disponibilidade na camada de aplicação e na camada de base de dados.
O seu cluster do GKE pode aceder à API Spanner através da Workload Identity Federation para o GKE. A Workload Identity Federation para o GKE permite que uma conta de serviço do Kubernetes no seu cluster atue como uma conta de serviço da IAM. A conta de serviço do IAM fornece credenciais predefinidas da aplicação para os seus pods, para que não tenha de configurar cada pod para usar a sua credencial de utilizador pessoal.
Depois de configurar as suas aplicações para autenticação através da Workload Identity Federation para o GKE, pode usar as bibliotecas de cliente do Spanner para consultar as suas bases de dados do Spanner. Também pode migrar as suas aplicações para os conjuntos de nós do GKE.
Para criar uma ligação num ambiente de exemplo, experimente o codelab de ligação do Spanner ao GKE Autopilot.
Ative a federação de identidades da carga de trabalho para o GKE
Se ainda não o fez, ative a Workload Identity Federation para o GKE para o seu cluster do GKE. Pode ativar a federação de identidades da carga de trabalho para o GKE num novo cluster criando um novo conjunto de nós ou pode ativar a federação de identidades da carga de trabalho para o GKE num conjunto de nós existente. Os clusters do GKE Autopilot têm a federação de identidade da carga de trabalho para o GKE ativada por predefinição. Para mais informações, consulte o artigo Ative a Workload Identity Federation para o GKE.
Autentique a ligação ao Spanner com a federação de identidade da carga de trabalho para o GKE
Configure as suas aplicações para autenticar no Google Cloud usando a Federação de identidades de cargas de trabalho para o GKE.
Certifique-se de que o seu pod do GKE usa um objeto do Kubernetes, conforme descrito em Configure a autorização e os principais.
ServiceAccount
Crie uma política de permissão da IAM que conceda as funções da IAM do Spanner necessárias ao objeto
ServiceAccount
do Kubernetes. O exemplo seguinte concede a função de utilizador da base de dados do 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
Substitua o seguinte:
PROJECT_ID
: o ID do projeto do cluster do GKE.PROJECT_NUMBER
: o número do projeto Google Cloud .NAMESPACE
: o namespace do Kubernetes que contém a ServiceAccount.KSA_NAME
: O nome da ServiceAccount.
Associe bases de dados do Spanner
Depois de o pod da aplicação ser autenticado, pode usar uma das bibliotecas de cliente do Spanner para consultar a base de dados do Spanner.
O que se segue?
- Saiba como implementar a sua aplicação no cluster do GKE.
- Saiba como implementar a sua aplicação através do GKE Autopilot e do Spanner.
- Saiba como migrar cargas de trabalho existentes para a Workload Identity Federation para o GKE.
- Saiba mais sobre as práticas recomendadas de SQL.
- Integre o Spanner com outros ORMs, incluindo o Hibernate ORM, gorm e Django ORM.