Как использовать ключи JSON с Google Cloud Gsutil для управления несколькими ключами
У нас есть несколько ключей учетной записи службы GCP из разных сред, таких как DEV,STAGING,..PROD.
Я хотел бы запустить команду в моем окне jenkins, которое есть в среде Dev для создания доступа DEV и промежуточных сред,
Я не хочу запускать команду gcloud auth каждый раз, вместо этого я ожидаю что-то вроде
gcloud compute instances list --key-file=dev-sa.json
или же
gsutil ls -l --key-file=dev-sa.json
Есть ли у нас так или иначе?
1 ответ
Подходить к решению по-другому.
Вместо того, чтобы пытаться использовать разные учетные записи служб, используйте одну учетную запись службы, которая имеет доступ (привилегии) к каждому проекту.
Создайте учетную запись службы (или используйте ту, которую вы создали). Запишите адрес электронной почты учетной записи службы (это ее идентификатор).
Перейти к 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