GoogleCloudPlatform / cloudsql-proxy

CIIr Referência

Nuvem SQL Autenticação de proxy é um binário que fornece IAM-basedauthorization e criptografia quando ligar a uma Nuvem de instância de SQL.

veja a Página de Visão Geral da ligação para mais informações sobre a ligação a uma instância de SQL na nuvem, ou a página sobre o proxy para detalhes sobre como o proxy de SQL na nuvem funciona.

Nota: O Proxy não pode fornecer um caminho de rede para uma instância SQL na nuvem se o One já não estiver presente (por exemplo, o proxy não pode acessar um VPC se ele ainda não tiver acesso a ele).

instalação

para Linux de 64 bits, executar:

wget https://storage.googleapis.com/cloudsql-proxy/v1.19.2/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxychmod +x cloud_sql_proxy

Releases para sistemas operacionais e arquiteturas adicionais e ser encontrado no releasespage.

para distribuições alternativas, Ver abaixo sob terceiros.

Container Images

There are containerized versions of the proxy available from the follinggoogle Cloud Container Registry repositories:

  • gcr.io/cloudsql-docker/gce-proxy
  • us.gcr.io/cloudsql-docker/gce-proxy
  • eu.gcr.io/cloudsql-docker/gce-proxy
  • asia.gcr.io/cloudsql-docker/gce-proxy

Cada imagem é identificada com o proxy associados versão. Seguintes tags (etiquetas) arecurrently suportados:

  • $VERSION – imagem padrão (recomendado)
  • $VERSION-alpine – utiliza alpine:3como uma imagem de base (suporte somente a partir de v1.17)
  • $VERSION-buster – utiliza debian:bustercomo uma imagem de base (suporte somente a partir de v1.17)

recomendamos utilizar a versão mais recente do proxy e atualizar o versionregularly. No entanto, também recomendamos a marcação específica e evitar a marca mais recente. Nota: a versão marcada é apenas a do proxy. As alterações nas imagens de base podem quebrar configurações específicas, mesmo com incrementos de versão não-major. Como tal, é uma boa prática para testar mudanças antes da implantação, e usar automatedrollbacks para reverter potenciais falhas.

instale a partir do Código

para instalar a partir do Código, certifique-se de que tem a última versão do Goinstalled.

então, simplesmente executar:

go get github.com/GoogleCloudPlatform/cloudsql-proxy/cmd/cloud_sql_proxy

o cloud_sql_proxy será colocado em $GOPATH/bin após go get completar.

Utilização

todas as seguintes invocações assumem credenciais válidas estão presentes no ambiente. Os exemplos seguintes referem-se a an INSTANCE_CONNECTION_NAME,que assume a forma: myproject:myregion:myinstance. Para encontrar oINSTANCE_CONNECTION_NAME, execute gcloud sql instances describe <INSTANCE_NAME> onde INSTANCE_NAME é o nome da instância de banco de dados.

socket de TCP exemplo

# Starts the proxy listening on 127.0.0.1:5432cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432
# Starts the proxy listening on on port 5432 on *all* interfacescloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:5432

socket Unix exemplo

# The proxy will mount a Unix domain socket at /cloudsql/<INSTANCE_CONNECTION_NAME># Note: The directory specified by `-dir` must exist.cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME>

IP Privado exemplo

cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -ip_address_types=PRIVATE

para conectar-se usando o IP Privado, você deve ter acesso através de seuprojeto do VPC. Para mais detalhes, consulte os requisitos de IP privados.

Credencies

The Cloud SQL proxy uses a Cloud IAM account to authorize connections against aCloud SQL instance. O proxy obtém as credenciais para estas contas na seguinte ordem:

  1. the -credential_file flag
  2. the -token flag
  3. the service account key at the path stored in the GOOGLE_APPLICATION_CREDENTIALS environment variable.
  4. as credenciais de utilizador gcloud (definidas a partir de gcloud auth login)
  5. as credenciais predefinidas da aplicação

Nota: qualquer conta que se ligue a uma base de dados SQL na nuvem necessitará de uma das seguintes funções do IAM::

  • Nuvem de Cliente SQL (preferencial)
  • Nuvem Editor de SQL
  • Nuvem de Administração de SQL

Ou pode-se atribuir manualmente o seguinte IAM permissões:

  • cloudsql.instances.connect
  • cloudsql.instances.get

Consulte Papéis e Permissões em Nuvem SQL para obter detalhes.

quando o proxy autentica sob a conta de Serviço padrão do motor de cálculo VM, o VM deve ter pelo menos o escopo da API sqlservice.admin (i.e.,”https://www.googleapis.com/auth/sqlservice.admin”) e o projectM deve ter a API de Administração SQL ativada. A conta de Serviço padrão também deve ter menos privilégios de escritor ou editor para quaisquer projetos de instâncias SQL alvo.

CLI Flags

The Cloud SQL Auth proxy takes a few arguments to configure what instances to connectto and connection behavior. Para uma lista completa de opções suportadas pelo proxy,use cloud_sql_proxy -help.

Parâmetros de autenticação

-credential_file

indica o caminho para uma chave de conta de serviço JSON que os proxyuses autorizem ou autentiquem conexões.

-token

quando configurado, o ‘proxy’ usa este símbolo ao portador para a autorização.

-enable_iam_login

activa o ‘proxy’ a usar a autenticação da base de dados SQL IAM na nuvem. Isto fará com que o proxy use as credenciais da conta IAM para autenticação de usuário de banco de dados. Fordetails, see Overview of Cloud SQL IAM database authentication

Connection Flags

-instances="project1:region:instance1,project3:region:instance1"

uma lista de instâncias separadas por vírgulas a abrir dentro de -dir. Também supportsexposing a TCP port and renaming the default Unix Domain Sockets; see examples below. A mesma lista pode ser fornecida através de INSTANCES environment variable, em caso em que ambos são fornecidos-proxy irá usar a bandeira da linha de comandos.

Exemplo

Usando sockets TCP:

./cloud_sql_proxy -instances=my-project:us-central1:sql-inst=tcp:3306 &mysql -u root -h 127.0.0.1

Usando sockets Unix:

./cloud_sql_proxy -dir=/cloudsql -instances=my-project:us-central1:sql-inst &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst

Para especificar um costume Unix socket nome:

./cloud_sql_proxy -dir=/cloudsql \ -instances=my-project:us-central1:sql-inst=unix:custom_socket_name &mysql -u root -S /cloudsql/custom_socket_name

Para especificar um local personalizado para um socket Unix (substitui -dir):

./cloud_sql_proxy -dir=/cloudsql \ -instances=my-project:us-central1:sql-inst=unix:/my/custom/sql-socket &mysql -u root -S /my/custom/sql-socket

-fuse

Requer o acesso a /dev/fuse assim como fusermount binário. Uma bandeira opcional-fuse_tmp pode especificar onde colocar arquivos temporários. A direcção indicada por -dir está montada.

exemplo

usando -fuse, você não precisa especificar nomes de instância antes do tempo:

./cloud_sql_proxy -dir=/cloudsql -fuse &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst

-instances_metadata=metadata_key

utilizável apenas na GCE. A chave de meta-dados GCE given será compilada para uma lista de instâncias a abrir em -dir. A chave dos metadados é relativa a partir de computeMetadata/v1/. O formato para o valor é o mesmo que a opção “substâncias”. Uma estratégia de pesquisa por enforcamento é usada, o que significa que as mudanças no valor de themetadata serão refletidas no -dir mesmo enquanto o proxy estiver em execução.Quando uma instância é removida da lista, o soquete correspondente também será removido de -dir (a menos que também tenha sido especificado em -instances), mas nenhuma conexão existente a esta instância será terminada.

exemplo

./cloud_sql_proxy -dir=/cloudsql \ -instances_metadata instance/attributes/<custom-metadata-key> &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst

Nota: -instances e -instances_metadata podem ser utilizados ao mesmo tempo, mas não são compatíveis com a bandeira -fuse.

-max_connections

se previsto, o número máximo de ligações a estabelecer antes de recusar novas ligações. O valor por omissão é 0 (sem limite).

bandeiras adicionais

-ip_address_types=PUBLIC,PRIVATE

uma lista delimitada por vírgulas dos tipos de IP preferidos para se ligar a uma instância. Por exemplo, configurar isto como PRIVATE forçará o proxy a ligar-se a instances usando o IP privado associado a uma instância. Predefinições para PUBLIC,PRIVATE

-term_timeout=30s

quanto tempo para esperar que as ligações fechem antes de desligar o proxy.O valor por omissão é 0.

-skip_failed_instance_config

a configuração desta opção irá impedir que o ‘proxy’ termine se ocorrerem quaisquer erros durante a configuração da instância. Por favor, note que isto significa que algumas instâncias podem não ser configuradas corretamente enquanto outras podem funcionar se o proxy reiniciar.

-log_debug_stdout=true

isto é para registrar a saída de não-erro para o standard out em vez de erro padrão. Por exemplo, se não quiser que as mensagens relacionadas com a ligação se registem como erros, configure esta opção como verdadeira. O padrão é false.

-structured_logs

grava toda a saída de registo como JSON com as seguintes teclas: level, ts, chamador,msg. Por exemplo, a mensagem inicial parece:

{"level":"info","ts":1616014011.8132386,"caller":"cloud_sql_proxy/cloud_sql_proxy.go:510","msg":"Usinggcloud's active project: "}

Running as a Kubernetes Sidecar

See the example here as well as Connecting from GoogleKubernetes Engine.

Documentação de Referência

  • Nuvem SQL
  • Nuvem SQL Auth Documentação do proxy
  • Nuvem SQL Autenticação de proxy Quickstarts
  • Nuvem SQL Exemplos de Código
  • Nuvem SQL Autenticação de proxy Documentação do Pacote

Contribuindo

Contribuições são bem-vindas. Por favor, consulte o documento contributivo para mais detalhes.

por favor, note que este projecto é lançado com um código de Conduct.By participar neste projecto você concorda em cumprir os seus termos. Código de conduta do SeeContributor para mais informações.

terceiros

aviso: estas distribuições não são oficialmente suportadas pelo Google.

Homebrew

existe aqui a fórmula Homebrew para o proxy da nuvem SQL Auth.

Kubernetes Cluster Service using Helm

Follow these instructions.

este gráfico cria uma implantação e um serviço, mas recomendamos a implantação da Proxy como um contêiner sidecar em suas cápsulas.

. Net Proxy Wrapper (pacote Nuget)

Install via Nuget, follow theseinstructions.

Deixe uma resposta

O seu endereço de email não será publicado.