Associe o Spanner a um cluster do GKE

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.

  1. 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

  2. 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?