Создание нового проекта в Google Cloud с использованием Python без учетных данных учетной записи службы - PullRequest
0 голосов
/ 10 декабря 2018

Я собираюсь сделать питонического автоматизированного менеджера проектов Google Cloud.Просто тестирую кучу моделей Tensorflow и прочее.Даже когда я могу получить полный доступ к обучению, развертыванию и тестированию моделей внутри проекта, я не могу создавать новые проекты, поскольку аутентифицируюсь с помощью учетной записи службы через:

google.oauth2.service_account.Credentials.from_service_account_file("thisisakey.json")

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

googleapiclient.discovery.build("cloudresourcemanager", "v1", cache_discovery=False)

Falis with:

Service accounts cannot create project without a parent.

Так что либо создание / поиск «родителя» для этого проекта, либо вход в более «мощную» учетную запись может решить эту проблему,Но я не могу понять их.Существуют ли другие типы учетных данных для загрузки и встраивания в python?Могу ли я создать проект из Python?Все, что я проверил по этому поводу, уже как минимум 2 года и кажется очень устаревшим (тогда проекты просто невозможно было создать с помощью API)

Обновление: Я пробовалсоздание проекта с использованием флага «родитель» в теле проекта в организации, созданной из корпорации, над которой я работаю.и даже когда эта учетная запись службы имеет роли «Владелец» и «Администратор организации», запросы на создание не выполняются с:

 Encountered 403 Forbidden with reason "forbidden"
 User is not authorized.

Таким образом, проблема сохраняется.

1 Ответ

0 голосов
/ 11 декабря 2018

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

Проблема в том, что ваш проект не является частью Organization (у вас нет родителя).Ваше решение - либо настроить организации, либо создать свои проекты с помощью Google Cloud Console.Примечание: я не рекомендую создавать проекты с помощью программного обеспечения.Вам также нужно настроить выставление счетов, чтобы сделать что-нибудь полезное.

Существует два типа учетных данных с Google Cloud: учетные данные пользователя и учетные данные учетной записи службы.Вы не можете вставлять учетные данные учетной записи пользователя в приложение.Учетные данные учетной записи пользователя создаются в интерактивном режиме как часть процесса входа в систему / аутентификации с использованием OAuth 2.0.

Существуют и другие типы доступа к облачным службам, такие как API-ключи, но они не относятся к вашей проблеме.

Быстрый старт с использованием организаций

...