2017-08-18 8 views
0

Das scheint eine Frage zu sein, die schon beantwortet wurde, aber ich habe kein Glück mit anderen Antworten, also eröffne ich eine neue Frage.Wie stelle ich mit einem Dienstkonto eine Verbindung zu einer Cloud SQL-Instanz her?

Ich benutze ein Python-Skript und erstelle/konfiguriere eine Datenbank und verbinde mich mit ihr über cloud_sql_proxy. Das Skript läuft schön, wenn ich nicht ein Dienstkonto Anmeldeinformationen für cloud_sql_proxy liefern, aber wenn ich dann bekomme ich diese:

2017/08/18 15:34:12 using credential file for authentication; [email protected] 
 
2017/08/18 15:34:12 Listening on 127.0.0.1:3306 for project:zone:instance 
 
2017/08/18 15:34:12 Ready for new connections 
 
2017/08/18 15:34:12 New connection for "project:zone:instance" 
 
2017/08/18 15:34:13 couldn't connect to "project:zone:instance": 
 
ensure that the account has access to "project:zone:instance" 
 
(and make sure there's no typo in that name). 
 
Error during createEphemeral for project:zone:instance: 
 
googleapi: Error 403: The client is not authorized to make this request., notAuthorized

Es ist kein INSTANCE_CONNECTION_NAME Problem, weil es gut funktioniert, wenn ich authentifizieren, ohne ein Dienstkonto:

2017/08/18 15:38:32 Listening on 127.0.0.1:3306 for project:zone:instance 
 
2017/08/18 15:38:32 Ready for new connections 
 
2017/08/18 15:38:32 New connection for "project:zone:instance" 
 
Connection established.

Ich habe viele verschiedene Arten von Dienstkontorollen ausprobiert: SQLclient + SQLAdmin, SQLclient + SQLAdmin + ProjectEditor, usw.

Irgendwelche Ideen? Ich bin ratlos.

+0

Ist das Dienstkonto im selben Projekt wie die Cloud SQL-Instanz? – Vadim

Antwort

0

Ich habe das Problem gefunden. Ich hatte ursprünglich für dieses Projekt keinen Administratorzugriff auf IAM. Nachdem ich hier Administratorrechte erhalten hatte, konnte ich das Dienstkonto zur IAM-Seite hinzufügen. Dies löste dieses Problem, obwohl ich immer noch einen interessanten 400 Fehler erhalte, der sich darüber beschwert, dass meine JWT Signatur ungültig ist.

UPDATE:

Ich fand, dass meine Credential-Datei Geheim eine zweite Berechtigungsnachweis-Datei, die ich für den gleichen Service Konto (Sie können für ein Dienstkonto mehr als einen Schlüssel machen). Nach dem Aktualisieren des Geheimnisses, um den richtigen Schlüssel zu verwenden, konnte ich meine Bereitstellung zum Laufen bringen.

Verwandte Themen