Прокси-сервер Cloud SQL - сообщение: недостаточно прав

Я столкнулся с проблемой подключения ниже с использованием облачного прокси-сервера SQL. Я выполнил подробные инструкции по этой ссылке https://codelabs.developers.google.com/codelabs/cloud-sql-connectivity-gce-private#0

Подключение SQL с использованием частного IP-адреса и служебной учетной записи. И у меня есть политика учетной записи службы, добавленная вот так:

gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client

Когда я подключаюсь по SSH к виртуальной машине после того, как я получил cloud_sql_proxy, используя ниже,

wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy

и начиная,

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &

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

Rlimits for file descriptors set to {&{8500 1048576}}
errors parsing config:
        googleapi: Error 403: Request had insufficient authentication scopes.
More details:
Reason: insufficientPermissions, Message: Insufficient Permission

Любые идеи?


person Satscreate    schedule 10.02.2021    source источник


Ответы (1)


  • Если вы запускаете прокси из экземпляра Compute Engine, убедитесь, что учетная запись службы, используемая экземпляром (обычно Учетная запись службы Compute Engine по умолчанию) имеет правильные области действия и назначены разрешения (вы уже добавили правильную роль, но убедитесь, что это включен при создании экземпляра):

введите описание изображения здесь

  • Если вы создали отдельную учетную запись службы самостоятельно и добавили соответствующую роль с помощью:
gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client

Убедитесь, что вы загрузили файл .json, соответствующий вашей учетной записи службы, в свой экземпляр Compute Engine и запустите прокси с помощью следующей команды:

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -credential_file=[PATH-TO-CREDENTIALS.JSON-FILE] &

Кроме того, убедитесь, что все API-интерфейсы, связанные с Cloud SQL и Compute Engine, включены и что у вас установлено правило брандмауэра, разрешающее трафик на определенные порты, используемые базой данных (5432 для Postgres).

Следующие документы могут предоставить вам дополнительные советы по устранению неполадок. проблемы с подключением к прокси.

person Daniel Ocando    schedule 10.02.2021
comment
1/2) Это хороший ответ. Однако сегодня я хотел бы предложить правильный метод. Области Compute Engine являются устаревшими и использовались до IAM. Эти области ограничивают разрешения (роли), назначенные учетной записи службы, которую использует вычислительный механизм. Лучше назначить правильные роли учетной записи службы, а затем выбрать Разрешить полный доступ ко всем облачным API. Причина выбора областей заключается в том, что в старые времена учетных записей служб не существовало, как и IAM. Области ограничивали общую мощность, которую имели службы. - person John Hanley; 10.02.2021
comment
2/2) Еще лучшим улучшением является создание отдельных учетных записей служб с ролями IAM, специфичными для каждой группы вычислительных механизмов / типа приложения. - person John Hanley; 10.02.2021
comment
Спасибо, ребята, я создавал для этого отдельную учетную запись службы и, похоже, работал с sqlcmd из экземпляра виртуальной машины, передавая файл учетных данных. Но как мне подключить этот экземпляр sql с помощью SQL Studio с моего ноутбука? любая идея - person Satscreate; 10.02.2021
comment
В упомянутом вами руководстве упоминается подключение к экземпляру Cloud SQL с помощью PostgreSQL. В общедоступных документах содержатся конкретные инструкции по как подключить Cloud SQL SQL. Экземпляр сервера с SQL Server Management Studio. Если у вас есть дополнительные вопросы, откройте новый пост, это будет отдельный вопрос. - person Daniel Ocando; 10.02.2021