Nesta página, descrevemos como conceder permissões ao cluster do Google Kubernetes Engine (GKE) para acessar o banco de dados do Spanner.
O GKE é um serviço gerenciado do Kubernetes que facilita a implantação e o gerenciamento de aplicativos conteinerizados. Ao usar o GKE e o Spanner juntos, é possível aproveitar a escalonabilidade, a confiabilidade, a segurança e a alta disponibilidade na camada do aplicativo e do banco de dados.
Seu cluster do GKE pode acessar a API Spanner por meio da Identidade da carga de trabalho. A Identidade da carga de trabalho permite que uma conta de serviço do Kubernetes no cluster atue como uma conta de serviço do IAM. A conta de serviço do IAM fornece Application Default Credentials aos pods para que você não precise configurar cada pod para usar a credencial pessoal de usuário.
Depois de configurar seus aplicativos para autenticação usando a Identidade da carga de trabalho, é possível usar as bibliotecas de cliente do Spanner para consultar os bancos de dados do Spanner. Também é possível migrar seus aplicativos para os pools de nós do GKE.
Para criar uma conexão em um ambiente de amostra, tente o codelab Como conectar o Spanner com o Autopilot do GKE.
Ativar a Identidade da carga de trabalho
Ative a Identidade da carga de trabalho para seu cluster do GKE, se ainda não tiver feito isso. É possível ativar a Identidade da carga de trabalho em um novo cluster criando um novo pool de nós ou em um pool de nós atual. Os clusters do Autopilot do GKE têm a Identidade da carga de trabalho ativada por padrão. Para mais informações, consulte Ativar a Identidade da carga de trabalho.
Autenticar a conexão ao Spanner com a Identidade da carga de trabalho
Configure seus aplicativos para autenticação no Google Cloud usando a Identidade da carga de trabalho.
Verifique se o pod do GKE usa um objeto
ServiceAccount
do Kubernetes, conforme descrito em Configurar autorização e principais.Crie uma política de permissão do IAM que conceda os papéis de IAM necessários do Spanner ao objeto
ServiceAccount
do Kubernetes. O exemplo a seguir concede o papel de usuário do banco 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:
PROJECT_ID
: o ID do projeto do cluster do GKE.PROJECT_NUMBER
: o número numérico do projeto do Google Cloud.NAMESPACE
: o namespace do Kubernetes que contém a ServiceAccount.KSA_NAME
: o nome da conta de serviço.
Conectar bancos de dados do Spanner
Depois que o pod do aplicativo for autenticado, use uma das bibliotecas de cliente do Spanner para consultar o banco de dados do Spanner.
A seguir
- Saiba como implantar seu aplicativo no cluster do GKE.
- Saiba como implantar seu aplicativo usando o Autopilot e o Spanner do GKE.
- Saiba mais sobre como migrar cargas de trabalho atuais para a Identidade da carga de trabalho.
- Saiba mais sobre as práticas recomendadas de SQL.
- Integrar o Spanner com outros ORMs, incluindo Hibernate ORM, gorm e Django ORM.