GoogleCloudPlatform / cloudsql-proxy

CIGo Reference

de Cloud SQL Auth-proxy is een binair programma dat op iam gebaseerde autorisatie en encryptie biedt bij het verbinden met een Cloud SQL-instantie.

zie de overzichtspagina verbinden voor meer informatie over het verbinden met een cloudsql-instantie, of de pagina over de proxy voor details over hoe de Cloudsql-proxy werkt.

Noot: De Proxy kan geen netwerkpad geven naar een Cloudsql-instantie als oneis nog niet aanwezig is (bijvoorbeeld, de proxy kan geen toegang krijgen tot een VPC als het er nog geen toegang toe heeft).

installatie

voor 64-bit Linux, uitvoeren:

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

Releases voor extra OS ‘ s en architecturen en zijn te vinden op de releasespage.

voor alternatieve uitkeringen, zie hieronder onder derde partij.

Containerafbeeldingen

er zijn containerversies van de proxy beschikbaar in de volgende Google 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

elke afbeelding is gelabeld met de bijbehorende proxy-versie. De volgende tags arecurrently ondersteund:

  • $VERSION – standaard afbeelding (aanbevolen)
  • $VERSION-alpine – toepassingen alpine:3als een base-beeld (alleen ondersteund van v1.17-up)
  • $VERSION-buster – toepassingen debian:busterals een base-beeld (alleen ondersteund van v1.17-up)

We raden u aan de nieuwste versie van de proxy en het bijwerken van de versionregularly. Echter, we raden ook pinning aan een specifieke tag en vermijd de nieuwste tag. Opmerking: de gelabelde versie is alleen die van de proxy. Wijzigingen in basisafbeeldingen kunnen specifieke opstellingen breken, zelfs bij niet-belangrijke versiestappen. Als zodanig,het is een beste praktijk om veranderingen te testen voor de implementatie, en het gebruik van automatedrollbacks om potentiële storingen terug te keren.

vanaf bron installeren

om vanaf bron te installeren, moet u de nieuwste versie van Goinstalled hebben.

vervolgens gewoon uitvoeren:

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

de cloud_sql_proxy wordt in $GOPATH/bin geplaatst nadat go get is voltooid.

gebruik

alle volgende aanroepingen gaan ervan uit dat er geldige referenties in de omgeving aanwezig zijn. De volgende voorbeelden verwijzen allemaal naar an INSTANCE_CONNECTION_NAME, die de vorm heeft: myproject:myregion:myinstance. OmINSTANCE_CONNECTION_NAME te vinden, voer je gcloud sql instances describe <INSTANCE_NAME>uit, waarbij INSTANCE_NAME de naam is van de database-instantie.

TCP-socket voorbeeld

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

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

privé IP voorbeeld

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

om verbinding te maken met privé IP, moet u toegang hebben via de VPC van uw project. Zie Private IP-vereisten voor meer informatie.

referenties

de Cloud SQL-proxy gebruikt een Cloud IAM-account om verbindingen te autoriseren tegen acloud SQL-instantie. De proxy betrekt de referenties voor deze accounts in de volgende volgorde:

  1. de -credential_file vlag
  2. de -token vlag
  3. de service-accountsleutel op het pad opgeslagen in deGOOGLE_APPLICATION_CREDENTIALS omgevingsvariabele.
  4. de gcloud-gebruikersreferenties (ingesteld van gcloud auth login)
  5. de standaard referenties

opmerking: elk account dat verbinding maakt met een Cloud SQL-database heeft een van de volgende iam-functies nodig:

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

of men kan handmatig de volgende iam-rechten toewijzen:

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

zie rollen en machtigingen in Cloud SQL voor meer informatie.

wanneer de proxy authenticeert Onder het standaard serviceaccount van de VM van de rekenmachine, moet de VM ten minste de API-scope sqlservice.admin hebben (d.w.z.”https://www.googleapis.com/auth/sqlservice.admin”) en moet de bijbehorende project de SQL Admin API hebben ingeschakeld. Het standaard serviceaccount moet ook de minste writer-of editorrechten hebben voor alle projecten van target SQL-instanties.

CLI Flags

de Cloud SQL Auth-proxy heeft een paar argumenten nodig om te configureren welke instanties verbinding maken met en verbindingsgedrag. Gebruik cloud_sql_proxy -helpvoor een volledige lijst van vlaggen die door de proxy worden ondersteund.

Authenticatievlaggen

-credential_file

Hiermee geeft u het pad op naar een JSON-serviceaccountsleutel die door de proxy ‘ s wordt gebruikt om verbindingen te autoriseren of te verifiëren.

-token

wanneer ingesteld, gebruikt de proxy dit token aan toonder voor autorisatie.

-enable_iam_login

Hiermee kan de proxy gebruikmaken van Cloud SQL iam-databaseverificatie. Dit zorgt ervoor dat de proxy iam-accountreferenties gebruikt voor verificatie van de database-gebruiker. Zie overzicht van Cloudsql IAM-databaseverificatie

Verbindingsvlaggen

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

een door komma ‘ s gescheiden lijst van instanties die binnen -dirmoeten worden geopend. Ondersteunt ook het exposeren van een TCP poort en het hernoemen van de standaard Unix domein Sockets; zie voorbeelden hieronder. Dezelfde lijst kan worden verstrekt via INSTANCES omgevingsvariabele, in casewanneer beide worden verstrekt-proxy zal de opdrachtregelvlag gebruiken.

voorbeeld

TCP-sockets gebruiken:

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

Unix-sockets gebruiken:

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

een aangepaste UNIX-socket-naam opgeven:

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

een aangepaste locatie opgeven voor een Unix-socket (overschrijft -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

vereist toegang tot /dev/fuse en het fusermount binaire bestand. Een optionele -fuse_tmp – vlag kan aangeven waar tijdelijke bestanden moeten worden geplaatst. De directory aangegeven met -dir is gemount.

voorbeeld

met -fuse hoeft u niet van tevoren instantienamen op te geven:

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

-instances_metadata=metadata_key

alleen bruikbaar op GCE. De metadatasleutel van given GCE zal worden verzameld voor een lijst van instanties die in -dirmoeten worden geopend. De metagegevenssleutel is relatiefvan computeMetadata/v1/. Het formaat voor de waarde is hetzelfde als de vlag’ stoffen’. Een hanging-poll strategie wordt gebruikt, wat betekent dat veranderingen in de metadata waarde zullen worden weerspiegeld in de -dir zelfs terwijl de proxy draait.Als een instantie uit de lijst wordt verwijderd zal de bijbehorende socket ook worden verwijderd van -dir (tenzij het ook is opgegeven in -instances), maar alle bestaande verbindingen met deze instantie zullen niet worden beëindigd.

voorbeeld

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

opmerking: -instances en -instances_metadata kunnen tegelijkertijd worden gebruikt, maar zijn niet compatibel met de -fuse vlag.

-max_connections

indien aanwezig, het maximum aantal verbindingen tot stand te brengen alvorens nieuwe verbindingen te weigeren. Standaard 0 (geen limiet).

extra vlaggen

-ip_address_types=PUBLIC,PRIVATE

een door komma ‘ s gescheiden lijst van voorkeurs IP-types voor het verbinden met een instantie. Bijvoorbeeld, het instellen van dit op privé zal de proxy dwingen om verbinding te maken met instancesusing een instantie ‘ s geassocieerde private IP. Standaardwaarden:PUBLIC,PRIVATE

-term_timeout=30s

hoe lang moet worden gewacht voordat verbindingen worden gesloten voordat de proxy wordt afgesloten.Standaard 0.

-skip_failed_instance_config

het instellen van deze vlag zal voorkomen dat de proxy wordt beëindigd als er fouten optreden tijdens de instance configuratie. Houd er rekening mee dat dit betekent dat sommige gevallen niet correct kunnen worden ingesteld, terwijl andere kunnen werken als de proxy opnieuw wordt opgestart.

-log_debug_stdout=true

Dit is om non-error uitvoer te loggen naar standard out in plaats van standaard fout. Bijvoorbeeld, als je niet wilt dat verbinding gerelateerde berichten te loggen als fouten, zet deze vlag op true. Standaard false.

-structured_logs

schrijft alle logging uitvoer als JSON met de volgende toetsen: level, ts,caller, msg. Bijvoorbeeld, het opstartbericht ziet eruit als:

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

draaien als een Kubernetes-zijspan

zie het voorbeeld hier en verbinden met GoogleKubernetes-Engine.

referentiedocumentatie

  • Cloud SQL
  • Cloud SQL Auth-proxy documentatie
  • Cloud SQL Auth-proxy Quickstarts
  • Cloud SQL-codevoorbeelden
  • Cloud SQL Auth – Proxy-Pakketdocumentatie

bijdragen

bijdragen zijn welkom. Zie het bijdragende document voor details.

houd er rekening mee dat dit project is vrijgegeven met een Contributor Code van Conduct.By door deel te nemen aan dit project gaat u ermee akkoord de voorwaarden ervan na te leven. Zie de gedragscode van de deelnemer voor meer informatie.

derde partij

waarschuwing: deze distributies worden niet officieel ondersteund door Google.

Homebrew

hier is Homebrew-formule voor Cloud SQL-Auth-proxy.

Kubernetes Cluster Service met behulp van Helm

volg deze instructies.

deze grafiek maakt een implementatie en een Service aan, maar we raden aan theproxy als een zijspancontainer in uw pods te implementeren.

. net Proxy Wrapper (NuGet Package)

installeer via Nuget, volg deze instructies.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.