Невозможно нажать на Реестр контейнеров Google (доступ запрещен) - PullRequest
0 голосов
/ 03 января 2019

Когда я попытался отправить изображение контейнера в Реестр контейнеров, он выдал следующую ошибку

Запрещено: обмен токеном не выполнен для проекта 'my-proj-123'. Вызывающая сторона не имеет разрешения «storage.buckets.create». Чтобы настроить разрешения, следуйте инструкциям по адресу: https://cloud.google.com/container-registry/docs/access-control

Я должен был следовать процессу Проверка имени корзины , чтобы создать artifacts.my-proj-123.appspot.com корзину. Теперь, когда я пытаюсь выдвинуть образ докера, он не жалуется на разрешение storage.buckets.create, а только выдает:

отказано: доступ запрещен.

Я не знаю, к какому пользователю мне нужно предоставить доступ. Я дал Storage Admin доступ к учетной записи службы по умолчанию Compute Engine безрезультатно. Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Мне удалось выдвинуть образ Docker в Реестр контейнеров из Контейнер оптимизированной ОС .

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

Также существует альтернатива gcloud для аутентификации . Вы можете попробовать, следуя этому:

  1. Сначала попробуйте загрузить docker-credential-gcr с помощью:

    VERSION=1.5.0
    OS=linux  # or "darwin" for OSX, "windows" for Windows.
    ARCH=amd64  # or "386" for 32-bit OSs
    
    curl -fsSL "https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v${VERSION}/docker-credential-gcr_${OS}_${ARCH}-${VERSION}.tar.gz" \
      | tar xz --to-stdout ./docker-credential-gcr \
      > /usr/bin/docker-credential-gcr && chmod +x /usr/bin/docker-credential-gcr
    
  2. После этого выполните docker-credential-gcr configure-docker

  3. Загрузить учетную запись службы Compute Engine по умолчанию json key .

  4. Выполнить cat [your_service_account_credentials.json] | docker login -u _json_key --password-stdin https://[HOSTNAME]

0 голосов
/ 03 января 2019

Следовали ли вы инструкциям здесь https://cloud.google.com/container-registry/docs/advanced-authentication для правильной настройки аутентификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...