IAM ServiceAccount для вызова конечной точки службы CloudRun - PullRequest
0 голосов
/ 25 сентября 2019

Я создал сервис CloudRun.Как и ожидалось, он открывается конечной точкой, которую я могу вызвать извне.

Чтобы защитить ее, мне нужно обеспечить только внутреннее подключение.

Конечная точка должна вызываться модулями, работающими наКластер GKE.

Чтобы обеспечить только внутреннее подключение, необходимо настроить соответствующую конфигурацию IAM.

У меня вопрос, кому я должен назначить соответствующий ServiceAccount?(которым были предоставлены соответствующие роли)?

Самому кластеру или, скажем, виртуальным машинам, работающим на узлах k8s?

1 Ответ

2 голосов
/ 25 сентября 2019

Вы можете использовать учетные записи служб на уровне кластера, узла и модуля.Я бы использовал секреты Kubernetes (для детального контроля) или учетную запись службы кластера по умолчанию для авторизации в Cloud Run (проще всего).

Если вы не изменили конфигурацию кластера, для вашего кластера уже есть учетная запись службы Compute Engine по умолчанию.Вы можете использовать эту учетную запись службы без дополнительных изменений, чтобы предоставить удостоверение для доступа к Cloud Run.

Учетная запись службы не требует каких-либо ролей.Предоставьте роль IAM roles/run.invoker при добавлении члена IAM в Cloud Run.

Чтобы получить доступ к Cloud Run, защищенному IAP, необходимо добавить заголовок HTTP «authorization: bearer TOKEN».Маркер является Идентификационным токеном.Ваш код / ​​программа должны добавить этот заголовок, поскольку Kubernetes не делает этого от вашего имени.

Вы можете запросить Identity Token с сервера метаданных узла.Этот сервер метаданных предоставляет Identity Token с идентификатором учетной записи службы.Введите адрес электронной почты учетной записи службы в качестве идентификатора участника для Cloud Run.

...