GoogleCloudPlatform / cloudsql-proxy

CIGo referencia

a Cloud SQL Auth proxy egy bináris, amely iam-alapú jogosultságot és titkosítást biztosít felhő SQL példányhoz való csatlakozáskor.

további információért tekintse meg a Kapcsolódás áttekintő oldalát a felhő SQL-példányhoz való csatlakozásról, vagy a proxyról oldalatrészletesen a felhő SQL-proxy működéséről.

Megjegyzés: A Proxy nem tud hálózati elérési utat biztosítani egy felhő SQL-példányhoz, ha még nincs jelen (például a proxy nem tud hozzáférni egy VPC-hez, ha még nincs hozzáférése hozzá).

telepítés

64 bites Linux esetén futtassa:

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

kiadások további operációs rendszerekhez és architektúrákhoz, és megtalálhatók a releasespage oldalon.

az alternatív disztribúciókat lásd alább a harmadik fél alatt.

Tárolóképek

a proxy konténeres verziói elérhetők a következő Google Cloud Tárolók adatbázisaiban:

  • 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

minden kép meg van címkézve a hozzá tartozó proxy verzióval. A következő címkék jelenleg támogatottak:

  • $VERSION – alapértelmezett kép (ajánlott)
  • $VERSION-alpine – használja alpine:3, mint egy alap kép (csak támogatott v1. 17 fel)
  • $VERSION-buster – használja debian:buster, mint egy alap kép (csak támogatott v1. 17 fel)

javasoljuk, hogy használja a proxy legújabb verzióját, és rendszeresen frissítse a verziót. Azt is javasoljuk azonban, hogy rögzítsen egy adott címkét, és kerülje a legfrissebb címkét. Megjegyzés: a címkézett verzió csak a proxy verziója. Az alapképek változásai megszakíthatják az egyes beállításokat, még a nem fő verzió lépésekben is. Mint ilyen, a legjobb gyakorlat a módosítások tesztelése a telepítés előtt, és az automatedrollbacks használata a lehetséges hibák visszaállításához.

telepítés forrásból

a forrásból történő telepítéshez győződjön meg arról, hogy a Goinstall legújabb verzióját telepítette.

Ezután egyszerűen futtassa:

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

a cloud_sql_proxy a $GOPATH/bin – ba kerül, miután a go get befejeződött.

használat

a következő meghívások mindegyike feltételezi, hogy érvényes hitelesítő adatok vannak jelen a környezetben. A következő példák mind egy INSTANCE_CONNECTION_NAME – ra hivatkoznak, amely a következő formát ölti: myproject:myregion:myinstance. AINSTANCE_CONNECTION_NAME megkereséséhez futtassa a gcloud sql instances describe <INSTANCE_NAME>parancsot, ahol a INSTANCE_NAME az adatbázispéldány neve.

TCP socket példa

# 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 példa

# 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át IP példa

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

a privát IP használatával történő csatlakozáshoz hozzáféréssel kell rendelkeznie a yourproject VPC-jén keresztül. További részletekért lásd: privát IP követelmények.

hitelesítő adatok

a Cloud SQL proxy felhő IAM-fiókot használ a kapcsolatok engedélyezéséhez az aCloud SQL-példány ellen. A proxy a következő sorrendben szerzi be ezeknek a fiókoknak a hitelesítő adatait:

  1. a -credential_file flag
  2. a -token flag
  3. a service account kulcs aGOOGLE_APPLICATION_CREDENTIALS környezeti változóban tárolt elérési úton.
  4. a gcloud felhasználói hitelesítő adatok (a gcloud auth login)
  5. az alkalmazás alapértelmezett hitelesítő adatai

Megjegyzés: A felhőalapú SQL-adatbázishoz csatlakozó fiókoknak a következő IAM-szerepkörök egyikére lesz szükségük:

  • Cloud SQL Client (preferált)
  • Cloud SQL Editor
  • Cloud SQL Admin

vagy manuálisan hozzárendelheti a következő iam engedélyeket:

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

további részletekért lásd: szerepkörök és engedélyek A Cloud SQL alkalmazásban.

amikor a Proxy hitelesíti a Compute Engine virtuális gép alapértelmezett serviceaccountja alatt, a virtuális gépnek rendelkeznie kell legalább a sqlservice.admin API hatókörrel (azaz”https://www.googleapis.com/auth/sqlservice.admin”), és a kapcsolódó projektnek engedélyeznie kell az SQL Admin API-t. Az alapértelmezett szolgáltatási fióknak is rendelkeznie kelllegalább író vagy szerkesztő jogosultságok a cél SQL példányok bármely projektjéhez.

CLI Flags

a Cloud SQL Auth proxy néhány argumentumot vesz igénybe annak konfigurálásához, hogy mely példányok kapcsolódjanak a kapcsolathoz. A proxy által támogatott zászlók teljes listájához használja a cloud_sql_proxy -helpparancsot.

hitelesítési zászlók

-credential_file

megadja a JSON szolgáltatási fiók kulcsának elérési útját, amelyet a proxy használ a kapcsolatok engedélyezéséhez vagy hitelesítéséhez.

-token

ha be van állítva, a proxy ezt a Bearer tokent használja az engedélyezéshez.

-enable_iam_login

lehetővé teszi a proxy számára a Cloud SQL iam adatbázis-hitelesítés használatát. Ez azt eredményezi, hogy a proxy az IAM-fiók hitelesítő adatait használja az adatbázis-felhasználó hitelesítéséhez. Fordrészleteket, lásd a felhő SQL iam adatbázis-hitelesítés áttekintése

csatlakozási zászlók

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

a -dir belsejében megnyitandó példányok vesszővel elválasztott listája. Támogatja a TCP-port bemutatását és az alapértelmezett Unix Tartománysocketek átnevezését is; lásd: examplesbelow. Ugyanaz a lista keresztül lehet biztosítani példányok környezeti változó, abban az esetben, ha mindkettő biztosított – proxy fogja használni parancssori zászló.

példa

TCP socketek használata:

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

Unix aljzatok használata:

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

egyéni Unix socket név megadása:

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

egyéni hely megadása Unix foglalathoz (felülbírálás -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

hozzáférést igényel /dev/fuse, valamint a fusermount bináris. Az opcionális-fuse_tmp jelző megadhatja, hogy hol helyezze el az ideiglenes fájlokat. A -dir által jelzett könyvtár fel van szerelve.

példa

a -fuse használatával nem kell idő előtt megadnia a példányneveket:

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

-instances_metadata=metadata_key

csak a GCE-n használható. A megadott GCE metaadatkulcs lekérdezi a -dir fájlban megnyitandó példányok listáját. A metaadat kulcs relativefrom computeMetadata/v1/. Az érték formátuma megegyezik az’ instances ‘ jelzővel. Függesztési stratégiát használnak, ami azt jelenti, hogy a metadata érték változásai a -dir – ben tükröződnek, még akkor is, ha a proxy fut.Ha egy példányt eltávolítunk a listáról, akkor a megfelelő socket is eltávolításra kerül a -dir – ből (kivéve, ha azt a -instances – ben is megadták), de a meglévő kapcsolatok nem szűnnek meg.

példa

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

megjegyzés: a -instances és a -instances_metadata használható egyidejűleg, de nem kompatibilis a -fuse jelzővel.

-max_connections

ha rendelkezésre áll, az új kapcsolatok megtagadása előtt létrehozandó kapcsolatok maximális száma. Alapértelmezés szerint 0 (nincs korlátozás).

további zászlók

-ip_address_types=PUBLIC,PRIVATE

egy példányhoz való csatlakozáshoz előnyben részesített IP-típusok vesszővel tagolt listája. Például, ha ezt privátra állítja, a proxy arra kényszeríti, hogy csatlakozzon a példányokhoz a példány társított privát IP-jével. Alapértelmezett érték PUBLIC,PRIVATE

-term_timeout=30s

mennyi ideig kell várni a kapcsolatok bezárására a proxy leállítása előtt.Az alapértelmezett érték 0.

-skip_failed_instance_config

ennek a jelzőnek a beállítása megakadályozza, hogy a proxy megszűnjön, ha a példány konfigurációja során hiba lép fel. Felhívjuk figyelmét, hogy ez azt jelenti, hogy egyes esetekben a mayfail helyesen van beállítva, míg mások működhetnek, ha a proxy újraindul.

-log_debug_stdout=true

Ennek célja a nem hibakimenet naplózása a standard error helyett a standard out értékre. Például, ha nem szeretné, hogy a kapcsolattal kapcsolatos üzenetek hibaként jelentkezzenek be, állítsa ezt a jelzőt true értékre. Alapértelmezés szerint hamis.

-structured_logs

az összes naplózási kimenetet JSON-ként írja a következő gombokkal: level, ts,caller, msg. Például az indítási üzenet így néz ki:

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

fut, mint egy Kubernetes oldalkocsi

lásd a példát itt, valamint a csatlakozó GoogleKubernetes Motor.

referencia dokumentáció

  • felhő SQL
  • felhő SQL Auth proxy dokumentáció
  • felhő SQL Auth proxy Gyorsindítások
  • felhő SQL kód minták
  • felhő SQL Auth proxy csomag dokumentáció

hozzájárulás

hozzájárulások várjuk. Kérjük, a részletekért olvassa el a hozzájáruló dokumentumot.

kérjük, vegye figyelembe, hogy ez a projekt megjelent egy közreműködői kódot Conduct.By a projektben való részvétel Ön vállalja, hogy betartja annak feltételeit. További információkért lásd a contributor magatartási kódexét.

harmadik fél

figyelem: ezeket a disztribúciókat a Google hivatalosan nem támogatja.

Homebrew

itt található a Homebrew képlet a felhő SQL Auth proxyhoz.

Kubernetes Cluster Service használata Helm

kövesse ezeket az utasításokat.

ez a diagram létrehoz egy telepítést és egy szolgáltatást, de javasoljuk, hogy a theproxy-t oldalkocsi-tárolóként telepítse a hüvelyekbe.

. net Proxy Wrapper (Nuget csomag)

telepítés NuGet-en keresztül, kövesse ezeket az utasításokat.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.