Какие минимальные разрешения мне нужно настроить для пула узлов GKE для извлечения из частного репозитория GCR в том же проекте? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь настроить свой кластер GKE на получение из частного репозитория GCR в том же проекте. Я не использую области OAuth, но связал учетную запись службы с наименьшими привилегиями с пулом узлов по умолчанию и предоставил ей разрешение roles/storage.objectViewer.

Тем не менее, я все еще получаю следующее при попытке получить доступ к этому изображению: Failed to pull image "eu.gcr.io/<project>/<image>": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

Мне также нужно настроить imagePullSecrets или должно быть достаточно разрешения roles/storage.objectViewer?

1 Ответ

0 голосов
/ 27 октября 2018

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

Из документов GCP о Вычислить учетные записи служб :

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

Вы не можете устанавливать только роли IAM для учетной записи службы и пропускать области доступа при создании экземпляра виртуальной машины. Уровень доступа к учетной записи службы определяется комбинацией областей доступа и ролей IAM, поэтому для правильной работы учетной записи службы необходимо настроить как области доступа, так и роли IAM.

Минимальные области, требуемые для доступа к частным изображениям в GCR, можно найти здесь , значение этих областей можно найти здесь . Затем можно создать учетную запись службы с минимальными привилегиями для узлов кластера, следуя инструкциям здесь .

Как описано здесь альтернативой может быть предоставление только области https://www.googleapis.com/auth/cloud-platform узлам кластера, которая разрешает доступ ко всем службам облачной платформы, а затем ограничение доступа через роли IAM для учетных записей служб узлов.

При настройке узлов кластера, как указано выше, imagePullSecrets не требуется для извлечения частных изображений из GCR в том же проекте.

...