GoogleCloudPlatform / cloudsql-proxy

CIGo Reference

Cloud SQL auth proxy on binääri, joka tarjoaa IAM-pohjaisen valtuutuksen ja salauksen yhdistettäessä Cloud SQL-instanssiin.

Katso yhdistävän yleiskatsauksen sivulta lisätietoja Cloud SQL-instanssiin yhdistämisestä tai proxy-sivusta, jos haluat lisätietoja Cloud SQL-välityspalvelimen toiminnasta.

Huom.: Välityspalvelin ei voi tarjota verkkopolkua Cloud SQL-instanssiin, jos oneis ei ole jo olemassa (esim.välityspalvelin ei voi käyttää VPC: tä, jos sillä ei ole jo pääsyä siihen).

asennus

64-bittiselle Linuxille, run:

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

Muiden käyttöjärjestelmien ja arkkitehtuurien julkaisuja ja löytyvät julkaisusivulta.

vaihtoehtoiset jakelut, KS. jäljempänä kohdassa kolmas osapuoli.

Konttikuvat

välityspalvelimesta on konttiversiot saatavilla seuraavasta 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

jokainen kuva on merkitty siihen liittyvällä välityspalvelinversiolla. Seuraavat tagit ovat tällä hetkellä tuettuja:

  • $VERSION – oletuskuva (suositeltava)
  • $VERSION-alpine – käyttää alpine:3pohjakuvana (tukee vain v1. 17: stä ylöspäin)
  • $VERSION-buster – käyttää debian:busterpohjakuvana (tukee vain v1. 17: stä ylöspäin)

suosittelemme, että käytät välityspalvelimen uusinta versiota ja päivität versiosi säännöllisesti. Suosittelemme kuitenkin myös kiinnittämistä tiettyyn tunnisteeseen ja välttämään sitä. Huomautus: tagged versio on vain että välityspalvelimen. Muutokset baseimageissa voivat rikkoa tiettyjä asetelmia, jopa ei-merkittävissä versioiden lisäyksissä. Sellaisenaan, se on paras käytäntö testata muutoksia ennen käyttöönottoa, ja käyttää automatedrollbacks palauttaa mahdolliset viat.

Asenna lähteestä

jos haluat asentaa lähteestä, varmista, että sinulla on uusin versio Goinstalledista.

sitten yksinkertaisesti juostaan:

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

cloud_sql_proxy sijoitetaan $GOPATH/bin Kun go get on valmis.

käyttö

kaikki seuraavat kutsut olettavat, että kelvolliset tunnistetiedot ovat olemassa ympäristössä. Seuraavissa esimerkeissä kaikki viittaukset an INSTANCE_CONNECTION_NAME, joka on muotoa: myproject:myregion:myinstance. EtsiINSTANCE_CONNECTION_NAME ajamalla gcloud sql instances describe <INSTANCE_NAME>, jossa INSTANCE_NAME on tietokantaesiintymän nimi.

TCP socket esimerkki

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

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

Private IP-esimerkki

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

jotta voit muodostaa yhteyden Private IP: llä, sinulla on oltava pääsy projektisi VPC: n kautta. Lisätietoja on ohjeaiheessa Yksityiset IP-vaatimukset.

valtakirjat

Cloud SQL-välityspalvelin käyttää Cloud IAM-tiliä valtuuttaakseen yhteyksiä aCloud SQL-ilmentymää vastaan. Valtakirja toimittaa näiden tilien valtakirjat seuraavassa järjestyksessä:

  1. -credential_file lippu
  2. -token lippu
  3. palvelutilinavain polulla, joka on tallennettuGOOGLE_APPLICATION_CREDENTIALS ympäristömuuttujaan.
  4. gcloudin käyttäjätiedot (asetettu alk.gcloud auth login)
  5. sovelluksen oletustiedot

HUOMAUTUS: Kaikki Cloud SQL-tietokantaan yhdistettävät tilit tarvitsevat yhden seuraavista IAM-rooleista:

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

tai voidaan manuaalisesti määrittää seuraavat IAM-oikeudet:

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

Katso lisätietoja rooleista ja käyttöoikeuksista Cloud SQL: ssä.

kun välityspalvelin todennetaan Laskentamoottorin VM: n oletuspalvelutilillä, VM: llä on oltava vähintään sqlservice.admin API-laajuus (eli”https://www.googleapis.com/auth/sqlservice.admin”) ja siihen liittyvässä projektissa on oltava käytössä SQL Admin API. Oletuspalvelutilillä on myös oltava vähintään kirjailija-tai muokkaajaoikeudet mihin tahansa target SQL-instanssien projektiin.

CLI Flags

Cloud SQL Auth-välityspalvelin käyttää muutamia argumentteja määrittääkseen, mitkä instanssit yhdistävät ja yhteyskäyttäytyminen. Jos haluat täyden luettelon valtakirjan tukemista lipuista, käytä cloud_sql_proxy -help.

Aitousliput

-credential_file

määrittää JSON-palvelutiliin johtavan polun, joka avaa yhteydet valtuuttavia tai todennettavia välityspalvelimia.

-token

kun valtakirja asetetaan, valtakirja käyttää tätä Haltijatunnusta valtuutukseen.

-enable_iam_login

ottaa välityspalvelimen käyttöön Cloud SQL iam-tietokannan todennuksen. Tämä saa välityspalvelimen käyttämään iam-tilin tunnistetietoja tietokannan käyttäjän todentamiseen. Fordetails, Katso yleiskatsaus Cloud SQL iam-tietokannan todennuksesta

Connection Flags

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

pilkulla erotettu lista sisällä avattavista instansseista -dir. Tue myös TCP-portin paljastamista ja Unix-verkkoalueen Oletuspistorasioiden uudelleennimeämistä; katso esimerkit alla. Sama lista voidaan antaa INSTANCES – ympäristömuuttujan kautta, jos molemmat annetaan – välityspalvelin käyttää komentorivilippua.

esimerkki

käyttäen TCP-pistorasioita:

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

Unix-pistorasioiden käyttäminen:

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

mukautetun Unix-socket-nimen määrittäminen:

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

Unix-liitännän mukautetun sijainnin määrittäminen (ohittaa -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

vaatii pääsyn /dev/fuse sekä fusermount binääriin. Valinnaisella merkinnällä-fuse_tmp voidaan määrittää väliaikaistiedostojen paikka. -dir: n ilmoittama ohjaus on asennettu.

esimerkki

käytettäessä -fuse sinun ei tarvitse määrittää esiintymien nimiä etukäteen:

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

-instances_metadata=metadata_key

voidaan käyttää vain GCE: ssä. Given GCE metadata-avainta käytetään luettelossa esiintymistä, jotka avataan -dir. Metatietoavain on relatiivi computeMetadata/v1/. Arvon muoto on sama kuin “instances” – lipulla. Käytössä on roikkuva kyselystrategia, eli muutokset metadata-arvoon näkyvät -dir: ssä jo valtakirjan ollessa käynnissä.Kun instanssi poistetaan luettelosta, vastaava pistorasia poistetaan myös -dir: stä (ellei sitä ole määritelty myös -instances: ssä), mutta kaikki olemassa olevat yhteydet tähän instanssiin eivät katkea.

esimerkki

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

Huomautus: -instances ja -instances_metadata voidaan käyttää samanaikaisesti, mutta ne eivät ole yhteensopivia -fuse lipun kanssa.

-max_connections

jos säädetty, enimmäismäärä yhteyksiä luoda ennen kieltäytymistä newconnections. Oletusarvo on 0 (ei rajoitusta).

Lisäliput

-ip_address_types=PUBLIC,PRIVATE

pilkulla rajattu luettelo suositelluista IP-tyypeistä instanssiin yhdistämistä varten. Esimerkiksi tämän asettaminen yksityiseksi pakottaa välityspalvelimen muodostamaan yhteyden instances using an instance ‘ s associated private IP. Oletusarvo PUBLIC,PRIVATE

-term_timeout=30s

kuinka kauan odottaa yhteyksien sulkeutumista ennen välityspalvelimen sammuttamista.Oletusarvo on 0.

-skip_failed_instance_config

tämän merkinnän asettaminen estää välityspalvelinta päättymästä, jos instanssin määrityksessä ilmenee virheitä. Huomaa, että tämä tarkoittaa, että jotkin esiintymät saattavat epäonnistua määritettäessä oikein, kun taas toiset saattavat toimia, jos välityspalvelin käynnistyy uudelleen.

-log_debug_stdout=true

tämä on kirjata ei-virhe ulostulo standardiin keskivirheen sijaan. Esimerkiksi, jos et halua yhteyden liittyvät viestit kirjautua virheinä, aseta tämä lippu true. Oletus on false.

-structured_logs

kirjoittaa kaikki kirjaaminen lähtö JSON seuraavilla näppäimillä: taso, ts, soittaja, msg. Esimerkiksi käynnistysviesti näyttää:

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

ajaminen Kubernetes-Sivuvaununa

katso esimerkki tästä sekä kytkeminen GoogleKubernetes-moottorista.

Referenssidokumentaatio

  • Cloud SQL
  • Cloud SQL auth proxy Documentation
  • Cloud SQL Code Samples
  • Cloud SQL auth proxy Package Documentation

Contributing

puheenvuorot ovat tervetulleita. Katso lisätietoja asiakirjasta.

huomaa, että tämä projekti on julkaistu koodilla Conduct.By osallistumalla tähän projektiin sitoudut noudattamaan sen ehtoja. Katso contributor Code of Conduct lisätietoja.

kolmas osapuoli

varoitus: nämä jakelut eivät ole virallisesti Googlen tukemia.

Homebrew

täältä löytyy Homebrew ‘ n kaava Cloud SQL Auth-välityspalvelimelle.

Kubernetes Cluster Service käyttäen ruoria

noudata näitä ohjeita.

tämä kaavio luo käyttöönoton ja palvelun, mutta suosittelemme proxyn käyttöönottoa Sidecar-säiliönä kapseleissasi.

. Net Proxy Wrapper (Nuget-paketti)

Asenna nugetin kautta, noudata näitä ohjeita.

Vastaa

Sähköpostiosoitettasi ei julkaista.