GoogleCloudPlatform / cloudsql-proxy
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
- Tárolóképek
- telepítés forrásból
- használat
- TCP socket példa
- Unix socket példa
- privát IP példa
- hitelesítő adatok
- CLI Flags
- hitelesítési zászlók
- -credential_file
- -token
- -enable_iam_login
- csatlakozási zászlók
- -instances="project1:region:instance1,project3:region:instance1"
- -fuse
- -instances_metadata=metadata_key
- -max_connections
- további zászlók
- -ip_address_types=PUBLIC,PRIVATE
- -term_timeout=30s
- -skip_failed_instance_config
- -log_debug_stdout=true
- -structured_logs
- fut, mint egy Kubernetes oldalkocsi
- referencia dokumentáció
- hozzájárulás
- harmadik fél
- Homebrew
- Kubernetes Cluster Service használata Helm
- . net Proxy Wrapper (Nuget csomag)
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áljaalpine:3
, mint egy alap kép (csak támogatott v1. 17 fel) -
$VERSION-buster
– használjadebian: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:
- a
-credential_file
flag - a
-token
flag - a service account kulcs a
GOOGLE_APPLICATION_CREDENTIALS
környezeti változóban tárolt elérési úton. - a gcloud felhasználói hitelesítő adatok (a
gcloud auth login
) - 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 -help
parancsot.
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.