Разрешение для вызова CloudRun, по-видимому, не предоставлено GKE (pods) - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу иметь возможность вызывать конечную точку GloudRun одним из моих модулей GKE.

Когда я описываю свои виртуальные машины / экземпляры, которые составляют мой кластер GKE, я вижу

serviceAccounts:
 - email: 873099409230-compute@developer.gserviceaccount.com

Поэтому я добавил роль CloudRun Invoker в указанную учетную запись службы.

Я включил CloudRun с обязательной аутентификацией.

Однако, когда я выполняю exec на одном из моих модулей и пытаюсьна curl конечную точку, которую я получаю 403 (которую я также получаю от своего ноутбука, но ожидается более поздняя версия).

Есть предложения?

1 Ответ

1 голос
/ 26 сентября 2019

Керл не знает безопасности Google Cloud.Я имею в виду, что cURL не знает, как добавить маркер безопасности в ваш запрос.Для этого вам нужно явно добавить токен в заголовок вашего запроса.

С моего компьютера я использую это, потому что это мой личный аккаунт, определенный в Gcloud SDK.

curl -H "Authorization: Bearer $(gcloud config config-helper --format='value(credential.id_token)')" <URL>

С учетной записью службы, определенной в gcloud, вы можете использовать эту команду

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <URL>

В обоих случаях вам необходимо добавить заголовок авторизации к вашему запросу.

В вашем коде, если вы используетебиблиотеки Google, вы можете использовать учетные данные по умолчанию, будет использоваться ваша учетная запись службы вычислений по умолчанию.cURL не знаю, сделай это!

...