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 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-authnSubstitua 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 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-tokenpara 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_modena 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.