У нас есть несколько ключей учетной записи службы GCP из разных сред, таких как DEV, STAGING, .. PROD.
Я хотел бы запустить команду в моем ящике jenkins, который находится в среде Dev, для создания доступа к средам DEV и Staging,
Я не хочу убегать gcloud auth команда каждый раз, вместо этого я ожидаю что-то вроде,
gcloud compute instances list --key-file=dev-sa.json
или
gsutil ls -l --key-file=dev-sa.json
Есть ли у нас что-нибудь подобное?
Подойдите к решению иначе.
Вместо того, чтобы пытаться использовать разные учетные записи служб, используйте одну учетную запись службы, у которой есть доступ (права) к каждому проекту.
Создайте сервисную учетную запись (или используйте ту, которую вы создали). Запишите адрес электронной почты учетной записи службы (это ее идентификатор).
Перейдите в IAM для каждого проекта и добавьте этот адрес электронной почты в качестве участника. Назначьте роли / разрешения, которые вы хотите использовать для этой учетной записи службы. Повторите для каждого проекта.
Теперь вы можете использовать этот json-файл учетной записи службы для настройки gcloud, программных приложений и т. Д. Все, что вам нужно сделать, это указать проект при использовании учетных данных.
gcloud auth activate-service-account test@development-123456.iam.gserviceaccount.com --key-file=test_google_account.json
Вы можете установить проект по умолчанию с помощью gcloud config set project PROJECT_ID
. Или используйте переменную среды CLOUDSDK_CORE_PROJECT
.
Вы можете указать проект в командной строке с помощью --project PROJECT_ID
gcloud --project development-123456 compute instances list