Sobre o Cloud SQL Auth Proxy

Esta página resume o Cloud SQL Auth Proxy e descreve como usá-lo para estabelecer conexões autorizadas, criptografadas e seguras com suas instâncias.

Para obter instruções passo a passo sobre como usar o Cloud SQL Auth Proxy, siga o link para seu ambiente:

Você não precisa usar o Cloud SQL Auth Proxy ou configurar o SSL para se conectar ao Cloud SQL a partir do ambiente padrão do App Engine ou do ambiente flexível do App Engine .

Benefícios do Cloud SQL Auth Proxy

O Cloud SQL Auth Proxy é um conector do Cloud SQL que fornece acesso seguro às suas instâncias sem a necessidade de redes autorizadas ou de configuração de SSL .

O Cloud SQL Auth Proxy e outros conectores do Cloud SQL têm os seguintes benefícios:

  • Conexões seguras: o Cloud SQL Auth Proxy criptografa automaticamente o tráfego de e para o banco de dados usando TLS 1.3 com a seleção de cifra determinada pelas regras do Go . Os certificados SSL são usados ​​para verificar as identidades do cliente e do servidor e são independentes dos protocolos do banco de dados; você não precisará gerenciar certificados SSL.
  • Autorização de conexão mais fácil: o Cloud SQL Auth Proxy usa permissões do IAM para controlar quem e o que pode se conectar às suas instâncias do Cloud SQL. Assim, o Cloud SQL Auth Proxy gerencia a autenticação com o Cloud SQL, eliminando a necessidade de fornecer endereços IP estáticos.
  • Autenticação de banco de dados IAM . Opcionalmente, o Cloud SQL Auth Proxy oferece suporte à atualização automática de tokens de acesso OAuth 2.0. Para obter informações sobre essa funcionalidade, consulte Autenticação de banco de dados IAM do Cloud SQL .

O Proxy de Autenticação do Cloud SQL não fornece um novo caminho de conectividade; ele depende da conectividade IP existente. Para se conectar a uma instância do Cloud SQL usando um IP privado , o Proxy de Autenticação do Cloud SQL deve estar em um recurso com acesso à mesma rede VPC da instância.

Limitações

Não é possível usar o Cloud SQL Auth Proxy se você estiver usando acesso sensível ao contexto e autenticação de banco de dados do IAM. Ao tentar fazer login na instância, a autenticação do IAM falha.

Como funciona o Cloud SQL Auth Proxy

O Cloud SQL Auth Proxy funciona com um cliente local em execução no ambiente local. Seu aplicativo se comunica com o Cloud SQL Auth Proxy usando o protocolo de banco de dados padrão usado pelo seu banco de dados.

O Proxy de Autenticação do Cloud SQL usa um túnel seguro para se comunicar com o processo complementar em execução no servidor. Cada conexão estabelecida por meio do Proxy de Autenticação do Cloud SQL cria uma conexão com a instância do Cloud SQL.

Quando um aplicativo se conecta ao Cloud SQL Auth Proxy, ele verifica se há uma conexão disponível entre ele e a instância de destino do Cloud SQL. Se não houver conexão, ele chama as APIs de administração do Cloud SQL para obter um certificado SSL temporário e o utiliza para se conectar ao Cloud SQL. Os certificados SSL temporários expiram em aproximadamente uma hora. O Cloud SQL Auth Proxy atualiza esses certificados antes que eles expirem.

O Cloud SQL Auth Proxy não fornece pool de conexões , mas pode ser pareado com outros pools de conexões para aumentar a eficiência.

O diagrama a seguir mostra como o Cloud SQL Auth Proxy se conecta ao Cloud SQL:

Diagrama do Cloud SQL Auth Proxy conectando o software cliente à instância do SQL

Requisitos para usar o Cloud SQL Auth Proxy

Para usar o Cloud SQL Auth Proxy, você deve atender aos seguintes requisitos:

  • A API de administração do Cloud SQL deve estar habilitada.
  • Você deve fornecer ao Cloud SQL Auth Proxy Google Cloud credenciais de autenticação .
  • Você deve fornecer ao Cloud SQL Auth Proxy uma conta de usuário e senha de banco de dados válidas.
  • A instância deve ter um endereço IPv4 público ou ser configurada para usar IP privado .

    O endereço IP público não precisa ser acessível a nenhum endereço externo (não precisa ser adicionado como um endereço de rede autorizado).

Se a instância do Cloud SQL à qual você está se conectando estiver usando uma autoridade de certificação (CA) compartilhada para sua configuração serverCaMode , no lado do cliente, você deverá usar o Cloud SQL Auth Proxy versão 2.13.0 ou posterior.

Se a instância do Cloud SQL à qual você está se conectando estiver usando a CA gerenciada pelo cliente para sua configuração serverCaMode , no lado do cliente, você deverá usar o Cloud SQL Auth Proxy versão 2.14.3 ou posterior.

Quando uma instância usa uma CA gerenciada pelo cliente como modo de CA do servidor, você pode configurar a instância com um nome DNS personalizado . Forneça o nome DNS personalizado no campo de nome alternativo do assunto (SAN) personalizado do certificado do servidor.

Depois de configurar um nome DNS personalizado para a instância, você pode se conectar a ela a partir dos Conectores de Linguagem do Cloud SQL usando o nome DNS.

Baixe e instale o Cloud SQL Auth Proxy

Linux de 64 bits

  1. Baixe o proxy de autenticação do Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.linux.amd64
  2. Torne o Cloud SQL Auth Proxy executável:
    chmod +x cloud-sql-proxy

Linux 32 bits

  1. Baixe o proxy de autenticação do Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.linux.386
  2. Se o comando curl não for encontrado, execute sudo apt install curl e repita o comando de download.
  3. Torne o Cloud SQL Auth Proxy executável:
    chmod +x cloud-sql-proxy

macOS 64 bits

  1. Baixe o proxy de autenticação do Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.darwin.amd64
  2. Torne o Cloud SQL Auth Proxy executável:
    chmod +x cloud-sql-proxy

Mac M1

  1. Baixe o proxy de autenticação do Cloud SQL:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.darwin.arm64
      
  2. Torne o Cloud SQL Auth Proxy executável:
      chmod +x cloud-sql-proxy
      

Windows 64 bits

Clique com o botão direito do mouse em https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.x64.exe e selecione Salvar link como para baixar o Cloud SQL Auth Proxy. Renomeie o arquivo para cloud-sql-proxy.exe .

Windows 32 bits

Clique com o botão direito do mouse em https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.16.0/cloud-sql-proxy.x86.exe e selecione Salvar Link Como para baixar o Cloud SQL Auth Proxy. Renomeie o arquivo para cloud-sql-proxy.exe .

Imagem do Docker do Proxy de Autenticação do Cloud SQL

O Cloud SQL Auth Proxy possui diferentes imagens de contêiner, como distroless , alpine e buster . A imagem de contêiner padrão do Cloud SQL Auth Proxy usa distroless , que não contém shell. Se precisar de um shell ou ferramentas relacionadas, baixe uma imagem baseada em alpine ou buster . Para obter mais informações, consulte Imagens de Contêiner do Cloud SQL Auth Proxy .

Você pode puxar a imagem mais recente para sua máquina local usando o Docker usando o seguinte comando:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.16.0

Outros sistemas operacionais

Para outros sistemas operacionais não incluídos aqui, você pode compilar o Cloud SQL Auth Proxy a partir do código-fonte .

Opções de inicialização do Cloud SQL Auth Proxy

Ao iniciar o Cloud SQL Auth Proxy, você fornece as seguintes informações:

  • Com quais instâncias do Cloud SQL estabelecer conexões
  • Onde ele escutará os dados provenientes do seu aplicativo para serem enviados ao Cloud SQL
  • Onde ele encontrará as credenciais que usará para autenticar seu aplicativo no Cloud SQL
  • Se necessário, qual tipo de endereço IP usar.

As opções de inicialização do Cloud SQL Auth Proxy que você fornece determinam se ele escutará em uma porta TCP ou em um soquete Unix. Se estiver escutando em um soquete Unix, ele cria o soquete no local que você escolher; geralmente, o diretório /cloudsql/. Para TCP, o Cloud SQL Auth Proxy escuta no localhost por padrão.

Execute o executável cloud-sql-proxy com o argumento --help para visualizar a lista completa de opções de inicialização.

Você pode instalar o Cloud SQL Auth Proxy em qualquer lugar do seu ambiente local. A localização dos binários do Cloud SQL Auth Proxy não afeta o local onde ele escuta os dados do seu aplicativo.

Para obter mais informações sobre como iniciar o Cloud SQL Auth Proxy, consulte Iniciar o Cloud SQL Auth Proxy .

Use uma conta de serviço para autenticação

O Cloud SQL Auth Proxy requer autenticação como uma identidade do Cloud SQL IAM para autorizar suas conexões com uma instância do Cloud SQL.

A vantagem de usar uma conta de serviço para essa finalidade é que você pode criar um arquivo de credencial específico para o Proxy de Autenticação do Cloud SQL, que fica vinculado de forma explícita e permanente ao Proxy de Autenticação do Cloud SQL enquanto estiver em execução. Por esse motivo, usar uma conta de serviço é o método recomendado para instâncias de produção que não estejam em execução em uma instância do Compute Engine.

O arquivo de credencial pode ser duplicado em uma imagem do sistema se você precisar invocar o Cloud SQL Auth Proxy de várias máquinas.

Para usar este método, você deve criar e gerenciar o arquivo de credenciais. Somente usuários com a permissão resourcemanager.projects.setIamPolicy (como proprietários de projetos) podem criar a conta de serviço. Se o seuGoogle Cloud Se o usuário não tiver essa permissão, será necessário que outra pessoa crie a conta de serviço para você ou use outro método para autenticar o Cloud SQL Auth Proxy.

Aprenda como criar uma conta de serviço .

Permissões necessárias para contas de serviço

Ao usar uma conta de serviço para fornecer as credenciais para o Proxy de Autenticação do Cloud SQL, você deve criá-la com permissões suficientes. Se estiver usando as funções mais refinadas de Gerenciamento e Acesso de Identidade (IAM) para gerenciar suas permissões do Cloud SQL, você deve atribuir à conta de serviço uma função que inclua a permissão cloudsql.instances.connect . As funções predefinidas do Cloud SQL que incluem essa permissão são:

  • Cliente Cloud SQL
  • Editor de SQL em Nuvem
  • Administrador do Cloud SQL

Se você estiver usando as funções de projeto herdadas (Visualizador, Editor, Proprietário), a conta de serviço deverá ter pelo menos a função de Editor.

Mantenha o Cloud SQL Auth Proxy atualizado

O Google ocasionalmente lança novas versões do Cloud SQL Auth Proxy. Você pode conferir a versão atual acessando a página de lançamentos do Cloud SQL Auth Proxy no GitHub . Lançamentos futuros do proxy também serão mencionados no fórum de anúncios do Cloud SQL nos Grupos do Google .

Uso da API

O Cloud SQL Auth Proxy emite solicitações para a API de administração do Cloud SQL. Essas solicitações são contabilizadas na cota da API do seu projeto.

O maior uso da API ocorre ao iniciar o Cloud SQL Auth Proxy. Enquanto o Cloud SQL Auth Proxy estiver em execução, ele emite 2 chamadas de API por hora por instância conectada.

Parâmetros e sinalizadores do Cloud SQL Auth Proxy

O Proxy de Autenticação do Cloud SQL aceita vários sinalizadores e parâmetros ao ser iniciado. Essas opções determinam onde e como o Proxy de Autenticação do Cloud SQL cria os soquetes que usa para se comunicar com o Cloud SQL e como ele autentica.

Para obter ajuda com as opções do Cloud SQL Auth Proxy, consulte as seguintes informações:

Use o Cloud SQL Auth Proxy em um ambiente de produção

Ao usar o Cloud SQL Auth Proxy em um ambiente de produção, há algumas etapas que você pode seguir para garantir que o Cloud SQL Auth Proxy forneça a disponibilidade necessária para seu aplicativo.

Certifique-se de que o Cloud SQL Auth Proxy seja executado como um serviço persistente

Se o processo do Cloud SQL Auth Proxy for interrompido, todas as conexões existentes por meio dele serão descartadas e seu aplicativo não poderá criar mais conexões com a instância do Cloud SQL com o Cloud SQL Auth Proxy. Para evitar esse cenário, execute o Cloud SQL Auth Proxy como um serviço persistente para que, se o Cloud SQL Auth Proxy for encerrado por qualquer motivo, ele seja reiniciado automaticamente. Isso pode ser feito usando um serviço como systemd , upstart ou supervisor . Para o sistema operacional Windows, execute o Cloud SQL Auth Proxy como um serviço do Windows. Em geral, certifique-se de que o Cloud SQL Auth Proxy tenha os mesmos requisitos de tempo de atividade que o processo do seu aplicativo.

Quantas cópias do Cloud SQL Auth Proxy seu aplicativo precisa

Não há necessidade de criar um processo de proxy para cada processo de aplicativo; muitos processos de aplicativo podem compartilhar um único processo de Proxy de Autenticação do Cloud SQL. Execute um processo de cliente de Proxy de Autenticação do Cloud SQL por estação de trabalho ou máquina virtual.

Se você estiver usando o dimensionamento automático para máquinas virtuais, certifique-se de que o Cloud SQL Auth Proxy esteja incluído na configuração da sua máquina virtual, para que sempre que uma nova máquina virtual for iniciada, ela tenha seu próprio processo do Cloud SQL Auth Proxy.

Cabe a você gerenciar quantas conexões seu aplicativo requer, seja limitando ou agrupando as conexões. O Cloud SQL Auth Proxy não impõe nenhuma limitação às novas taxas de conexão ou à contagem de conexões persistentes.

Reduzir a saída do Cloud SQL Auth Proxy

Se precisar reduzir o tamanho do log do Cloud SQL Auth Proxy, você pode fazer isso definindo --quiet ao iniciar o Cloud SQL Auth Proxy. No entanto, lembre-se de que isso reduz a eficácia da saída do Cloud SQL Auth Proxy no diagnóstico de problemas de conexão.

Como o failover afeta o proxy de autenticação do Cloud SQL

Se você estiver executando o Proxy de Autenticação do Cloud SQL em uma instância configurada para Alta Disponibilidade e ocorrer um failover, as conexões por meio do Proxy de Autenticação do Cloud SQL serão afetadas da mesma forma que as conexões por IP: todas as conexões existentes serão perdidas e o aplicativo precisará estabelecer novas conexões. No entanto, nenhuma intervenção manual será necessária; o aplicativo poderá continuar usando as mesmas strings de conexão de antes.

Mantenha a imagem do Docker do Cloud SQL Auth Proxy atualizada

A imagem do Docker do Cloud SQL Auth Proxy é baseada em uma versão específica do Cloud SQL Auth Proxy. Quando uma nova versão do Cloud SQL Auth Proxy estiver disponível, extraia a nova versão da imagem do Docker do Cloud SQL Auth Proxy para manter seu ambiente atualizado. Você pode ver a versão atual do Cloud SQL Auth Proxy consultando a página de lançamentos do Cloud SQL Auth Proxy no GitHub .

Como impor o uso do Cloud SQL Auth Proxy

Você pode impor o uso do Proxy de Autenticação do Cloud SQL em conexões de instâncias do Cloud SQL usando o ConnectorEnforcement . Com a imposição do conector, conexões diretas ao banco de dados são rejeitadas.

Para usar a imposição do conector, use o campo ConnectorEnforcement na API instances .

Se você estiver usando uma instância habilitada para Private Service Connect , haverá uma limitação. Se a instância tiver a imposição do conector habilitada, não será possível criar réplicas de leitura para ela. Da mesma forma, se a instância tiver réplicas de leitura, não será possível habilitar a imposição do conector para ela.

Para obter mais informações sobre como impor o uso somente do Cloud SQL Auth Proxy ou dos Cloud SQL Language Connectors para se conectar a uma instância, consulte Impor o uso do Cloud SQL Auth Proxy .

Sobre o operador de proxy do Cloud SQL

O Cloud SQL Proxy Operator é um operador Kubernetes de código aberto que automatiza a conexão de cargas de trabalho em um cluster do GKE a bancos de dados Cloud SQL. O Cloud SQL Auth Proxy Operator utiliza um recurso personalizado, AuthProxyWorkload, que especifica a configuração do Cloud SQL Auth Proxy para uma carga de trabalho específica. O Cloud SQL Auth Proxy Operator lê esse recurso e adiciona um contêiner do Cloud SQL Auth Proxy com a configuração necessária às cargas de trabalho apropriadas.

Ao instalar o operador no seu cluster do GKE e configurar suas cargas de trabalho e instâncias do Cloud SQL, o Cloud SQL Auth Proxy Operator configura automaticamente o Cloud SQL Auth Proxy e conecta as cargas de trabalho do GKE às suas instâncias do Cloud SQL.

O Operador de Proxy de Autenticação do Cloud SQL também verifica o status do Proxy de Autenticação do Cloud SQL. Se o Proxy de Autenticação do Cloud SQL não conseguir se conectar, o Operador de Proxy de Autenticação do Cloud SQL exibirá informações de depuração e fornecerá orientações para solucionar e reparar problemas comuns de configuração.

Para obter mais informações, consulte Conectar usando o operador de proxy do Cloud SQL .

O que vem a seguir