GoogleCloudPlatform / cloudsql-proxy
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
- Beholderbilder
- Installer Fra Kilde
- Bruk
- TCP socket eksempel
- Unix socket eksempel
- Privat IP-eksempel
- Legitimasjon
- CLI-Flagg
- Autentiseringsflagg
- -credential_file
- -token
- -enable_iam_login
- Tilkoblingsflagg
- -instances="project1:region:instance1,project3:region:instance1"
- -fuse
- -instances_metadata=metadata_key
- -max_connections
- Flere Flagg
- -ip_address_types=PUBLIC,PRIVATE
- -term_timeout=30s
- -skip_failed_instance_config
- -log_debug_stdout=true
- -structured_logs
- Kjører Som En Kubernetes Sidecar
- Referansedokumentasjon
- Bidrar
- Tredjepart
- Homebrew
- Kubernetes Cluster Service ved Hjelp Av Helm
- . Net Proxy Wrapper (Nuget Pakke)
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
– brukeralpine:3
som et basisbilde (støttes bare fra v1. 17 opp) -
$VERSION-buster
– brukerdebian:buster
som 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:
- flagget
-credential_file
- flagget
-token
- tjenestekontonøkkelen på banen som er lagret i miljøvariabelen
GOOGLE_APPLICATION_CREDENTIALS
. - gcloud brukerlegitimasjon (sett fra
gcloud auth login
) - 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.