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

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

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

Я попытался добавить адрес электронной почты служебного аккаунта GCE для <reader-project> в качестве пользователя с доступом для чтения в сегменте хранилища в <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>

person Symmetric    schedule 27.07.2016    source источник


Ответы (3)


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

person Lizhu Qi    schedule 27.07.2016
comment
Можно ли добавить кучу электронных писем учетной записи службы проекта под одной ролью IAM, чтобы я мог предоставить и другие разрешения этой группе? Похоже, так и должно быть, но я уже пробовал этот подход для Storage Viewer, и он не сработал. - person Symmetric; 27.07.2016
comment
да, это должно быть хорошо. - person Lizhu Qi; 27.07.2016
comment
Сейчас это не работает. Я попытался добавить учетную запись службы вычислительного ядра другого проекта в проект, содержащий реестр. Я все еще получаю ошибку 403. - person Lakshman Diwaakar; 24.01.2017

Посмотрите разрешения IAM для проекта, в котором у вас есть GKE, и вы увидите пользователя, похожего на: [email protected].

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

person AllSySt3msG0    schedule 07.08.2017

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

gsutil acl получить 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

person Lizhu Qi    schedule 27.07.2016