GoogleCloudPlatform / cloudsql-proxy
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
- Konttikuvat
- Asenna lähteestä
- käyttö
- TCP socket esimerkki
- Unix socket esimerkki
- Private IP-esimerkki
- valtakirjat
- CLI Flags
- Aitousliput
- -credential_file
- -token
- -enable_iam_login
- Connection Flags
- -instances="project1:region:instance1,project3:region:instance1"
- -fuse
- -instances_metadata=metadata_key
- -max_connections
- Lisäliput
- -ip_address_types=PUBLIC,PRIVATE
- -term_timeout=30s
- -skip_failed_instance_config
- -log_debug_stdout=true
- -structured_logs
- ajaminen Kubernetes-Sivuvaununa
- Referenssidokumentaatio
- Contributing
- kolmas osapuoli
- Homebrew
- Kubernetes Cluster Service käyttäen ruoria
- . Net Proxy Wrapper (Nuget-paketti)
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:3
pohjakuvana (tukee vain v1. 17: stä ylöspäin) -
$VERSION-buster
– käyttäädebian:buster
pohjakuvana (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ä:
-
-credential_file
lippu -
-token
lippu - palvelutilinavain polulla, joka on tallennettu
GOOGLE_APPLICATION_CREDENTIALS
ympäristömuuttujaan. - gcloudin käyttäjätiedot (asetettu alk.
gcloud auth login
) - 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.