Роли и разрешения реестра контейнеров Azure

Служба реестра контейнеров Azure поддерживает набор встроенных ролей Azure, которые предоставляют различные уровни разрешений для реестра контейнеров Azure. Используйте Управление доступом на основе ролей Azure (Azure RBAC), чтобы назначать определенные разрешения пользователям, субъектам служб или другим удостоверениям, которые должны взаимодействовать с реестром, например, для извлечения или отправки образов контейнеров. Вы также можете определить пользовательские роли с детализированными разрешениями в реестре для различных операций.

Роль или разрешение Доступ к Resource Manager Создание и удаление реестра Отправка образа Получение образа Удаление данных образа Изменение политик Подписывание образов
Владелец X X X X X X
Участник X X X X X X
Читатель X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Назначение ролей

См. Шаги по добавлению назначения ролей, где приведены высокоуровневые шаги по добавлению назначения ролей существующему пользователю, группе, субъекту службы или управляемому удостоверению. Вы можете использовать портал Azure, Azure CLI, Azure PowerShell или другие инструменты Azure.

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

Различие пользователей и служб

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

Решения CI/CD

При автоматизации команд docker build от решений CI/CD вам необходимы возможности docker push. Для этих сценариев автономного обслуживания мы рекомендуем назначить роль AcrPush. Эта роль, в отличие от более широкой роли Участник, не позволяет учетной записи выполнять другие операции с реестром и обращаться к Azure Resource Manager.

Узлы контейнеров

Точно так же узлам, в которых запущены контейнеры, необходима роль AcrPull, но им не требуются возможности роли Читатель.

Расширение Docker для Visual Studio Code

Для таких средств, как расширение Docker для Visual Studio Code, необходим доступ к дополнительному поставщику ресурсов для получения доступных реестров контейнеров Azure. В этом случае предоставьте своим пользователям доступ к роли Читатель или Участник. Эти роли позволяют использовать docker pull, docker push, az acr list, az acr build и другие возможности.

Доступ к Resource Manager

Доступ к Azure Resource Manager является обязательным для управления порталом Azure и реестром с помощью Azure CLI. Это набор разрешений потребуется, например, чтобы получить список реестров с помощью команды az acr list.

Создание и удаление реестра

Возможность создавать и удалять реестры контейнеров Azure.

Отправка образа

Возможность docker push образа или отправки другого поддерживаемого артефакта, например диаграммы Helm, в реестр. Требуется проверка подлинности в реестре с помощью авторизованного удостоверения.

Получение образа

Возможность docker pull образа, не находящегося на карантине, или получения другого поддерживаемого артефакта, например диаграммы Helm, из реестра. Требуется проверка подлинности в реестре с помощью авторизованного удостоверения.

Удаление данных образа

Возможность удалять образы контейнеров или другие поддерживаемые артефакты, такие как диаграммы Helm, из реестра.

Изменение политик

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

Подписывание образов

Возможность подписывания образов обычно назначается автоматизированному процессу, который использует субъект-службу. Это разрешение обычно объединяется с разрешением на отправку образа, чтобы разрешить отправку доверенного образа в реестр. Дополнительные сведения см. в разделе Доверие содержимому в реестре контейнеров Azure.

Пользовательские роли

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

Чтобы определить, какие разрешения применить к настраиваемой роли, просмотрите список действий Microsoft.ContainerRegistry, просмотрите разрешенные действия встроенных ролей ACR или выполните следующую команду:

az provider operation show --namespace Microsoft.ContainerRegistry

Чтобы определить настраиваемую роль, см. Шаги по созданию настраиваемой роли.

Примечание

В клиентах, настроенных с помощью приватного канала Azure Resource Manager, Реестр контейнеров Azure поддерживает действия с подстановочными знаками, такие как Microsoft.ContainerRegistry/*/read или Microsoft.ContainerRegistry/registries/*/write, в настраиваемых ролях, предоставляя доступ ко всем соответствующим действиям. В клиенте без приватного канала ARM укажите все необходимые действия реестра по отдельности в настраиваемой роли.

Пример: пользовательская роль для импорта изображений

Например, следующий JSON определяет минимальные действия для настраиваемой роли, которая позволяет импортировать изображения в реестр.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Can import images to registry",
   "Name": "AcrImport",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/push/write",
         "Microsoft.ContainerRegistry/registries/pull/read",
         "Microsoft.ContainerRegistry/registries/read",
         "Microsoft.ContainerRegistry/registries/importImage/action"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

Чтобы создать или обновить настраиваемую роль с помощью описания JSON, используйте Azure CLI, шаблон Azure Resource Manager, Azure PowerShell или другие инструменты Azure. Добавляйте или удаляйте назначения ролей для настраиваемой роли так же, как вы управляете назначениями ролей для встроенных ролей Azure.

Дальнейшие действия