401 Неавторизовано подписать образ для реестра контейнеров Azure

Я пытаюсь отправить подписанные образы в реестр контейнеров Azure. Я получаю сообщение об ошибке «не удалось подписать: у вас нет прав для выполнения этой операции: сервер вернул 401», хотя все разрешения RBAC установлены, и я вошел в систему с правильными учетными данными.

Я создал ACR в личной учетной записи (учетной записи разработчика) в Azure. Я выполнил инструкции, описанные в этой статье . Я включил доверие к контенту в ресурсе реестра контейнеров.

Я зарегистрирован как пользователь в Azure AD и назначил себе следующие роли для ресурса реестра контейнеров: - Владелец - AcrImageSigner - AcrPush

Я вошел в Azure с помощью az login, а затем я вошел в свой реестр контейнеров с ac acr login --resource-group <MY_RESOURCE_GROUP> --name <ACR_NAME>

* Изменить - в качестве альтернативы я попытался включить учетную запись администратора в моем ACR и использовать docker login с учетными данными учетной записи администратора, результат тот же.

Я могу видеть роли, назначенные мне через Azure CLI, и я проверил, что вошел в систему с теми же учетными данными. Я также пробовал включать и отключать ключ доступа администратора

Вот команды, которые я использую для отправки подписанного изображения в ACR со своего компьютера с Windows: set DOCKER_CONTENT_TRUST=1

docker push <ACR_SERVER>/<IMAGE_NAME>:<TAG>

Образ помещается в репозиторий, но не подписывается. Это журналы:

The push refers to repository [MY_ACR_NAME.azurecr.io/appname]
4a85926cec01: Layer already exists
349c7f00d08e: Layer already exists
370f72f4d447: Layer already exists
8dc6654a61c6: Layer already exists
8fa655db5360: Layer already exists
latest: digest: sha256:<A_VERY_LONG_SHA> size: 1375
Signing and pushing trust metadata
Enter passphrase for root key with ID 0c6a1f8:
Enter passphrase for new repository key with ID 96c45d3:
Repeat passphrase for new repository key with ID 96c45d3:
Finished initializing "MY_ACR_NAME.azurecr.io/appname"
failed to sign MY_ACR_NAME.azurecr.io/appname: you are not authorized to perform this operation: server returned 401.

Я ожидаю, что смогу подписать изображение, поскольку я аутентифицирован и у меня есть соответствующие роли. Я надеюсь, что кто-нибудь поможет мне понять, что мне не хватает!

  • Изменить 2: я попытался просто вытащить изображение hello-world из докера и подписать его, чтобы исключить возможность того, что я не могу `` подписать сторонние изображения ''. Тот же результат.

person bdelsaz    schedule 25.09.2019    source источник


Ответы (1)


Согласно этому решению:

Основная причина заключается в том, что список разрешений не распознается ACR, если текущий пользователь, вошедший в систему, имеет классическую роль администратора подписки, такую ​​как администратор службы и соадминистратор.

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

person bdelsaz    schedule 10.10.2019