Прокси-сервер Cloud SQL в кластере Kubernetes: какие разрешения для учетной записи службы необходимы?

Я следую руководству Google (https://github.com/GoogleCloudPlatform/cloudsql-proxy/blob/master/Kubernetes.md), чтобы настроить прокси Cloud SQL в кластере Kubernetes.

В документации говорится:

You need a service-account token with "Project Editor" privileges

Я сбит с толку, потому что мое приложение (Composer) работает на Kubernetes, а база данных Cloud SQL, которую я пытаюсь подключить, работает в разных проектах. Мне нужны только права «Редактор проекта» для обоих проектов? Я не думаю, что наш системный администратор захочет предоставить права редактора моего проекта проекту, который содержит базу данных SQL, к которой я хочу подключиться.

Спрашиваю, потому что у меня проблемы с подключением:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
googleapi: Error 403: The client is not authorized to make this request., notAuthorized

Я предполагаю, что ошибка подключения связана с токеном учетной записи службы, который я использовал, потому что я строго следил за всем остальным в руководстве.

Я тестировал с двумя токенами учетной записи службы.

  1. Учетная запись службы с редактором проекта для проекта, в котором живет Kubernetes.

  2. Учетная запись службы, которую наш системный администратор отправил мне с привилегиями для подключения к облачной базе данных SQL.




Ответы (1)


Чтобы использовать прокси Cloud SQL, ваши учетные данные должны иметь одну из следующих ролей IAM:

  • Cloud SQL Client (предпочтительно)
  • Cloud SQL Editor
  • Cloud SQL Admin

Или вы можете вручную назначить следующие разрешения IAM:

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

У ваших учетных данных должны быть эти разрешения для обеих учетных записей - учетной записи с базой данных и учетной записи с учетными данными, которые вы используете.

person kurtisvg    schedule 12.07.2019