GoogleCloudPlatform / cloudsql-proxy

 CI Gå Referanse

Cloud SQL Auth proxy er en binær som gir IAM-basertautorisering og kryptering når du kobler til En Cloud SQL-forekomst.

Se Siden Koble Til Oversikt hvis du vil ha mer informasjon om hvordan du kobler til En Cloud SQL-forekomst, Eller Om proxy-sidenfor detaljer om Hvordan Cloud SQL proxy fungerer.

Notat: Proxyen kan ikke gi en nettverksbane til En Cloud SQL-forekomst hvis en ikke allerede er tilstede(for eksempel kan proxyen ikke få tilgang til EN VPC hvis den ikke allerede har tilgang til den).

Installasjon

for 64-biters Linux, kjør:

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

Utgivelser for flere OS og arkitekturer og bli funnet på releasespage.

for alternative distribusjoner, se nedenfor under tredjepart.

Beholderbilder

det finnes containerversjoner av proxyen tilgjengelig fra følgendegoogle 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

Hvert bilde er merket med den tilknyttede proxy-versjonen. Følgende koder støttes for øyeblikket:

  • $VERSION – standard bilde (anbefalt)
  • $VERSION-alpine – bruker alpine:3 som et basisbilde (støttes bare fra v1. 17 opp)
  • $VERSION-buster – bruker debian:bustersom et basisbilde (støttes bare fra v1. 17 opp)

vi anbefaler at du bruker den nyeste versjonen av proxyen og oppdaterer versjonenjevnlig. Vi anbefaler imidlertid også å feste til en bestemt tag og unngå den nyeste taggen. Merk: den merkede versjonen er bare den av proxyen. Endringer i baseimages kan bryte bestemte oppsett, selv på ikke-store versjon trinn. Som sådan er det en god praksis å teste endringer før distribusjon, og bruke automatedrollbacks for å tilbakestille potensielle feil.

Installer Fra Kilde

hvis du vil installere Fra kilde, må Du sørge for at Du har den nyeste Versjonen Av Goinstalled.

deretter kjører du bare:

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

cloud_sql_proxy vil bli plassert i $GOPATH/bin etter go get fullført.

Bruk

Alle følgende invokasjoner antar gyldige legitimasjon er til stede imiljø. Følgende eksempler refererer alle til en INSTANCE_CONNECTION_NAME, som tar skjemaet: myproject:myregion:myinstance. For å finneINSTANCE_CONNECTION_NAME, kjør gcloud sql instances describe <INSTANCE_NAME>der INSTANCE_NAME er navnet på databaseforekomsten.

TCP socket eksempel

# 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

Unix socket eksempel

# 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>

Privat IP-eksempel

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

For å koble til Ved Hjelp Av Privat IP, må du ha tilgang gjennom yourprojects VPC. For mer informasjon, se Private IP-Krav.

Legitimasjon

Cloud SQL-proxyen bruker En Cloud iam-konto til å godkjenne tilkoblinger mot aCloud SQL-forekomst. Proxy kilder legitimasjonene for disse kontoene i følgende rekkefølge:

  1. flagget -credential_file
  2. flagget -token
  3. tjenestekontonøkkelen på banen som er lagret i miljøvariabelen GOOGLE_APPLICATION_CREDENTIALS.
  4. gcloud brukerlegitimasjon (sett fra gcloud auth login)
  5. Programmet Standard Legitimasjon

Merk: enhver konto som kobler til En Sky SQL database vil trenge en av thefollowing iam roller:

  • Cloud SQL Client (foretrukket)
  • Cloud SQL Editor
  • Cloud SQL Admin

eller man kan manuelt tildele følgende iam-tillatelser:

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

Se Roller og Tillatelser i Cloud SQL for detaljer.

NÅR proxyen godkjennes under Compute Engine VM standard serviceaccount, MÅ VM ha MINST API-omfanget sqlservice.admin (dvs.”https://www.googleapis.com/auth/sqlservice.admin”) og den tilknyttede projectmust har SQL Admin API aktivert. Standard tjenestekonto må også haminst forfatter-eller redigeringsrettigheter til alle prosjekter av MÅL SQL-forekomster.

CLI-Flagg

Cloud SQL Auth-proxyen tar noen argumenter for å konfigurere hvilke forekomster som skal tilkoblesto-og tilkoblingsadferd. For en fullstendig liste over flagg som støttes av proxyen,bruk cloud_sql_proxy -help.

Autentiseringsflagg

-credential_file

Angir banen TIL en JSON-kontonøkkel som proxyusene skal godkjenne eller godkjenne tilkoblinger.

-token

når den er satt, bruker proxyen Dette Bærertokenet for autorisasjon.

-enable_iam_login

Aktiverer proxyen til Å bruke Cloud SQL IAM databasegodkjenning. Dette vil føre til at proxyen bruker iam-kontoinformasjon for databasebrukergodkjenning. For detaljer, se Oversikt Over Cloud SQL IAM databasegodkjenning

Tilkoblingsflagg

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

en kommaseparert liste over forekomster som skal åpnes i -dir. Støtter ogsåutsette EN TCP-port og gi nytt Navn til Standard Unix-Domenekontakter; se eksemplernedenfor. Samme liste kan gis via FOREKOMSTER miljøvariabel, i tilfellenår begge er gitt-proxy vil bruke kommandolinje flagg.

Eksempel

Bruke TCP-kontakter:

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

Bruke Unix-kontakter:

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

slik angir du et egendefinert Unix-socket-navn:

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

slik angir du en egendefinert plassering For En Unix-kontakt (overstyrer -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

Krever tilgang til /dev/fuse så vel som fusermount binær. Et valgfritt -fuse_tmp – flagg kan angi hvor midlertidige filer skal plasseres. Directoryindicated by -dir er montert.

Eksempel

Ved hjelp av -fuse trenger du ikke å angi forekomstnavn på forhånd:

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

-instances_metadata=metadata_key

Kan Bare Brukes PÅ GCE. Thegiven gce metadata nøkkel vil blipolled for en liste over forekomster for å åpne i -dir. Metadatanøkkelen er relativfra computeMetadata/v1/. Formatet for verdien er det samme som’ instances ‘ flagget. En hengende avstemningsstrategi brukes, noe som betyr at endringer i themetadata-verdien vil bli reflektert i -dir selv når proxyen kjører.Når en forekomst er fjernet fra listen, vil den tilsvarende kontakten også fjernes fra -dir (med mindre den også ble spesifisert i -instances), men alle eksisterende tilkoblinger til denne forekomsten vil ikke bli avsluttet.

Eksempel

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

Merk: -instances og -instances_metadata kan brukes samtidig, men er ikke kompatible med flagget -fuse.

-max_connections

hvis gitt, maksimalt antall tilkoblinger for å etablere før du nekter nytilkoblinger. Standard til 0(ingen grense).

Flere Flagg

-ip_address_types=PUBLIC,PRIVATE

en kommaseparert liste over foretrukne IP-typer for tilkobling til en forekomst. For eksempel vil sette DETTE TIL PRIVAT tvinge proxyen til å koble til instancesusing en instans tilknyttede private IP. Mislighold til PUBLIC,PRIVATE

-term_timeout=30s

Hvor lenge å vente på tilkoblinger for å lukke før du slår av proxyen.Standard til 0.

-skip_failed_instance_config

Innstilling av dette flagget vil forhindre at proxyen avsluttes hvis det oppstår feil under instanskonfigurasjon. Vær oppmerksom på at dette betyr at noen tilfeller mayfail å bli satt opp riktig, mens andre kan fungere hvis proxy starter på nytt.

-log_debug_stdout=true

Dette er å logge ikke-feilutgang til standard ut i stedet for standardfeil. For eksempel, hvis du ikke vil at tilkoblingsrelaterte meldinger skal logge som feil, setter du dette flagget til true. Mislighold til false.

-structured_logs

Skriver all logging utgang SOM JSON med følgende taster: nivå, ts, caller, msg. For eksempel ser oppstartsmeldingen ut som:

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

Kjører Som En Kubernetes Sidecar

Se eksemplet her, Samt Tilkobling fra GoogleKubernetes-Motoren.

Referansedokumentasjon

  • Cloud SQL Auth proxy-Dokumentasjon
  • Cloud SQL AUTH proxy-Dokumentasjon
  • Cloud SQL AUTH proxy-Pakkedokumentasjon

Bidrar

bidrag Er Velkomne. Vennligst se BIDRAGENDE dokumentfor detaljer.

Vær oppmerksom på at dette prosjektet er utgitt Med En Bidragsyter Kode av Conduct.By ved å delta i dette prosjektet godtar du å overholde vilkårene. Seecontributor Code of Conduct for mer informasjon.

Tredjepart

ADVARSEL: disse distribusjonene støttes ikke offisielt Av Google.

Homebrew

Det Er Homebrew formel for Cloud SQL Auth proxy her.

Kubernetes Cluster Service ved Hjelp Av Helm

Følg disse instruksjonene.

dette diagrammet oppretter En Distribusjon og En Tjeneste, men vi anbefaler å distribuere theproxy som en sidecar container i pods.

. Net Proxy Wrapper (Nuget Pakke)

Installer via Nuget, følg disse instruksjonene.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.