Esta página explica como preparar a sua instância do AlloyDB para PostgreSQL para permitir a autenticação da base de dados através da gestão de identidade e acesso (IAM).
A autenticação da IAM complementa a autenticação da base de dados através de utilizadores padrão do PostgreSQL, que todos os clusters do AlloyDB suportam. Se ativar a autenticação do IAM no cluster, pode usar o IAM ou as funções de utilizador do PostgreSQL para se autenticar nesse cluster.
Por predefinição, uma instância do AlloyDB não tem a autenticação do IAM ativada. Para ativar a autenticação IAM, conclua os seguintes passos:
Ativar manualmente a autenticação IAM em todas as instâncias às quais o utilizador do IAM ou as contas de serviço têm de se ligar.
Para cada utilizador de IAM ou conta de serviço que precise de iniciar sessão como utilizador da base de dados, conclua os seguintes passos:
Usando as ferramentas de administrador do IAM, conceda ao utilizador ou à conta de serviço as funções
alloydb.databaseUser
eserviceusage.serviceUsageConsumer
.Usando a CLI do Google Cloud, crie um utilizador da base de dados correspondente a esse utilizador ou conta de serviço no seu cluster do AlloyDB.
Usando uma conta de administrador da base de dados, como
postgres
, conceda privilégios de acesso ao novo utilizador da base de dados às tabelas da base de dados adequadas.
Pode repetir estes passos sempre que precisar de adicionar mais utilizadores do IAM ao seu cluster do AlloyDB.
Ative ou desative a autenticação IAM
Para ativar a autenticação IAM numa instância, defina
a flag alloydb.iam_authentication
nessa instância como on
.
Para desativar a autenticação IAM numa instância, defina alloydb.iam_authentication
novamente para o respetivo valor predefinido, off
.
Para mais informações sobre como definir flags em instâncias do AlloyDB, consulte o artigo Configure as flags da base de dados de uma instância.
Conceda a um utilizador ou a uma conta de serviço do IAM acesso a uma instância
A ativação do acesso à IAM para um novo utilizador da base de dados é um processo de dois passos:
Atualize as definições do IAM do seu projeto para conceder acesso à base de dados do AlloyDB ao utilizador ou à conta de serviço do IAM adequados.
Crie um novo utilizador da base de dados no cluster, definindo o nome de utilizador como o endereço de email do utilizador do IAM ou da conta de serviço.
Pode repetir o passo dois para conceder a uma conta do IAM acesso a outros clusters no seu projeto.
Atualize uma conta do IAM com a função adequada
Pode conceder aos utilizadores do IAM ou às contas de serviço a capacidade de autenticação com instâncias do AlloyDB concedendo-lhes as seguintes funções do IAM:
alloydb.databaseUser
: permite que o utilizador se ligue à sua instância do AlloyDB.serviceusage.serviceUsageConsumer
: concede ao utilizador acesso a uma API que verifica as autorizações.
Para isso, siga as instruções em
Conceder acesso a outros utilizadores. No passo em que seleciona uma função para conceder ao principal do IAM, escolha alloydb.databaseUser
.
Adicione um utilizador do IAM ou uma conta de serviço a um cluster
Consola
Aceda à página Clusters.
Clique no nome do cluster ao qual quer adicionar um utilizador.
Clique em Utilizadores.
Clique em Adicionar conta de utilizador.
Selecione Cloud IAM.
No campo Principal, introduza o principal do IAM.
Para uma conta de utilizador do IAM, indique o endereço de email completo da conta de utilizador. Por exemplo,
kai@altostrat.com
.Para uma conta de serviço do IAM, indique o endereço da conta de serviço sem o sufixo
.gserviceaccount.com
. Por exemplo, para especificar a conta de serviçomy-service@my-project.iam.gserviceaccount.com
, usaria o valormy-service@my-project.iam
aqui.Para atribuir funções diferentes da função
alloydbsuperuser
predefinida ao utilizador, siga estes passos:- Introduza o nome da função em Funções.
- Para adicionar a função, prima Enter ou Tab.
Selecione x para qualquer função que queira remover para esse utilizador.
Para mais informações, consulte o artigo Funções predefinidas
Clique em Adicionar.
gcloud
Para criar um utilizador da base de dados PostgreSQL com base num utilizador do IAM ou numa conta de serviço, use o comando gcloud alloydb users create
.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Substitua as seguintes variáveis:
USERNAME
: identificador do utilizador do IAM que quer adicionar como um novo utilizador da base de dados.Para uma conta de utilizador do IAM, indique o endereço de email completo da conta de utilizador. Por exemplo,
kai@altostrat.com
.Para uma conta de serviço do IAM, indique o endereço da conta de serviço sem o sufixo
.gserviceaccount.com
. Por exemplo, para especificar a conta de serviçomy-service@my-project.iam.gserviceaccount.com
, usaria o valormy-service@my-project.iam
aqui.CLUSTER
: ID do cluster no qual criar esta conta de utilizador da base de dados.REGION
: ID da região onde o cluster reside. Por exemplo,us-central1
.
Conceda as autorizações de base de dados adequadas aos utilizadores do IAM
Quando um utilizador do IAM é adicionado a uma instância da base de dados, esse novo utilizador não recebe privilégios em nenhuma base de dados por predefinição.
Quando um utilizador ou uma conta de serviço se liga a uma base de dados, pode executar consultas em qualquer objeto da base de dados cujo acesso tenha sido concedido a PUBLIC.
Se precisarem de acesso adicional, podem ser concedidos mais privilégios através da declaração
GRANT
PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Substitua as seguintes variáveis:
USERNAME
: endereço de email do utilizador. Tem de incluir aspas duplas à volta da morada.TABLE_NAME
: nome da tabela à qual quer dar acesso ao utilizador.
Remova um utilizador do IAM ou uma conta de serviço de um cluster
Consola
Aceda à página Clusters.
Clique no nome do cluster do qual quer remover o utilizador.
Clique em Utilizadores.
Na linha que representa o utilizador que quer remover, clique em
Abrir ações para este utilizador.Selecione Remover.
Na caixa de diálogo Remover conta de utilizador?, clique em Remover.
gcloud
Use
o comando gcloud alloydb users delete
.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
Substitua o seguinte:
USERNAME
: identificador do utilizador do IAM que quer remover do cluster.Para uma conta de utilizador do IAM, indique o endereço de email completo da conta de utilizador. Por exemplo,
kai@altostrat.com
.Para uma conta de serviço do IAM, indique o endereço da conta de serviço sem o sufixo
.gserviceaccount.com
. Por exemplo, para especificar a conta de serviçomy-service@my-project.iam.gserviceaccount.com
, usaria o valormy-service@my-project.iam
aqui.CLUSTER
: ID do cluster do qual remover este utilizador.REGION
: ID da região onde o cluster reside. Por exemplo,us-central1
.