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.instanceUser
ao 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.login
necessá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.client
IAM ao seu utilizador, conta de serviço ou grupo do IAM. É uma função predefinida que contém a autorização de IAMcloudsql.instances.connect
do 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
GRANT
para 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 do 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 configurar uma chave da conta de serviço. Se quiser autenticar com 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 INSTANCE_CONNECTION_NAME pela string de ligação usada para identificar a instância do Cloud SQL. Se estiver a usar uma porta diferente da porta predefinida do MySQL, especifique o número da porta. Para mais informações sobre como encontrar e criar esta string, consulte 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
mysql
. 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 uma conta de utilizador do IAM,
este é o endereço de email do utilizador, sem o símbolo
@
nem o nome do domínio. Por exemplo, paratest-user@example.com
, introduzatest-user
. Para uma conta de serviço, trata-se do endereço de email da conta de serviço sem o sufixo@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: opcional. Se especificou uma porta diferente na string de ligação da instância, especifique esse número da porta.
Execute o seguinte comando:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
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 mysql.
- 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 do 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:
- Use a opção --enable-cleartext-plugin
mysql
. - Se estiver a estabelecer ligação a uma instância com um IP público, autorize o acesso externo à instância. Para mais informações, consulte o artigo Autorize o endereço IP da sua máquina para IP público.
- Se estiver a ligar-se a uma instância com um IP privado, execute o comando na rede da nuvem virtual privada (VPC).
- Use o comando
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 uma conta de utilizador do IAM, este é o endereço de email do utilizador, sem o símbolo
@
nem o nome do domínio. Por exemplo, paratest-user@example.com
, introduzatest-user
. Para uma conta de serviço, trata-se do endereço de email da conta de serviço sem o sufixo@project-id.iam.gserviceaccount.com
.
MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Se
ssl_mode
na sua instância do Cloud SQL estiver configurado paraTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, inclua um certificado de cliente e uma chave de cliente quando iniciar sessão. Além disso, para permitir que o cliente valide a identidade do servidor para fins de autenticação mútua, especifique o certificado do servidorserver-ca.pem
. Por exemplo:MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
Para ver informações sobre como criar um certificado de cliente e uma chave, consulte o artigo Certificados de 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 adicionar uma associação de política de IAM a um utilizador ou a uma conta de serviço.
- Saiba como gerir utilizadores e contas de serviço para a autenticação de base de dados do IAM.