Кросс-управление проектами с использованием учетной записи службы

Мне нужна учетная запись службы, которая может иметь доступ к нескольким проектам, но я не смог найти способ сделать это вообще. Кажется, что учетная запись службы всегда связана с проектом.

Другой вариант - создать учетную запись службы в отдельных проектах, а затем выполнить ее проверку подлинности с помощью gcloud auth activate-service-account --key-file SOME_FILE.json, но проблема заключается в том, что автоматизировать создание учетных записей служб не представляется возможным.

Итак, возникает вопрос: возможно ли создать учетную запись службы кросс-проекта или автоматизировать создание учетных записей служб? Еще лучше было бы, если бы я мог сделать как

Ответ 1

Вы должны иметь возможность добавить служебную учетную запись в другой проект:

  1. Создайте первую учетную запись службы в проекте A в облачной консоли. Активируйте его, используя gcloud auth activate-service-account.

  2. В облачной консоли перейдите к проекту B. Найдите страницу "IAM & admin"> "IAM". Нажмите кнопку "Добавить". В поле "Новые участники" вставьте имя учетной записи службы (она должна выглядеть как странный адрес электронной почты) и присвойте ей соответствующую роль.

  3. Запустите команды gcloud с --project установленным для проекта B. Они должны быть успешными (я только вручную проверил, что это будет работать).

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

Ответ 2

Я знаю его немного старым, но если кто-то все еще ищет это, добавьте к ответу @Zachary Newman, Чтобы все было ясно, После создания учетной записи службы в проекте A вы должны перейти к проекту B в "IAM" (а не "Учетные записи службы" ). Там вы сможете добавить письмо, которое вы только что создали, с надлежащими ролями.