Usuário sem senha para o Google Cloud SQL (MySQL) usando o Cloud SQL Proxy?

1

A documentação Sobre o Cloud SQL Proxy contém uma linha, “[B] ecause the O proxy sempre se conecta a partir de um nome de host que não pode ser acessado, exceto pelo proxy, você pode criar uma conta de usuário que pode ser usada apenas pelo proxy. A vantagem de fazer isso é que você pode especificar essa conta sem uma senha sem comprometer a segurança da sua instância ou dos seus dados. ”

Existe alguma maneira prática de conectar um cliente MySQL através do Google Cloud Proxy, que é autenticado usando uma conta de serviço que só tem permissão para acessar um usuário específico do MySQL?

Uma possível maneira de restringir o acesso ao usar o Cloud SQL Proxy é criar uma conta de usuário do MySQL com o endereço IP do Cloud SQL Proxy : '[USER_NAME]'@'cloudsqlproxy~[IP_ADDRESS]' . Mas isso não funcionaria para uma conta de serviço que é executada em várias VMs na nuvem. Isso é basicamente autenticação do usuário do MySQL por endereço IP, em vez de por conta de serviço.

Uma segunda maneira de restringir uma conta de serviço a um usuário MySQL pode ser usar uma conta de usuário do MySQL '[USER_NAME]'@'cloudsqlproxy~%' e confiar no IAM para restringir o acesso. A conta de serviço que está executando o Cloud SQL Client exige a função roles/cloudsql.client , o que equivale às permissões cloudsql.instances.connect e cloudsql.instances.get . Infelizmente, se você conceder a várias contas de serviço essa função, parece que não há como impedi-las de usar o usuário MySQL uma da outra.

Uma terceira forma potencial de ativar a autenticação sem senha pode ser usar certificados de cliente ( gcloud sql ssl-certs create [CERT_NAME] client-key.pem --instance [INSTANCE_NAME] ). Mas as chaves privadas do cliente são ainda mais difíceis de gerenciar do que as senhas, pois todas são invalidadas ao mesmo tempo em menos de um ano quando você atualiza o certificado do servidor: “Quando você atualiza seu servidor, também deve gerar novos certificados de cliente; os certificados de clientes existentes são revogados. ”Isso os torna basicamente impossíveis de usar na produção.

Basicamente, parece que o Cloud SQL Proxy não permite a autenticação de um usuário específico do MySQL por meio de uma conta de serviço do IAM. Está correto?

    
por yonran 03.11.2017 / 18:07

1 resposta

0

Basically, it seems like the Cloud SQL Proxy does not enable authenticating to a specific MySQL user via an IAM Service Account. Is this correct?

Isso está correto. O Cloud SQL Proxy não oferece nenhum mecanismo para restringir quais usuários do MySQL você tem acesso quando se conecta usando o proxy. As conexões feitas por meio do proxy são restritas apenas a quaisquer papéis do IAM atribuídos a eles. O mecanismo para restringir quais contas podem acessar quais usuários devem usar a proteção por senha.

    
por 06.11.2017 / 22:54