Nesta página, descrevemos como usuários e contas de serviço podem fazer login nos bancos de dados do Cloud SQL usando a autenticação de banco de dados do Cloud SQL IAM. Para mais informações, consulte Autenticação do IAM.
Antes de começar
- Configure a instância para usar a autenticação do banco de dados do IAM. Para mais informações, consulte Configurar novas instâncias para a autenticação do banco de dados do IAM.
- Adicione um usuário, uma conta de serviço ou um grupo do IAM ao banco de dados. Para mais informações, consulte Adicionar um usuário do IAM ou uma conta de serviço ao banco de dados e Adicionar um grupo ao banco de dados.
- Adicione o papel
roles/cloudsql.instanceUser
do IAM ao usuário, à conta de serviço ou ao grupo do IAM. É um papel predefinido que contém a permissão IAMcloudsql.instances.login
do Cloud SQL necessária. Você precisa dessa permissão para fazer login em uma instância de banco de dados com a autenticação de banco de dados do IAM. Para mais informações, consulte Papéis e permissões. Por padrão, quando um usuário do IAM é adicionado a um banco de dados, o novo usuário não tem privilégios para nenhum banco de dados. Use o comando
GRANT
para dar ao usuário do banco de dados do IAM as permissões necessárias. Para mais informações, consulte Conceder privilégios de banco de dados ao usuário do IAM e Conceder privilégios de banco de dados a um grupo.Se você estiver usando a autenticação de grupo do IAM, o usuário ou a conta de serviço do IAM precisará ser membro de um grupo que recebeu permissões ou um papel do IAM para fazer login na instância do Cloud SQL. O Cloud SQL cria uma conta depois que o usuário ou a conta de serviço faz login na instância pela primeira vez.
Fazer login com autenticação automática do banco de dados do IAM
É possível configurar um conector do Cloud SQL para processar automaticamente a autenticação na instância do Cloud SQL em nome de um usuário ou um aplicativo. Os conectores incluem o proxy do Cloud SQL Auth, o conector Go, o conector Java e o conector Python, todos compatíveis com a autenticação automática de banco de dados do IAM. Ao usar um conector do Cloud SQL com autenticação automática do banco de dados do IAM, a conta do IAM usada para iniciar o conector precisa ser a mesma autenticada no banco de dados.
Para fazer login com a autenticação automática de banco de dados do IAM, faça o seguinte:
Proxy de autenticação do Cloud SQL
Faça a autenticação no Google Cloud.
Usuário
Faça a autenticação no Google Cloud usando o Application Default Credentials (ADC).
Use o comando
gcloud auth application-default login
. Para mais informações, consulte Configurar o Application Default Credentials.Conta de serviço
Para autenticar no Google Cloud usando o ADC com uma conta de serviço, use a identidade temporária uma conta de serviço ou configure uma chave de conta de serviço. Se você quiser autenticar com a representação de 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 Configurar o Application Default Credentials.
Inicie o proxy do Cloud SQL Auth com a sinalização
--auto-iam-authn
. Substitua INSTANCE_CONNECTION_NAME pela string de conexão usada para identificar a instância do Cloud SQL. Se você estiver usando uma porta diferente da padrão do MySQL, especifique o número da porta. Para mais informações sobre como encontrar e construir essa string, consulte Opções para autenticar o proxy do Cloud SQL Auth../cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Para mais informações sobre como iniciar o proxy, consulte Iniciar o proxy do Cloud SQL Auth.
Quando estiver tudo pronto para se conectar à instância usando o proxy do Cloud SQL Auth, faça login com o cliente
mysql
. Substitua:- HOSTNAME: endereço IP usado pelo proxy do Cloud SQL Auth. Por padrão,
o proxy do Cloud SQL Auth usa o endereço localhost de
127.0.0.1
, mas é possível atribuir um endereço IP diferente ao iniciar o proxy do Cloud SQL Auth. - USERNAME: para uma conta de usuário do IAM,
este é o endereço de e-mail do usuário, sem o
@
ou o nome de domínio. Por exemplo, paratest-user@example.com
, digitetest-user
. Para uma conta de serviço, esse é o endereço de e-mail da conta de serviço sem o sufixo@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: opcional. Se você especificou uma porta diferente na string de conexão da instância, especifique o número da porta.
Execute este comando:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Para mais informações sobre como se conectar ao proxy do Cloud SQL Auth, consulte Conectar-se com o cliente mysql.
- HOSTNAME: endereço IP usado pelo proxy do Cloud SQL Auth. Por padrão,
o proxy do Cloud SQL Auth usa o endereço localhost de
Go
JDBC do Java
Java R2DBC
Python
Fazer login com autenticação do banco de dados do IAM
Um usuário ou aplicativo pode se autenticar no banco de dados usando o IAM solicitando manualmente um token de acesso do Google Cloud e apresentando-o ao banco de dados. Com a gcloud CLI, é possível solicitar explicitamente um token OAuth 2.0 com o escopo da API Cloud SQL Admin usado para fazer login no banco de dados. Ao fazer login como usuário do banco de dados com a autenticação do banco de dados do IAM, use o endereço de e-mail como nome de usuário e o token de acesso como senha. Use esse método com uma conexão direta com o banco de dados ou com um conector do Cloud SQL.
Nessas etapas, você faz a autenticação no Google Cloud, solicita um token de acesso e se conecta ao banco de dados passando o token como a senha do usuário do banco de dados do IAM. Use estas etapas para se conectar sem o proxy Auth do Cloud SQL.
Para essas etapas, você precisa:
- Usar a opção
mysql
de --enable-cleartext-plugin. - Se você estiver se conectando a uma instância com IP público, autorize o acesso externo à instância. Para mais informações, consulte Autorizar o endereço IP da sua máquina para IP público.
- Se você estiver se conectando a uma instância com IP particular, execute o comando na rede da nuvem privada virtual (VPC).
- Use o comando
gcloud sql generate-login-token
para gerar seu token de autenticação.
Para fazer login com a autenticação automática de banco de dados do IAM, faça o seguinte:
gcloud
Faça a autenticação no Google Cloud.
Usuário
Autentique-se no IAM usando
gcloud auth login
. Para mais informações, consulte Autorizar com uma conta de usuário.Conta de serviço
Autentique-se no IAM usando
gcloud auth activate-service-account
. Para mais informações, consulte Autorizar com uma conta de serviço.Solicite o token de acesso e faça login com um cliente.
Substitua:
- HOSTNAME: o endereço IP da instância, o endereço IP público ou particular.
- USERNAME: para uma conta de usuário do IAM, este é o
endereço de e-mail do usuário, sem o símbolo
@
ou o nome de domínio. Por exemplo, paratest-user@example.com
, digitetest-user
. Para uma conta de serviço, esse é o endereço de e-mail 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 o
ssl_mode
na instância do Cloud SQL estiver configurado paraTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, inclua um certificado e uma chave de cliente ao fazer login. Além disso, para permitir que o cliente verifique a identidade do servidor para 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 mais informações sobre como criar uma chave e um certificado do cliente, consulte Certificados do cliente.
A seguir
- Saiba mais sobre a autenticação do banco de dados do IAM.
- Saiba como ativar e visualizar informações de login em registros de auditoria.
- Veja como criar usuários e contas de serviço que usam a autenticação de banco de dados do IAM do Cloud SQL.
- Saiba como adicionar uma vinculação de política de IAM a um usuário ou conta de serviço.
- Saiba como gerenciar usuários e contas de serviço para autenticação do banco de dados do IAM.