Использование Google Container Registry от GKE в другом проекте

Как кластер GKE может извлечь образы контейнеров из реестра контейнеров, размещенного в другом проекте?

У меня есть кластер GKE в проекте <reader-project> пытаясь получить доступ к изображению GCR в проекте <registry-project>,

Я попытался добавить адрес электронной почты учетной записи службы GCE для <reader-project> как пользователь с доступом к Reader в хранилище в <registry-project>, но я все еще получаю ошибку:

<Error><Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Caller does not have storage.objects.get access to object us.artifacts.<registry-project>.appspot.com/containers/images/sha256:<tag>.
</Details></Error>

3 ответа

Решение

Попробуйте добавить адрес электронной почты учетной записи службы GCE в качестве пользователя с ролью средства просмотра объектов хранения. Он предоставляет учетной записи службы доступ только для чтения к объектам GCS (изображениям контейнеров) в вашем проекте.

Посмотрите на разрешения IAM проекта, под которым у вас есть GKE, и вы увидите пользователя, похожего на: 123456789-compute@developer.gserviceaccount.com,

Затем в вашем проекте реестра контейнеров предоставьте этому пользователю Storage Object Viewer permission, После этого вашему GKE будет разрешено извлекать изображения из

Можете ли вы выполнить следующие команды, чтобы проверить разрешения для обоих сегментов:

gsutil acl get gs: //us.artifacts..appspot.com

gsutil acl get gs: //artifacts..appspot.com

artifacts..appspot.com является контейнером по умолчанию. Когда вы добавляете учетную запись службы в качестве средства просмотра объектов хранения, предоставляется разрешение только на чтение для сегмента по умолчанию.

Вот ссылка на инструмент gsutil: https://cloud.google.com/storage/docs/gsutil/commands/acl

Другие вопросы по тегам