GoogleCloudPlatform / cloudql-proxy

CIGo Reference

Cloud SQL Auth proxy är en binär som ger iam-basedauthorization och kryptering när du ansluter till en Cloud SQL-instans.

se sidan Anslutnings översikt för mer information omansluta till en Cloud SQL-instans, eller om proxysidanför detaljer om hur Cloud SQL-proxy fungerar.

notera: Proxyn kan inte tillhandahålla en nätverksväg till en Cloud SQL-instans om en inte redan finns (t.ex. kan proxyn inte komma åt en VPC om den inte redan har tillgång till den).

Installation

för 64-bitars Linux, kör:

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

utgåvor för ytterligare operativsystem och arkitekturer och finns på releasespage.

för alternativa distributioner, se nedan under tredje part.

Containerbilder

det finns containeriserade versioner av proxy tillgängliga från followingGoogle 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

varje bild är taggad med tillhörande proxyversion. Följande taggar stöds för närvarande:

  • $VERSION – standardbild (rekommenderas)
  • $VERSION-alpine – använder alpine:3 som en basbild (stöds endast från v1. 17 upp)
  • $VERSION-buster – använder debian:buster som en basbild (stöds endast från v1. 17 upp)

vi rekommenderar att du använder den senaste versionen av proxyn och uppdaterar versionenregelbundet. Vi rekommenderar dock att du fäster på en viss tagg och undviker den senaste taggen. OBS: Den taggade versionen är bara den för proxy. Förändringar i basbilder kan bryta specifika inställningar, även på icke-större versionssteg. Som sådan är det en bästa praxis att testa ändringar före distribution och använda automatiska rullbacks för att återställa potentiella fel.

Installera från källan

för att installera från källan, se till att du har den senaste versionen av Goinstalled.

kör sedan helt enkelt:

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

cloud_sql_proxy kommer att placeras i $GOPATH/bin efter att go get har slutförts.

användning

alla följande anrop antar att giltiga referenser finns i miljön. Följande exempel refererar alla till en INSTANCE_CONNECTION_NAME, som har formen: myproject:myregion:myinstance. För att hittaINSTANCE_CONNECTION_NAME, kör gcloud sql instances describe <INSTANCE_NAME> där INSTANCE_NAME är namnet på databasinstansen.

TCP-uttag exempel

# 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

exempel på Unix-uttag

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

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

för att ansluta med privat IP måste du ha åtkomst via yourprojects VPC. För mer information, se privata IP-krav.

referenser

Cloud SQL-proxyn använder ett Cloud iam-konto för att auktorisera anslutningar mot aCloud SQL-instans. Proxykällorna för dessa konton iföljande ordning:

  1. -credential_file flagga
  2. -token flagga
  3. servicekontonyckeln på sökvägen lagrad i miljövariabeln GOOGLE_APPLICATION_CREDENTIALS.
  4. GCloud-användaruppgifterna (Ställ in från gcloud auth login)
  5. ansökan standard referenser

Obs: alla konton som ansluter till ett moln SQL-databas kommer att behöva en av deföljande iam Roller:

  • Cloud SQL-klient (föredragen)
  • Cloud SQL Editor
  • Cloud SQL Admin

eller man kan manuellt tilldela följande iam-behörigheter:

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

se roller och behörigheter i Cloud SQL för mer information.

när proxy autentiseras under Compute Engine VM standard serviceaccount, VM måste ha åtminstone sqlservice.admin API omfattning (dvs”https://www.googleapis.com/auth/sqlservice.admin”) och tillhörande projectmust har SQL Admin API aktiverat. Standardtjänstkontot måste också haåtminstone writer eller editor privilegier till alla projekt av mål SQL-instanser.

CLI-flaggor

Cloud SQL Auth-proxy tar några argument för att konfigurera vilka instanser som ska anslutas till och anslutningsbeteende. För en fullständig lista över flaggor som stöds av proxyn,använd cloud_sql_proxy -help.

Autentiseringsflaggor

-credential_file

anger sökvägen till en JSON service-konto nyckel proxyanvänder att auktorisera eller autentisera anslutningar.

-token

när den är inställd använder proxyn denna Bärartoken för godkännande.

-enable_iam_login

aktiverar proxy att använda Cloud SQL iam databasautentisering. Detta kommer att orsaka proxy att använda iam-kontouppgifter för databasanvändarautentisering. Fordetails, se översikt över Cloud SQL iam databasautentisering

Anslutningsflaggor

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

en kommaseparerad lista över instanser som ska öppnas inuti -dir. Stöder också att exponera en TCP-port och byta namn på standard Unix-Domänuttag; se exempelnedan. Samma lista kan tillhandahållas via instanser miljövariabel, i casewhen båda tillhandahålls-proxy kommer att använda kommandoraden flagga.

exempel

använda TCP-uttag:

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

använda Unix-uttag:

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

ange ett anpassat Unix-socket-namn:

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

ange en anpassad plats för ett Unix-uttag (åsidosätter -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

kräver åtkomst till /dev/fuse samt fusermount binär. En valfri-fuse_tmp – flagga kan ange var tillfälliga filer ska placeras. Directoryindikerat av -dir är monterad.

exempel

med -fuse behöver du inte ange instansnamn i förväg:

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

-instances_metadata=metadata_key

kan endast användas på GCE. Den angivna GCE-metadatanyckeln kommer att blipolled för en lista över instanser som ska öppnas i -dir. Metadatanyckeln är relativfrån computeMetadata/v1/. Formatet för värdet är detsamma som flaggan’ instanser’. En hanging-poll-strategi används, vilket innebär att ändringar i themetadata-värdet kommer att återspeglas i -dir även när proxyn körs.När en instans tas bort från listan kommer motsvarande uttag att tas bort från -dir också (om det inte också anges i -instances), men alla befintliga anslutningar till denna instans kommer inte att avslutas.

exempel

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

Obs: -instances och -instances_metadata kan användas samtidigt menär inte kompatibla med -fuse – flaggan.

-max_connections

om det tillhandahålls, det maximala antalet anslutningar för att upprätta innan du vägrar nyaanslutningar. Standardvärdet är 0 (ingen gräns).

ytterligare flaggor

-ip_address_types=PUBLIC,PRIVATE

en kommaseparerad lista över föredragna IP-typer för anslutning till en instans. Till exempel, om du ställer in detta till privat kommer proxyn att tvingas ansluta till instances med hjälp av en instans associerade privata IP. Standard för PUBLIC,PRIVATE

-term_timeout=30s

hur länge väntar du på att anslutningarna stängs innan du stänger av proxyn.Standardvärdet är 0.

-skip_failed_instance_config

om du ställer in den här flaggan kommer proxyn inte att avslutas om några fel uppstår under instanskonfigurationen. Observera att detta innebär att vissa fall kan misslyckas med att ställas in korrekt medan andra kan fungera om proxyn startas om.

-log_debug_stdout=true

detta är att logga icke-felutmatning till standard ut istället för standardfel. Till exempel, om du inte vill att anslutningsrelaterade meddelanden ska logga som fel, Ställ inDenna flagga till true. Standardvärdet är falskt.

-structured_logs

skriver alla loggningsutdata som JSON med följande tangenter: nivå, ts, caller,msg. Till exempel ser startmeddelandet ut:

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

körs som en Kubernetes sidovagn

se exemplet här samt anslutning från GoogleKubernetes Motor.

referensdokumentation

  • moln SQL
  • moln SQL Auth proxy dokumentation
  • moln SQL Auth proxy Quickstarts
  • moln SQL kod prover
  • moln SQL Auth Proxy paket dokumentation

bidragande

bidrag är välkomna. Vänligen, se bidragande dokument för detaljer.

Observera att detta projekt släpps med en Bidragskod för Conduct.By genom att delta i detta projekt samtycker du till att följa dess villkor. Se contributor uppförandekod för mer information.

tredje part

varning: dessa distributioner stöds inte officiellt av Google.

Homebrew

det finns Homebrew formel för Cloud SQL Auth proxy här.

Kubernetes Klustertjänst med hjälp av Helm

följ dessa instruktioner.

det här diagrammet skapar en distribution och en tjänst, men vi rekommenderar att du distribuerar theproxy som en sidvagnsbehållare i dina pods.

. Net Proxy Wrapper (Nuget paket)

installera via Nuget, följ theseinstructions.

Lämna ett svar

Din e-postadress kommer inte publiceras.