Faça a gestão da autenticação IAM

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:

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:

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

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

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster ao qual quer adicionar um utilizador.

  3. Clique em Utilizadores.

  4. Clique em Adicionar conta de utilizador.

  5. Selecione Cloud IAM.

  6. 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ço my-service@my-project.iam.gserviceaccount.com, usaria o valor my-service@my-project.iam aqui.

  7. Para atribuir funções diferentes da função alloydbsuperuser predefinida ao utilizador, siga estes passos:

    1. Introduza o nome da função em Funções.
    2. Para adicionar a função, prima Enter ou Tab.
    3. Selecione x para qualquer função que queira remover para esse utilizador.

      Para mais informações, consulte o artigo Funções predefinidas

  8. 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ço my-service@my-project.iam.gserviceaccount.com, usaria o valor my-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

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster do qual quer remover o utilizador.

  3. Clique em Utilizadores.

  4. Na linha que representa o utilizador que quer remover, clique em Abrir ações para este utilizador.

  5. Selecione Remover.

  6. 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ço my-service@my-project.iam.gserviceaccount.com, usaria o valor my-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.

O que se segue?