Nesta página, descrevemos como adicionar um usuário ou conta de serviço que utilize a autenticação de banco de dados do IAM com um banco de dados e como gerenciar essas contas de usuário e serviço. Para mais informações sobre a integração do IAM, consulte Autenticação do IAM.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Enable the Cloud Key Management Service API.
- Verifique se você tem o papel Administrador do Cloud SQL em sua conta de usuário.
- Ative a autenticação do banco de dados do IAM na instância do Cloud SQL.
- Lembre-se de conceder acesso do IAM aos usuários que precisam dele para cada projeto que contém bancos de dados que eles precisam acessar. Consulte Como conceder, alterar e revogar acesso a recursos.
- Verifique se você adicionou uma conta de serviço para cada serviço que requer acesso aos bancos de dados no projeto.
Adicionar um usuário do IAM ou uma conta de serviço a uma instância de banco de dados
É preciso criar um novo usuário de banco de dados para cada usuário do IAM que você quer
que tenha acesso à instância do banco de dados. O nome de usuário do banco de dados precisa ser o
endereço de e-mail do usuário do IAM, por exemplo, test-user@example.com
.
@
e .
).
As contas de serviço usam o formato service-account-name@project-id.iam.gserviceaccount.com
.
Para adicionar um usuário do IAM ou uma conta de serviço, adicione um novo usuário do banco de dados e selecione IAM como método de autenticação:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em Adicionar conta de usuário. A guia Adicionar uma conta de usuário à instância instance_name é aberta.
- Clique no botão de opção Cloud IAM.
- Digite o endereço de e-mail do usuário ou da conta de serviço que você quer adicionar no campo Principal.
- Clique em Add. Agora o usuário está na lista de usuários.
Se o papel Usuário da instância do Cloud SQL não estiver atribuído ao usuário, o ícone aparecerá à esquerda do nome do usuário.
Para conceder privilégios de login ao usuário, clique no ícone e selecione Adicionar papel do IAM. O ícone não aparecerá mais. Agora o usuário é um membro do papel.
gcloud
Criar uma conta de usuário
Use o e-mail, como test-user@example.com
, para identificar o usuário.
Substitua:
- USERNAME: o endereço de e-mail do usuário.
- INSTANCE_NAME: o nome da instância em que você quer autorizar o acesso do usuário.
gcloud sql users create USERNAME \ --instance=INSTANCE_NAME \ --type=cloud_iam_user
Crie uma conta de serviço
Substitua:
- SERVICE_ACCT: o endereço de e-mail da conta de serviço.
- INSTANCE_NAME: o nome da instância em que você quer autorizar o acesso da conta de serviço.
gcloud sql users create SERVICE_ACCT \ --instance=INSTANCE_NAME \ --type=cloud_iam_service_account
Terraform
Para adicionar contas de serviço e usuário do IAM a uma instância com a autenticação de banco de dados do IAM ativada, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
REST v1
Criar uma conta de usuário
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância em que você está adicionando o usuário.
- username: o endereço de e-mail do usuário.
- operation-id: o ID da operação
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "username", "type": "CLOUD_IAM_USER" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:44:16.656Z", "startTime": "2020-02-07T22:44:16.686Z", "endTime": "2020-02-07T22:44:20.437Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Crie uma conta de serviço
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- service-acct: o e-mail da sua conta de serviço
- project-id: o ID do projeto
- instance-id: o ID da instância em que você está adicionando a conta de serviço.
- operation-id: o ID da operação
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "service-acct", "type": "CLOUD_IAM_SERVICE_ACCOUNT" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-11-20T04:08:00.211Z", "startTime": "2020-11-20T04:08:00.240Z", "endTime": "2020-11-20T04:08:02.003Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Criar uma conta de usuário
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância em que você está adicionando o usuário.
- username: o endereço de e-mail do usuário.
- operation-id: o ID da operação
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "username", "type": "CLOUD_IAM_USER" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:44:16.656Z", "startTime": "2020-02-07T22:44:16.686Z", "endTime": "2020-02-07T22:44:20.437Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Crie uma conta de serviço
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- service-acct: o e-mail da sua conta de serviço
- project-id: o ID do projeto
- instance-id: o ID da instância em que você está adicionando a conta de serviço.
- operation-id: o ID da operação
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "service-acct", "type": "CLOUD_IAM_SERVICE_ACCOUNT" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-11-20T04:08:00.211Z", "startTime": "2020-11-20T04:08:00.240Z", "endTime": "2020-11-20T04:08:02.003Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Adicionar uma vinculação de política do IAM a um usuário ou conta de serviço
Este procedimento adiciona uma vinculação de política à política do IAM de um projeto específico, com base em um ID de projeto e na vinculação. O comando de vinculação é composto de um membro, um papel e uma condição opcional.
O nome de usuário do banco de dados precisa ser o endereço de e-mail do usuário do IAM, por
exemplo, test-user@example.com
. Ele precisa usar aspas porque contém caracteres especiais
(@
e .
).
Console
-
No Console do Google Cloud, abra a página IAM.
- Clique em Add.
- Em Novos membros, digite um endereço de e-mail. É possível adicionar usuários individuais, contas de serviço ou grupos como membros, mas cada projeto precisa ter pelo menos um principal como membro.
- Em Papel, navegue até Cloud SQL e selecione Usuário da instância do Cloud SQL e Cliente do Cloud SQL.
- Para usuários individuais e contas de serviço, selecione Cliente do Cloud SQL.
- Clique em Salvar.
gcloud
Execute
gcloud projects add-iam-policy-binding
com a sinalização --role=roles/cloudsql.instanceUser
.
Adicionar uma vinculação de política a uma conta de usuário
Substitua:
- PROJECT_ID: o ID do projeto em que você quer autorizar o acesso do usuário.
- USERNAME: o endereço de e-mail do usuário.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USERNAME \ --role=roles/cloudsql.instanceUser
Execute
gcloud projects add-iam-policy-binding
novamente com a sinalização --role=roles/cloudsql.client
Adicionar uma vinculação de política a uma conta de serviço
Substitua:
- PROJECT_ID: o ID do projeto em que você quer autorizar o acesso do usuário.
- SERVICE_ACCT: o endereço de e-mail da conta de serviço padrão.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCT \ --role=roles/cloudsql.instanceUser
Execute
gcloud projects add-iam-policy-binding
novamente com a sinalização --role=roles/cloudsql.client
Terraform
Para adicionar a vinculação de política necessária ao usuário do IAM e às contas de serviço, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
REST
Conceda os papéis
cloudsql.instanceUser
e cloudsql.client
aos dois tipos de conta editando a política de vinculação JSON ou YAML
retornada pelo comando get-iam-policy
. Essa alteração de política só entrará em vigor
quando você definir a política atualizada.
{ "role": "roles/cloudsql.instanceUser", "members": [ "user:test-user@example.com" "serviceAccount:service1@sql.iam.gserviceaccount.com" ] } { "role": "roles/cloudsql.client", "members": [ "user:test-user@example.com" "serviceAccount:service1@sql.iam.gserviceaccount.com" ] }
Conceder privilégios de banco de dados ao usuário do IAM
Por padrão, quando um usuário do IAM é adicionado a uma instância de banco de dados, esse novo usuário não recebe privilégios em nenhum banco de dados.Quando um usuário ou conta de serviço se conecta a um banco de dados, ele pode executar consultas em qualquer objeto do banco de dados que tenha o acesso concedido como PUBLIC.
Se forem necessários acesso adicional, mais privilégios poderão ser concedidos usando a instrução GRANT. Consulte a página de referência GRANT para ver uma lista completa dos privilégios que podem ser concedidos a usuários e contas de serviço. Execute GRANT na linha de comando.
Substitua:
- USERNAME: o endereço de e-mail do usuário. É preciso usar aspas
ao redor do e-mail porque ele contém caracteres especiais (
@
e.
). - TABLE_NAME: o nome da tabela a que você quer conceder acesso ao usuário.
grant select on TABLE_NAME to "USERNAME";
Remover um usuário do IAM ou uma conta de serviço do banco de dados
Para remover um usuário ou uma conta de serviço do banco de dados, exclua a conta da instância:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em para o usuário que você quer remover.
- Selecione Remover. Isso revoga o acesso apenas a esta instância.
gcloud
Revogar um usuário
Use o e-mail, como test-user@example.com
, para identificar o usuário.
Substitua:
- USERNAME: o endereço de e-mail.
- INSTANCE_NAME: o nome da instância da qual você quer remover o usuário.
gcloud sql users delete USERNAME \ --instance=INSTANCE_NAME
Exclua a conta de serviço
Substitua:
- SERVICE_ACCT: o endereço de e-mail da conta de serviço.
- INSTANCE_NAME: o nome da instância da qual você quer remover o usuário.
gcloud sql users delete SERVICE_ACCT \ --instance=INSTANCE_NAME
REST v1
A solicitação a seguir usa o método users.delete para excluir a conta de usuário especificada.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância buscada
- USERNAME: o endereço de e-mail do usuário ou da conta de serviço
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "DELETE_USER", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
A solicitação a seguir usa o método users.delete para excluir a conta de usuário especificada.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância buscada
- USERNAME: o endereço de e-mail do usuário ou da conta de serviço
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "DELETE_USER", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Ver informações de login em registros de auditoria
É possível ativar os registros de auditoria para capturar logins do IAM no banco de dados. Quando houver problemas de login, será possível usar os registros de auditoria para diagnosticar o problema.
Depois de configurado, é possível visualizar os registros de auditoria de acesso a dados de logins bem-sucedidos usando o Explorador de registros.
Por exemplo, um registro pode ter informações semelhantes às seguintes:
{
insertId: "..."
logName: "projects/.../logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
authenticationInfo: {
principalEmail: "..."
}
authorizationInfo: [
0: {
granted: true
permission: "cloudsql.instances.login"
resource: "instances/..."
resourceAttributes: {
}
}
]
methodName: "cloudsql.instances.login"
request: {
@type: "type.googleapis.com/google.cloud.sql.authorization.v1.InstancesLoginRequest"
clientIpAddress: "..."
database: "..."
databaseSessionId: ...
instance: "projects/.../locations/us-central1/instances/..."
user: "..."
}
requestMetadata: {
callerIp: "..."
destinationAttributes: {
}
requestAttributes: {
auth: {
}
time: "..."
}
}
resourceName: "instances/..."
serviceName: "cloudsql.googleapis.com"
status: {
}
}
receiveTimestamp: "..."
resource: {
labels: {
database_id: "...:..."
project_id: "..."
region: "us-central"
}
type: "cloudsql_database"
}
severity: "INFO"
timestamp: "..."
}
Resolver problemas de falha no login
Quando uma tentativa de login falhar, o PostgreSQL retornará uma mensagem de erro mínima por motivos de segurança. Exemplo:
PGPASSWORD=not-a-password psql --host=... --username=... --dbname=...
psql: error: could not connect to server: FATAL: Cloud SQL IAM user authentication failed for user "..."
FATAL: pg_hba.conf rejects connection for host "...", user "...", database "...", SSL off
É possível analisar os registros de erro do PostgreSQL para ver mais detalhes sobre o erro. Para saber mais, consulte Como visualizar registros.
Por exemplo, no caso do erro anterior, a entrada de registro a seguir explica a ação necessária para resolver o problema.
F ... [152172]: [1-1] db=...,user=... FATAL: Cloud SQL IAM user authentication failed for user "..."
I ... [152172]: [2-1] db=...,user=... DETAIL: Request is missing required authentication credential. Expected OAuth 2 access token, log in cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
Verifique a mensagem de erro que você recebeu. Se a mensagem não indicar que você
usou "autenticação de usuário do IAM do Cloud SQL" ou
"autenticação de conta de serviço do IAM do Cloud SQL", verifique se
o tipo de usuário do banco de dados usado para fazer login é CLOUD_IAM_USER
ou
CLOUD_IAM_SERVICE_ACCOUNT
.
Use o Console do Google Cloud ou o comando gcloud sql
users list
para verificar isso.
Para um usuário do IAM, verifique se o nome de usuário do banco de dados é o
e-mail do usuário do IAM.
Se você usou a autenticação do banco de dados do IAM, verifique os detalhes da mensagem de erro. É possível encontrar a mensagem
de erro no registro de erros do banco de dados. Se ele indicar o token de acesso (OAuth
2.0) que você enviou como uma senha inválida, use o comando
gcloud auth application-default print-access-token
do gcloud
para encontrar detalhes do token conforme mostrado a seguir:
curl -H "Content-Type: application/x-www-form-urlencoded" \ -d "access_token=$(gcloud auth application-default print-access-token)" \ https://www.googleapis.com/oauth2/v1/tokeninfo
Verifique se o token é para a conta de serviço ou o usuário do IAM pretendido e se ele não expirou.
Se os detalhes indicarem falta de permissão, verifique se o usuário do IAM
ou a conta de serviço recebeu a permissão cloudsql.instances.login
usando
o papel predefinido Cloud SQL Instance User
ou o papel personalizado na
política do IAM do projeto da instância. Use o
Solucionador de problemas de políticas do IAM para receber mais ajuda.
Se um login falhar devido à indisponibilidade da autenticação do banco de dados do IAM, o usuário poderá fazer login usando o usuário e a senha padrão do PostgreSQL. Esse método de login ainda fornece ao usuário acesso a todo o banco de dados. Verifique se a conexão é segura.
A seguir
- Saiba mais sobre a autenticação do banco de dados do IAM.
- Veja como fazer login em um banco de dados do Cloud SQL.
- Saiba como configurar instâncias para autenticação do banco de dados do IAM.