Создать проект GCP и Firebase с учетной записью службы без организации или папки - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно использовать служебную учетную запись Google Cloud Platform (GCP) для программного создания проектов через API REST Resource Manager.Я хочу создавать проекты Firebase в автономном режиме.

Наше текущее решение включает в себя имитацию пользователя и браузера для достижения этой цели, поскольку представляется невозможным создать проект в качестве учетной записи службы через API REST GCP Resource Manager.без организации (или папки, которая должна находиться в организации).

Когда я пытаюсь создать проект в качестве учетной записи службы, я получаю ответ 403 Bad Request, говорящий: «Учетные записи службы не могут создавать проекты безparent ".

Попытка создать проект как учетную запись службы с пустым Parent приводит к ответу 400 Bad Request, в котором говорится" Запрос содержит недопустимый аргумент ".

Попытка создать проекткак учетная запись службы с родителем, тип которого «организация» без идентификатора, выдает ответ «400 неверных запросов», в котором говорится: «Идентификатор родителя должен быть числовым».

Поскольку у меня нет организации (звонки в организации.list return {}) и я не могу создать его бездомен, я не уверен, как идти по этому пути.

1 Ответ

0 голосов
/ 14 ноября 2018

Q: Как вы создаете проекты Google Cloud Platform (GCP) программно, используя служебную учетную запись, не имея организации GCP?

A: Вы не можете.


Фактический пользователь gmail.com может создавать проекты в Без организации , но Сервисная учетная запись должна указывать organization или folder в качестве parent в проекте время создания.

Ваше текущее решение сделать это как пользователь, вероятно, единственный реальный обходной путь. Для этого вы должны использовать OAuth2 ClientID и Secret для получения offline учетных данных для пользователя с областью действия https://www.googleapis.com/auth/cloud-platform. Затем вы можете использовать refresh_token для генерации access_tokens, который вы используете для вызова Cloud Resource Manager API для создания проектов .

Однако я бы сделал сильный кейс для Организации . Если вы можете получить домен, вы можете использовать этот домен для настройки Cloud Identity и для получения ресурса Организации . Затем вы можете предоставить служебную учетную запись Project Creator роль для вашего ресурса Organization , и она сможет программно создавать проекты.

Выигрыш здесь заключается в том, что все проекты, которые вы создаете с помощью этой Сервисной учетной записи , будут находиться под одной Организацией , поэтому вы можете легко предоставлять разрешения и управлять доступом ко всем проектам в единственное место. Новый человек присоединяется к вашей команде, и вместо того, чтобы предоставить ему доступ к каждому из ваших проектов Firebase или GCP по одному, вы можете сделать это, добавив одно разрешение к ресурсу Organization .

Подробнее: Предоставление, изменение и отзыв доступа к ресурсам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...