GoogleCloudPlatform / cloudscoudplatform
Cloud Auth-fuldmægtig er en binær, der giver IAM-Basedautorisation og kryptering, når du opretter forbindelse til en Cloud-instans.
se siden Forbindelsesoversigt for at få flere oplysninger om forbindelse til en cloud-INSTANSELLER siden om fuldmægtigfor detaljer om, hvordan cloud-fuldmægtigen fungerer.
Bemærk: Fuldmægtigen kan ikke angive en netværkssti til en Cloud-instans, hvis en ikke allerede er til stede (f.eks. kan fuldmægtigen ikke få adgang til en VPC, hvis den ikke allerede har adgang til den).
- Installation
- Containerbilleder
- Installer fra kilde
- brug
- TCP socket eksempel
- eksempel på stikdåse
- privat IP eksempel
- legitimationsoplysninger
- CLI-flag
- autentificering flag
- -credential_file
- -token
- -enable_iam_login
- Forbindelsesflag
- -instances="project1:region:instance1,project3:region:instance1"
- -fuse
- -instances_metadata=metadata_key
- -max_connections
- yderligere flag
- -ip_address_types=PUBLIC,PRIVATE
- -term_timeout=30s
- -skip_failed_instance_config
- -log_debug_stdout=true
- -structured_logs
- kører som en Kubernetes sidevogn
- referencedokumentation
- Bidrag
- tredjepart
- hjemmebryggeri
- Kubernetes Cluster Service using Helm
- . Net fuldmægtig indpakning (Nuget-pakke)
Installation
til 64-bit Linuk, Kør:
wget https://storage.googleapis.com/cloudsql-proxy/v1.19.2/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxychmod +x cloud_sql_proxy
udgivelser til yderligere operativsystemer og arkitekturer og findes på udgivelsessiden.
for alternative distributioner, se nedenfor under tredjepart.
Containerbilleder
der er containeriserede versioner af fuldmagten tilgængelig fra følgendegoogle 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
hvert billede er mærket med den tilhørende fuldmagtsversion. Følgende tags understøttes aktuelt:
-
$VERSION
– standardbillede (anbefales) -
$VERSION-alpine
– brugeralpine:3
som et basisbillede (understøttes kun fra v1.17 op) -
$VERSION-buster
– brugerdebian:buster
som et basisbillede (understøttes kun fra v1.17 op)
vi anbefaler at bruge den nyeste version af fuldmagten og opdatere versionenregelmæssigt. Vi anbefaler dog også at fastgøre til et bestemt tag og undgå detseneste tag. Bemærk: den taggede version er kun den for fuldmagten. Ændringer i baseimages kan bryde specifikke opsætninger, selv på ikke-større versionsforøgelser. Som sådan er det en bedste praksis at teste ændringer før implementering og bruge automatiseredrollbacks til at vende potentielle fejl tilbage.
Installer fra kilde
for at installere fra kilde skal du sikre dig, at du har den nyeste version af Goinstalled.
derefter skal du blot køre:
go get github.com/GoogleCloudPlatform/cloudsql-proxy/cmd/cloud_sql_proxy
cloud_sql_proxy
placeres i $GOPATH/bin
efter go get
er afsluttet.
brug
alle følgende påkaldelser antager gyldige legitimationsoplysninger er til stede imiljø. De følgende eksempler henviser alle til en INSTANCE_CONNECTION_NAME
, som har formen: myproject:myregion:myinstance
. For at findeINSTANCE_CONNECTION_NAME
skal du køre gcloud sql instances describe <INSTANCE_NAME>
hvor INSTANCE_NAME
er navnet på databaseforekomsten.
TCP socket eksempel
# 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
eksempel på stikdåse
# 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>
privat IP eksempel
cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -ip_address_types=PRIVATE
for at oprette forbindelse ved hjælp af privat IP skal du have adgang via yourproject ‘ s VPC. For flere detaljer, se Private IP-krav.
legitimationsoplysninger
cloud-fuldmagten bruger en Cloud iam-konto til at godkende forbindelser mod acloud-instansen. Fuldmagten kilder legitimationsoplysningerne for disse konti ifølgende rækkefølge:
-
-credential_file
flag - flag
-token
flag - servicekontonøglen på stien gemt i miljøvariablen
GOOGLE_APPLICATION_CREDENTIALS
. - GCloud brugeroplysninger (sæt fra
gcloud auth login
) - programmets standardoplysninger
Bemærk: enhver konto, der opretter forbindelse til en Cloud-database, har brug for en affølgende iam-roller:
- Cloud-klient (foretrukket)
- Cloud-editor
- Cloud-Administrator
eller man kan manuelt tildele følgende iam-tilladelser:
cloudsql.instances.connect
cloudsql.instances.get
se roller og tilladelser i Cloud for detaljer.
når fuldmagten godkendes under Compute Engine VM ‘ s standardservicekonto, skal VM mindst have sqlservice.admin
API-omfanget (dvs.”https://www.googleapis.com/auth/sqlservice.admin”), og det tilhørende projekt skal have Admin API aktiveret. Standardtjenestekontoen skal også havei det mindste forfatter-eller redaktørrettigheder til projekter af target-instanser.
CLI-flag
Cloud Auth-fuldmagten tager et par argumenter for at konfigurere, hvilke forekomster der skal forbindes til og forbindelsesadfærd. For en komplet liste over flag,der understøttes af fuldmagten, skal du bruge cloud_sql_proxy -help
.
autentificering flag
-credential_file
angiver stien til en JSON service-kontonøgle fuldmagterne til at godkende eller godkende forbindelser.
-token
når den er indstillet, bruger fuldmagten dette Bærertoken til godkendelse.
-enable_iam_login
gør det muligt for fuldmægtig at bruge cloud iam database authentication. Dette vil medføre, at fuldmægtigen bruger iam-kontooplysninger til databasebrugergodkendelse. Detaljer, Se oversigt over cloud iam database authentication
Forbindelsesflag
-instances="project1:region:instance1,project3:region:instance1"
en kommasepareret liste over forekomster, der skal åbnes inde i -dir
. Understøtter også at eksponere en TCP-port og omdøbe standard-Domænesoklerne; se eksemplernedenfor. Samme liste kan leveres via INSTANCES miljøvariabel, i tilfældenår begge leveres – fuldmægtig bruger kommandolinjeflag.
eksempel
brug af TCP-stik:
./cloud_sql_proxy -instances=my-project:us-central1:sql-inst=tcp:3306 &mysql -u root -h 127.0.0.1
brug af stikdåser:
./cloud_sql_proxy -dir=/cloudsql -instances=my-project:us-central1:sql-inst &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
for at angive et brugerdefineret navn på en stikkontakt:
./cloud_sql_proxy -dir=/cloudsql \ -instances=my-project:us-central1:sql-inst=unix:custom_socket_name &mysql -u root -S /cloudsql/custom_socket_name
for at angive en brugerdefineret placering for en stikdåse (tilsidesættes -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
kræver adgang til /dev/fuse
samt fusermount
binær. Et valgfrit-fuse_tmp
– flag kan angive, hvor midlertidige filer skal placeres. Direktoratet angivet af -dir
er monteret.
eksempel
brug af -fuse
, du behøver ikke at angive instansnavne på forhånd:
./cloud_sql_proxy -dir=/cloudsql -fuse &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
-instances_metadata=metadata_key
kan kun bruges på GCE. Den givne GCE metadata nøgle vil blive pollet for en liste over forekomster, der skal åbnes i -dir
. Metadatatasten er relativfra computeMetadata/v1/
. Formatet for værdien er det samme som flaget’ instances’. En hængende-poll strategi bruges, hvilket betyder, at ændringer til themetadata værdi vil blive afspejlet i -dir
selv mens fuldmagten kører.Når en forekomst fjernes fra listen, vil den tilsvarende stikkontakt værefjernet fra -dir
også (medmindre det også var angivet i -instances
), menalle eksisterende forbindelser til denne forekomst vil ikke blive opsagt.
eksempel
./cloud_sql_proxy -dir=/cloudsql \ -instances_metadata instance/attributes/<custom-metadata-key> &mysql -u root -S /cloudsql/my-project:us-central1:sql-inst
Bemærk: -instances
og -instances_metadata
kan bruges på samme tid, mener ikke kompatible med -fuse
flag.
-max_connections
hvis det er angivet, er det maksimale antal forbindelser, der skal etableres, før de nægter nyeforbindelser. Standard 0 (ingen grænse).
yderligere flag
-ip_address_types=PUBLIC,PRIVATE
en kommasepareret liste over foretrukne IP-typer til forbindelse til en forekomst. For eksempel vil Indstilling af dette til privat tvinge fuldmægtigen til at oprette forbindelse til instancesved hjælp af en instans tilhørende private IP. Standard til PUBLIC,PRIVATE
-term_timeout=30s
hvor længe skal man vente på, at forbindelserne lukkes, før fuldmagten lukkes.Som standard 0.
-skip_failed_instance_config
Indstilling af dette flag forhindrer fuldmagten i at afslutte, hvis der opstår fejl under konfigurationen af forekomsten. Bemærk, at dette betyder, at nogle tilfælde muligvis ikke kan konfigureres korrekt, mens andre muligvis fungerer, hvis fuldmagten genstarter.
-log_debug_stdout=true
dette er at logge ikke-fejl output til standard ud i stedet for standard fejl. For eksempel, hvis du ikke vil have forbindelsesrelaterede meddelelser til at logge som fejl, skal du indstille dette flag til sand. Som standard falsk.
-structured_logs
skriver alle logning output som JSON med følgende taster: niveau, ts, caller,msg. For eksempel ser startmeddelelsen ud:
{"level":"info","ts":1616014011.8132386,"caller":"cloud_sql_proxy/cloud_sql_proxy.go:510","msg":"Usinggcloud's active project: "}
kører som en Kubernetes sidevogn
se eksemplet her samt tilslutning fra GoogleKubernetes Motor.
referencedokumentation
- Cloud KVB
- Cloud KVB Auth fuldmagt dokumentation
- Cloud KVB Auth fuldmagt Hurtigstart
- Cloud KVB kode prøver
- Cloud KVB Auth fuldmagt pakke dokumentation
Bidrag
bidrag er velkomne. Se venligst det bidragende dokument for detaljer.
bemærk, at dette projekt frigives med en Bidragyderkode på Conduct.By deltagelse i dette projekt accepterer du at overholde dets vilkår. Se contributor Code of Conduct for mere information.
tredjepart
advarsel: disse distributioner understøttes ikke officielt af Google.
hjemmebryggeri
der er Hjemmebryggeformel til Cloud Auth fuldmagt her.
Kubernetes Cluster Service using Helm
Følg disse instruktioner.
dette diagram opretter en udrulning og en tjeneste, men vi anbefaler, at du installerer udrulningen som en sidevognscontainer i dine bælg.
. Net fuldmægtig indpakning (Nuget-pakke)
installer via Nuget, følg disseinstruktioner.