Можно ли избежать явной установки project_id при авторизации с учетной записью службы? - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь пройти аутентификацию в скрипте bash и включить мою учетную запись службы, и у меня есть cred.json. Вот что я попробовал:

gcloud auth activate-service-account --key-file=/etc/gcp-cred.json

Проблема в том, что я должен явно указать проект:

gcloud config set project my_proj

Что является избыточным, поскольку gcp-cred.json содержит этот проект уже как поле:

"project_id": "my_proj"

Есть ли способ избежать явного ввода gcloud config set project и установить его с помощью gcp-cred.json?

1 Ответ

5 голосов
/ 05 февраля 2020

Нет - gcloud не изменит ваш рабочий основной проект при аутентификации.

Хитрость в том, что аутентификация и настройка вашего рабочего проекта «по умолчанию» для gcloud - это отдельная задача. Вы можете установить свой проект без аутентификации, и вы можете аутентифицироваться без изменения вашего проекта.

Logi c здесь проистекает из того факта, что удостоверение может иметь доступ к многим проектам. Даже если учетная запись службы размещена для конкретного проекта, она вполне может быть авторизована для доступа к любому другому проекту. Таким образом, программа gcloud не делает никаких предположений относительно того, над каким проектом вы хотите, чтобы ваша учетная запись службы действовала.

Во-вторых, как правило, не нужно устанавливать рабочий проект по умолчанию для gcloud - вы можете указать проект, который является целью вашего действия, с флагом --project PROJECT_ID. См. Документы для этого gcloud flag здесь .

...