Esta página descreve como os utilizadores e as contas de serviço podem iniciar sessão em bases de dados do Cloud SQL através da autenticação de base de dados do Cloud SQL IAM. Para mais informações, consulte o artigo Autenticação da IAM.
Antes de começar
- Configure a instância para usar a autenticação da base de dados da IAM. Para mais informações, consulte o artigo Configure novas instâncias para a autenticação da base de dados da IAM.
- Adicione um utilizador, uma conta de serviço ou um grupo do IAM à base de dados. Para mais informações, consulte Adicione um utilizador ou uma conta de serviço do IAM à base de dados e Adicione um grupo à base de dados.
- Adicione a função de IAM
roles/cloudsql.instanceUserao seu utilizador de IAM, conta de serviço ou grupo. É uma função predefinida que contém a autorização de IAM do Cloud SQLcloudsql.instances.loginnecessária. Precisa desta autorização para iniciar sessão numa instância da base de dados com a autenticação da base de dados do IAM. Para mais informações, consulte o artigo Funções e autorizações. - Se estiver a usar o proxy de autorização do Cloud SQL, adicione a função de
roles/cloudsql.clientIAM ao seu utilizador, conta de serviço ou grupo do IAM. É uma função predefinida que contém a autorização de IAMcloudsql.instances.connectdo Cloud SQL necessária. Precisa desta autorização para iniciar sessão numa instância da base de dados com o proxy Auth do Cloud SQL. Para mais informações, consulte o artigo Funções e autorizações. Quando um utilizador do IAM é adicionado a uma base de dados, o novo utilizador da base de dados não tem privilégios em nenhuma base de dados por predefinição. Tem de usar o comando
GRANTpara conceder ao utilizador da base de dados do IAM as autorizações necessárias. Para mais informações, consulte os artigos Conceda privilégios de base de dados ao utilizador do IAM e Conceda privilégios de base de dados a um grupo.Se estiver a usar a autenticação de grupo do IAM, o utilizador do IAM ou a conta de serviço tem de ser membro de um grupo ao qual foi concedida uma função ou autorizações do IAM para iniciar sessão na instância do Cloud SQL. O Cloud SQL cria uma conta depois de o utilizador ou a conta de serviço iniciar sessão na instância pela primeira vez.
Inicie sessão com a autenticação automática da base de dados do IAM
Pode configurar um conetor do Cloud SQL para processar automaticamente a autenticação na instância do Cloud SQL em nome de um utilizador ou de uma aplicação. Os conetores incluem o proxy Auth do Cloud SQL, o conetor Go, o conetor Java e o conetor Python, que suportam a autenticação automática da base de dados da IAM. Quando usar um conetor do Cloud SQL com a autenticação de base de dados do IAM automática, a conta do IAM que usa para iniciar o conetor tem de ser a mesma conta que autentica a base de dados.
Para iniciar sessão através da autenticação automática da base de dados do IAM:
Proxy Auth do Cloud SQL
Autentique-se em Google Cloud.
Utilizador
Autentique-se no Google Cloud com as Credenciais padrão da aplicação (ADC).
Use o comando
gcloud auth application-default login. Para mais informações, consulte o artigo Configure as Credenciais padrão da aplicação.Conta de serviço
Para fazer a autenticação no Google Cloud com o ADC e uma conta de serviço, pode usar a simulação da conta de serviço ou uma chave da conta de serviço. Para usar a representação da conta de serviço, substitua SERVICE_ACCOUNT_EMAIL_ADDRESS e execute o seguinte comando:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Para mais informações, consulte o artigo Configure as Credenciais padrão da aplicação.
Inicie o proxy Auth do Cloud SQL com a flag
--auto-iam-authn.Substitua o seguinte:
- INSTANCE_CONNECTION_NAME: a string de ligação para identificar uma instância do Cloud SQL. Se usar uma porta diferente da porta predefinida do PostgreSQL, especifique o número da porta. Para mais informações sobre como encontrar e criar esta string, consulte as Opções para autenticar o proxy Auth do Cloud SQL.
./cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Para mais informações sobre como iniciar o proxy, consulte o artigo Inicie o proxy Auth do Cloud SQL.
Quando estiver pronto para estabelecer ligação à instância através do proxy Auth do Cloud SQL, inicie sessão com o cliente
psql.Substitua o seguinte:
- HOSTNAME: endereço IP usado pelo proxy Auth do Cloud SQL. Por predefinição, o proxy Auth do Cloud SQL usa o endereço de localhost de
127.0.0.1, mas pode atribuir um endereço IP diferente quando inicia o proxy Auth do Cloud SQL. - USERNAME: para um IAM, o nome de utilizador é o endereço de email completo do utilizador. Para uma conta de serviço, trata-se do email da conta de serviço sem o sufixo do domínio.
.gserviceaccount.com - PORT_NUMBER: opcional. Se especificou uma porta diferente na string de ligação da instância, especifique esse número da porta.
- DATABASE_NAME: o nome da base de dados à qual estabelecer ligação.
Execute o seguinte comando:
psql -h HOSTNAME \ -U USERNAME \ --port PORT_NUMBER \ --dbname=DATABASE_NAME
Para mais informações sobre como estabelecer ligação ao proxy Auth do Cloud SQL, consulte o artigo Estabeleça ligação com o cliente psql.
- HOSTNAME: endereço IP usado pelo proxy Auth do Cloud SQL. Por predefinição, o proxy Auth do Cloud SQL usa o endereço de localhost de
Ir
Java JDBC
Java R2DBC
Python
Inicie sessão com a autenticação manual da base de dados IAM
Um utilizador ou uma aplicação pode autenticar-se na base de dados através do IAM pedindo manualmente um token de acesso a Google Cloud e apresentando-o à base de dados. Com a CLI gcloud, pode pedir explicitamente um token OAuth 2.0 com o âmbito da API Cloud SQL Admin que é usado para iniciar sessão na base de dados. Quando inicia sessão como um utilizador da base de dados com a autenticação manual da base de dados do IAM, usa o seu endereço de email como nome de utilizador e o token de acesso como palavra-passe. Pode usar este método com uma ligação direta à base de dados ou com um conetor do Cloud SQL.
Neste procedimento, autentica-se no Google Cloud, pede um token de acesso e, em seguida, liga-se à base de dados transmitindo o token como a palavra-passe do utilizador da base de dados do IAM. Use estes passos para estabelecer ligação sem o proxy Auth do Cloud SQL.
Para estes passos, tem de:
gcloud sql generate-login-token
para gerar o seu token de autenticação.Para iniciar sessão através da autenticação manual da base de dados de IAM:
gcloud
Autentique-se em Google Cloud.
Utilizador
Faça a autenticação no IAM através de
gcloud auth login. Para mais informações, consulte o artigo Autorize com uma conta de utilizador.Conta de serviço
Faça a autenticação no IAM através de
gcloud auth activate-service-account. Para mais informações, consulte o artigo Autorize com uma conta de serviço.Peça o token de acesso e inicie sessão com um cliente.
Substitua o seguinte:
- HOSTNAME: O endereço IP da instância, o endereço IP público ou o endereço IP privado.
- USERNAME: para um IAM, o nome de utilizador é o endereço de email completo do utilizador. Para uma conta de serviço, trata-se do email da conta de serviço sem o sufixo do domínio.
.gserviceaccount.com - DATABASE_NAME: o nome da base de dados à qual estabelecer ligação.
PGPASSWORD=`gcloud sql generate-login-token` \ psql "sslmode=require \ hostaddr=HOSTNAME \ user=USERNAME \ dbname=DATABASE_NAME" \ --no-password
Se a
ssl_modena sua instância do Cloud SQL estiver configurada paraTRUSTED_CLIENT_CERTIFICATE_REQUIRED, recomendamos que inicie sessão com a autenticação automática da base de dados do IAM para aplicar a validação da identidade do cliente.
O que se segue?
- Saiba mais acerca da autenticação da base de dados do IAM.
- Saiba como ativar e ver informações de início de sessão nos registos de auditoria.
- Saiba como criar utilizadores e contas de serviço que usam a autenticação de base de dados da IAM do Cloud SQL.
- Saiba como gerir utilizadores e contas de serviço para a autenticação de base de dados do IAM.