Кросс-управление проектами с использованием учетной записи службы
Мне нужна учетная запись службы, которая может иметь доступ к нескольким проектам, но я не смог найти способ сделать это вообще. Кажется, что учетная запись службы всегда связана с проектом.
Другой вариант - создать учетную запись службы в отдельных проектах, а затем выполнить ее проверку подлинности с помощью gcloud auth activate-service-account --key-file SOME_FILE.json
, но проблема заключается в том, что автоматизировать создание учетных записей служб не представляется возможным.
Итак, возникает вопрос: возможно ли создать учетную запись службы кросс-проекта или автоматизировать создание учетных записей служб? Еще лучше было бы, если бы я мог сделать как
Ответы
Ответ 1
Вы должны иметь возможность добавить служебную учетную запись в другой проект:
-
Создайте первую учетную запись службы в проекте A в облачной консоли. Активируйте его, используя gcloud auth activate-service-account
.
-
В облачной консоли перейдите к проекту B. Найдите страницу "IAM & admin"> "IAM". Нажмите кнопку "Добавить". В поле "Новые участники" вставьте имя учетной записи службы (она должна выглядеть как странный адрес электронной почты) и присвойте ей соответствующую роль.
-
Запустите команды gcloud
с --project
установленным для проекта B. Они должны быть успешными (я только вручную проверил, что это будет работать).
Автоматическое создание учетных записей служб - это то, что мы не решаемся, пока не сможем проработать все последствия для безопасности.
Ответ 2
Я знаю его немного старым, но если кто-то все еще ищет это, добавьте к ответу @Zachary Newman, Чтобы все было ясно, После создания учетной записи службы в проекте A вы должны перейти к проекту B в "IAM" (а не "Учетные записи службы" ). Там вы сможете добавить письмо, которое вы только что создали, с надлежащими ролями.