GoogleCloudPlatform / cloudsql-proxy
Cloud SQL Auth proxy je binární, který poskytuje IAM-basedauthorization a šifrování při připojení k Cloud instance SQL.
další informace o připojení k instanci Cloud SQL naleznete na stránce Connecting Overview nebo na stránce about the proxy.
Poznámka: Proxy nemůže poskytnout síťovou cestu k instanci Cloud SQL, pokud již není přítomen (např. proxy nemůže přistupovat k VPC, pokud k němu již nemá přístup).
- Instalace
- Kontejner Obrázky
- instalace ze zdroje
- použití
- TCP socket příklad
- Unix socket příklad
- Privátní IP příklad
- pověření
- CLI Vlajky
- Ověřování Vlajky
- -credential_file
- -token
- -enable_iam_login
- Připojení Vlajky
- -instances="project1:region:instance1,project3:region:instance1"
- -fuse
- -instances_metadata=metadata_key
- -max_connections
- další příznaky
- -ip_address_types=PUBLIC,PRIVATE
- -term_timeout=30s
- -skip_failed_instance_config
- -log_debug_stdout=true
- -structured_logs
- Běží jako Kubernetes Sidecar
- Referenční Dokumentace
- Přispívající
- třetí strana
- Homebrew
- Kubernetes Cluster Service pomocí kormidla
- . Net Proxy Wrapper (nuget Package)
Instalace
Pro 64-bit Linux, spusťte:
wget https://storage.googleapis.com/cloudsql-proxy/v1.19.2/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxychmod +x cloud_sql_proxy
verze pro další operační systémy a architektury a lze nalézt na releasespage.
alternativní distribuce viz níže v části třetí strana.
Kontejner Obrázky
Tam jsou kontejnerové verze proxy k dispozici od followingGoogle Cloud Kontejner Registru repozitářů:
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
Každý obraz je označen s tím spojené proxy verze. Následující kategorie arecurrently podporované:
-
$VERSION
– výchozí obrázek (doporučeno) -
$VERSION-alpine
– používáalpine:3
jako základní obraz (podporován pouze z v1.17 až) -
$VERSION-buster
– používádebian:buster
jako základní obraz (podporován pouze z v1.17 až)
doporučujeme používat nejnovější verzi proxy a aktualizaci versionregularly. Doporučujeme však také připnout na konkrétní značku a vyhnout se poslední značce. Poznámka: označená verze je pouze verze serveru proxy. Změny v baseimages může přerušit konkrétní nastavení, a to i na non-hlavní přírůstky verze. Jako takový,je to nejlepší praxe testovat změny před nasazením, a používat automatedrollbacks vrátit potenciální selhání.
instalace ze zdroje
Chcete-li nainstalovat ze zdroje, ujistěte se, že máte nainstalovanou nejnovější verzi GO.
pak jednoduše spusťte:
go get github.com/GoogleCloudPlatform/cloudsql-proxy/cmd/cloud_sql_proxy
cloud_sql_proxy
se umístí do $GOPATH/bin
po dokončení go get
.
použití
všechny následující vyvolání předpokládají, že v prostředí jsou přítomna platná pověření. Následující příklady odkazují na INSTANCE_CONNECTION_NAME
, který má tvar: myproject:myregion:myinstance
. Chcete-li najítINSTANCE_CONNECTION_NAME
, spusťte gcloud sql instances describe <INSTANCE_NAME>
kde INSTANCE_NAME
je název instance databáze.
TCP socket příklad
# 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říklad
# 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átní IP příklad
cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -ip_address_types=PRIVATE
aby bylo možné připojit pomocí Privátní IP, musíte mít přístup přes yourproject VPC. Pro více informací, viz soukromé požadavky na IP.
pověření
Cloud SQL proxy používá účet Cloud IAM k autorizaci připojení proti instanci aCloud SQL. Proxy zdroje pověření pro tyto účty v následujícím pořadí:
-
-credential_file
vlajky -
-token
vlajky - účet služby klíč na cestu uloženou v
GOOGLE_APPLICATION_CREDENTIALS
proměnné prostředí. - gcloud pověření uživatele (nastavení z
gcloud auth login
) - Použití Výchozí Pověření
Poznámka: každý účet připojení k Cloud SQL databáze bude potřebovat jeden z následujících IAM role:
- Cloud SQL Klienta (preferované)
- Cloud SQL Editor
- Cloud SQL Admin
Nebo jeden může ručně přiřadit následující IAM oprávnění:
cloudsql.instances.connect
cloudsql.instances.get
Viz Role a Oprávnění v Cloudu SQL pro podrobnosti.
když se proxy ověřuje pod výchozím serviceaccount Compute Engine VM, VM musí mít alespoň rozsah API sqlservice.admin
( tj. Výchozí účet služby musí také mítnejméně oprávnění writer nebo editor pro všechny projekty cílových instancí SQL.
CLI Vlajky
Cloud SQL Auth proxy trvá několik argumentů, konfigurovat, jaké případy se connectto a chování připojení. Pro úplný seznam příznaků podporovaných proxy použijte cloud_sql_proxy -help
.
Ověřování Vlajky
-credential_file
Určuje cestu k JSON účet služby klíč proxyuses k autorizaci nebo autentizaci připojení.
-token
když je nastaven, proxy používá tento Token na doručitele pro autorizaci.
-enable_iam_login
umožňuje serveru proxy používat ověřování databáze Cloud SQL iam. To způsobí, že proxy použije pověření účtu IAM pro ověření uživatele databáze. Fordetails, viz Přehled Cloud SQL IAM databáze ověřování
Připojení Vlajky
-instances="project1:region:instance1,project3:region:instance1"
čárkami oddělený seznam instancí otevřít uvnitř -dir
. Podporuje také vystavení TCP portu a přejmenování výchozích unixových doménových soketů; viz příkladyníže. Stejný seznam může být poskytnuta prostřednictvím instance proměnné prostředí, v případěkdyž jsou k dispozici oba-proxy bude používat příkazový řádek příznak.
Příklad
Pomocí TCP soketů:
./cloud_sql_proxy -instances=my-project:us-central1:sql-inst=tcp:3306 &mysql -u root -h 127.0.0.1
Pomocí Unix sockets:
./cloud_sql_proxy -dir=/cloudsql -instances=my-project:us-central1:sql-inst &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
zadat vlastní Unix socket jméno:
./cloud_sql_proxy -dir=/cloudsql \ -instances=my-project:us-central1:sql-inst=unix:custom_socket_name &mysql -u root -S /cloudsql/custom_socket_name
určit vlastní umístění pro Unix socket (přepíše -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
Vyžaduje přístup k /dev/fuse
stejně jako fusermount
binární. Volitelný příznak-fuse_tmp
může určit, kam umístit dočasné soubory. Directoryindicated by -dir
je namontován.
příklad
pomocí -fuse
nemusíte předem zadávat názvy instancí:
./cloud_sql_proxy -dir=/cloudsql -fuse &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
-instances_metadata=metadata_key
použitelné pouze na GCE. Klíč metadat GCE bude zobrazen pro seznam instancí, které se mají otevřít v -dir
. Klíč metadat je relativníod computeMetadata/v1/
. Formát hodnoty je stejný jako příznak ‘instances’. Používá se strategie závěsného hlasování, což znamená, že změny hodnoty themetadata se projeví v -dir
, i když je proxy spuštěn.Když instance je odstraněna ze seznamu odpovídající zásuvky budou odstraněny z -dir
stejně (pokud to bylo také uvedeno v -instances
), butany existující připojení k této instanci, NEBUDE ukončen.
Příklad
./cloud_sql_proxy -dir=/cloudsql \ -instances_metadata instance/attributes/<custom-metadata-key> &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
Poznámka: -instances
a -instances_metadata
mohou být použity ve stejnou dobu butare není kompatibilní s -fuse
vlajky.
-max_connections
pokud je k dispozici, maximální počet připojení k vytvoření před odmítnutím newconnections. Výchozí hodnota je 0 (bez omezení).
další příznaky
-ip_address_types=PUBLIC,PRIVATE
čárkami oddělený seznam preferovaných typů IP pro připojení k instanci. Forexample, nastavení na PRIVATE donutí proxy připojit se k instancímpomocí přidružené soukromé IP adresy instance. Výchozí hodnota PUBLIC,PRIVATE
-term_timeout=30s
jak dlouho čekat na uzavření připojení před vypnutím serveru proxy.Výchozí hodnota je 0.
-skip_failed_instance_config
nastavení tohoto příznaku zabrání ukončení serveru proxy, pokud dojde k chybámběhem konfigurace instance. Vezměte prosím na vědomí, že to znamená, že některé instance mohou být správně nastaveny, zatímco jiné mohou fungovat, pokud se proxy restartuje.
-log_debug_stdout=true
Jedná se o protokolování výstupu bez chyby na standardní místo standardní chyby. Pokud například nechcete, aby se zprávy související s připojením přihlašovaly jako chyby, nastavte tento příznak na hodnotu true. Výchozí hodnota je false.
-structured_logs
zapíše všechny protokolování výstup jako JSON s následujícími klávesami: level, ts, caller, msg. Například, spouštěcí zpráva vypadá:
{"level":"info","ts":1616014011.8132386,"caller":"cloud_sql_proxy/cloud_sql_proxy.go:510","msg":"Usinggcloud's active project: "}
Běží jako Kubernetes Sidecar
Viz příklad zde, stejně jako Připojení z GoogleKubernetes Motoru.
Referenční Dokumentace
- Cloud SQL
- Cloud SQL Auth proxy Dokumentace
- Cloud SQL Auth proxy pomůcky pro začátečníky
- Cloud SQL Ukázky Kódu
- Cloud SQL Auth proxy Balíček Dokumentace
Přispívající
Příspěvky jsou vítány. Prosím, podívejte se na přispívající dokument pro podrobnosti.
Upozorňujeme, že tento projekt je vydán s kódem přispěvatele Conduct.By účastí na tomto projektu souhlasíte s dodržováním jeho podmínek. Další informace naleznete v Kodexu chování uživatele.
třetí strana
varování: tyto distribuce nejsou oficiálně podporovány společností Google.
Homebrew
k dispozici je Homebrew vzorec pro Cloud SQL Auth proxy zde.
Kubernetes Cluster Service pomocí kormidla
postupujte podle těchto pokynů.
Tento graf vytváří Nasazení a Služby, ale doporučujeme nasazení theproxy jako sidecar kontejneru v lusky.
. Net Proxy Wrapper (nuget Package)
nainstalujte přes Nuget, postupujte podle těchto instrukcí.