Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реестр контейнеров Azure (ACR) поддерживает управление доступом на основе атрибутов Microsoft Entra (ABAC) для управления разрешениями репозитория. Эта функция повышает безопасность, обеспечивая более детализированное управление разрешениями в репозиториях реестра контейнеров. ABAC расширяет управление доступом на основе ролей Microsoft Entra (RBAC), добавляя условия, привязанные к конкретным репозиториям, в назначениях ролей.
ABAC предназначен для управления разрешениями репозитория с помощью управления доступом на основе ролей Microsoft Entra (RBAC), назначений ролей Microsoft Entra и удостоверений Microsoft Entra. Для управления разрешениями репозитория без Microsoft Entra используйте разрешения репозитория на основе токенов, не относящиеся к Microsoft Entra.
Настройка режима разрешений назначения ролей реестра
Чтобы использовать Microsoft Entra ABAC для управления разрешениями репозитория, убедитесь, что для режима разрешений назначения ролей реестра задано значение "RBAC Registry + ABAC Repository Permissions". Этот режим позволяет использовать назначения ролей RBAC (с помощью встроенных ролей ACR) с необязательными условиями ABAC для области назначения ролей определенным репозиториям.
Можно настроить режим разрешений назначения ролей реестра во время создания реестра или обновления существующего реестра. Это назначение роли можно выполнить с помощью портала Azure или Azure CLI. Вы можете включить ABAC для любого реестра независимо от его номера SKU.
Замечание
Убедитесь, что установлена последняя версия Azure CLI, выполнив команду az upgradeAzure CLI.
Кроме того, если вы ранее приняли участие в закрытой предварительной версии этой функции, возможно, вы установили пользовательское расширение частной предварительной версии для управления ACR ABAC.
Это пользовательское расширение больше не требуется и следует удалить (чтобы избежать конфликтов), выполнив команду az extension remove --name acrabacAzure CLI.
Влияние на существующие назначения ролей
Это важно
Если вы настроите реестр для использования "RBAC Registry + ABAC Repository Permissions", некоторые существующие назначения ролей не учитываются или будут иметь различные эффекты, так как другой набор встроенных ролей ACR применяется к реестрам с поддержкой ABAC.
Например, роли AcrPull, AcrPush и AcrDelete не учитываются в реестре с включенной поддержкой ABAC.
Вместо этого в реестрах с поддержкой ABAC используйте роли Container Registry Repository Reader, Container Registry Repository Writer, и Container Registry Repository Contributor для предоставления разрешений на использование образов на уровне реестра или репозитория.
Кроме того, привилегированные роли, такие как Owner, Contributorи Reader будут иметь различные последствия для реестра с поддержкой ABAC.
Они предоставят только разрешения уровня управления для создания, обновления и удаления самого реестра.
Эти привилегированные роли не предоставляют разрешений на уровне плоскости данных для репозиториев и образов в реестре.
Для получения дополнительной информации о роли, определяемой вашим сценарием и режимом разрешений на назначение ролей реестра, см. сценарии встроенных ролей ACR. Помимо этого, обратитесь к справочнику по встроенным ролям ACR для получения подробного описания каждой роли.
Влияние на задачи ACR, быстрые задачи, быстрые сборки и быстрые запуски
Это важно
Если вы настроите реестр для использования "RBAC Registry + ABAC Repository Permissions", новые и существующие задачи ACR, а также быстрые задачи, быстрые сборки и быстрые запуски, будут затронуты. Они больше не будут иметь доступ на плоскость данных по умолчанию к исходному реестру с поддержкой ABAC и его содержимому.
Сведения о последствиях этого изменения и предоставлении доступа к плоскости данных для задач ACR, быстрых задач, быстрых сборок и быстрых запусков в исходных реестрах с поддержкой ABAC см. в приложении: эффекты включения ABAC на задачи ACR, быстрые задачи, быстрые сборки и быстрые запуски.
Создание реестра с включенным ABAC
При создании реестра на портале Azure выберите параметр "Реестр RBAC и разрешения репозитория ABAC" в раскрывающемся списке "Режим разрешений назначения ролей".
Перейдите к заполнению остальной части формы создания реестра и нажмите кнопку "Создать", чтобы создать реестр. Дополнительные сведения о создании реестра см. в статье "Создание реестра контейнеров Azure" с помощью портала Azure.
Обновление существующего реестра для включения ABAC
Чтобы просмотреть существующий режим разрешений назначения ролей реестра, перейдите в колонку "Свойства" реестра. Текущий режим разрешений назначения ролей отображается в поле "Режим разрешений назначения ролей".
Чтобы обновить режим разрешений назначения ролей существующего реестра, выберите "RBAC Registry + ABAC Repository Permissions" (Разрешения репозитория RBAC и ABAC) и нажмите кнопку "Сохранить", чтобы обновить реестр.
Назначение прав доступа для репозитория Microsoft Entra ABAC
Вы можете использовать портал Azure или Azure CLI для назначения условий Microsoft Entra ABAC для области назначений ролей определенным репозиториям. В этом разделе приведены примеры добавления условий ABAC для определенного репозитория, префикса репозитория (подстановочный знак) или нескольких префиксов репозитория (несколько подстановочных знаков).
Встроенные роли с поддержкой ABAC
Следующие встроенные роли ACR — это роли с включенной функцией ABAC. Вы можете указать необязательные условия ABAC для следующих ролей, чтобы при необходимости ограничивать назначения ролей конкретными репозиториями.
-
Container Registry Repository Reader— роль с поддержкой ABAC, которая предоставляет разрешения на чтение изображений, тегов и метаданных в репозиториях в реестре. -
Container Registry Repository Writer— роль с поддержкой ABAC, которая предоставляет разрешения на чтение, запись и обновление изображений, тегов и метаданных в репозиториях в реестре. -
Container Registry Repository Contributor— роль с поддержкой ABAC, которая предоставляет разрешения на чтение, запись, обновление и удаление изображений, тегов и метаданных в репозиториях в реестре.
Обратите внимание, что эти роли не поддерживают разрешения на перечисление списков репозиториев в реестре.
Чтобы перечислить все репозитории в реестре (без предоставления разрешений на чтение содержимого репозитория), необходимо дополнительно назначить Container Registry Repository Catalog Lister роль.
Эта отдельная роль не поддерживает условия ABAC и всегда имеет разрешения на перечисление всех репозиториев в реестре.
Это важно
Если вы назначаете роль с поддержкой ABAC без условий ABAC, назначение роли не будет ограничено репозиториями. Это означает, что назначение ролей без условий ABAC будет рассматриваться как назначение ролей на уровне реестра, предоставляя разрешения всем репозиториям в реестре. Чтобы ограничить назначение роли определенными репозиториями, необходимо включить условия ABAC при назначении роли с поддержкой ABAC.
Для получения дополнительной информации о роли, определяемой вашим сценарием и режимом разрешений на назначение ролей реестра, см. сценарии встроенных ролей ACR. Помимо этого, обратитесь к справочнику по встроенным ролям ACR для получения подробного описания каждой роли.
Назначение ролей области определенному репозиторию
В этом примере мы назначаем Container Registry Repository Reader роль для предоставления права чтения для одного репозитория.
Добавив условия ABAC, это назначение роли позволяет извлекать изображения удостоверения, просматривать теги и читать метаданные только из указанного репозитория, предотвращая доступ к другим репозиториям в реестре.
Перейдите к панели "Управление доступом (IAM)" реестра. Нажмите кнопку "Добавить" и выберите "Добавить назначение ролей".
Выберите Container Registry Repository Reader в качестве роли.
Продолжайте, выбрав удостоверение, которому будет назначена роль.
Затем перейдите на вкладку "Условия". Нажмите кнопку "Добавить условие", чтобы добавить новое условие ABAC, чтобы ограничить область назначения роли.
Выберите опцию "визуальный редактор" в конструкторе условий ABAC.
Выберите действия (разрешения), которые нужно предоставить для этой роли, ограниченной областью репозитория. Для большинства случаев выберите все действия (разрешения), принадлежащие ранее выбранной роли, чтобы удостоверения могли выполнять только эти действия в пределах области репозитория.
Добавьте выражение для условия ABAC, чтобы ограничить назначение роли определенным репозиторием.
Настройте следующие параметры выражения для ограничения условия ABAC для определенного репозитория.
- Источник атрибута:
Request - Атрибут:
Repository name - Оператор:
StringEqualsIgnoreCase - Значение:
<repository-name>— полное имя репозитория.- Например, если полное имя репозитория равно
nginx, введитеnginx. - Если имя полного репозитория равно
backend/nginx, введитеbackend/nginx.
- Например, если полное имя репозитория равно
Нажмите кнопку "Сохранить", чтобы сохранить условие ABAC.
Просмотрите условие для назначения ролей ABAC. На странице обзора содержится выражение кода условия ABAC, которое может быть использовано для назначения той же роли с тем же условием ABAC, используя Azure CLI.
Выполните назначение роли, нажав кнопку "Проверить и назначить".
После создания назначения роли можно просмотреть, изменить или удалить назначение роли. Перейдите к разделу "Управление доступом (IAM)" реестра и перейдите на вкладку "Назначения ролей", чтобы просмотреть список существующих назначений ролей, которые применяются к реестру.
Назначить роль с областью действия нескольким хранилищам, используя префикс имени хранилища (подстановочный знак)
В этом примере мы назначим Container Registry Repository Reader роль, чтобы предоставить разрешения на извлечение нескольким репозиториям с общим префиксом (подстановочным знаком).
Добавив условия ABAC, это назначение роли позволяет извлекать изображения, просматривать теги и читать метаданные только из репозиториев с общим префиксом, предотвращая доступ к другим репозиториям в реестре.
Если вы выполнили предыдущий пример, чтобы назначить Container Registry Repository Reader роль определенному репозиторию, необходимо удалить это назначение роли (перейдя в панель "Управление доступом (IAM)" и выбрав вкладку "Назначения ролей"), прежде чем создавать новое с условием ABAC, ограниченным префиксом репозитория.
Выполните те же действия, что и в предыдущем примере , чтобы выполнить назначение роли с условиями ABAC.
На шаге, чтобы добавить выражение для условия ABAC, настройте выражение для условия ABAC, чтобы ограничить назначение роли несколькими репозиториями с общим префиксом (подстановочным знаком). Настройте следующие параметры:
- Источник атрибута:
Request - Атрибут:
Repository name - Оператор:
StringStartsWithIgnoreCase - Значение:
<repository-prefix>- префикс репозиториев, включая косую черту/.- Например, чтобы предоставить разрешения всем репозиториям с префиксом
backend/, такие какbackend/nginxиbackend/redis, введитеbackend/. - Чтобы предоставить разрешения всем репозиториям с префиксом
frontend/js/, напримерfrontend/js/reactиfrontend/js/vueвведитеfrontend/js/.
- Например, чтобы предоставить разрешения всем репозиториям с префиксом
Это важно
Треугольная скобка / необходима в выражении условия ABAC в Value поле.
Если косая черта /не включена, вы можете непреднамеренно предоставить разрешения другим репозиториям, которые не соответствуют префиксу.
Например, если вы вводите backend без завершающей косой черты /, назначение роли предоставляет разрешения для всех репозиториев с префиксом backend, таких как backend/nginx, backend/redis, backend-infra/k8s, backend-backup/store, backend и backendsvc/containers.
Нажмите кнопку "Сохранить", чтобы сохранить условие ABAC.
Просмотрите условие для назначения ролей ABAC. На странице обзора содержится выражение кода условия ABAC, которое может быть использовано для назначения той же роли с тем же условием ABAC, используя Azure CLI.
Выполните назначение роли, нажав кнопку "Проверить и назначить".
После создания назначения роли можно просмотреть, изменить или удалить назначение роли. Перейдите к разделу "Управление доступом (IAM)" реестра и перейдите на вкладку "Назначения ролей", чтобы просмотреть список существующих назначений ролей, которые применяются к реестру.
Назначение роли с ограниченным доступом к нескольким хранилищам данных с использованием множественных префиксов репозитория (множество шаблонных символов)
В этом примере мы назначим Container Registry Repository Reader роль, чтобы предоставить права чтения нескольким репозиториям под двумя разными префиксами (несколько подстановочных символов).
Добавив условия ABAC, это назначение роли позволяет извлекать изображения удостоверения, просматривать теги и читать метаданные только из указанного репозитория, предотвращая доступ к другим репозиториям в реестре.
Если вы выполнили предыдущий пример, чтобы назначить Container Registry Repository Reader роль определенному репозиторию, необходимо удалить это назначение роли (перейдя в панель "Управление доступом (IAM)" и выбрав вкладку "Назначения ролей"), прежде чем создавать новое с условием ABAC, ограниченным префиксом репозитория.
Выполните те же действия, что и в предыдущем примере , чтобы выполнить назначение роли с условиями ABAC.
На шаге добавления выражения для условия ABAC настройте два выражения для области применения роли в нескольких хранилищах данных под двумя префиксами: backend/ и frontend/js/ (несколько подстановочных знаков).
Для первого выражения настройте следующие параметры:
- Источник атрибута:
Request - Атрибут:
Repository name - Оператор:
StringStartsWithIgnoreCase - Значение:
<repository-prefix>- префикс репозиториев, включая косую черту/.- Например, чтобы предоставить разрешения всем репозиториям с префиксом
backend/, такие какbackend/nginxиbackend/redis, введитеbackend/. - Чтобы предоставить разрешения всем репозиториям с префиксом
frontend/js/, напримерfrontend/js/reactиfrontend/js/vueвведитеfrontend/js/.
- Например, чтобы предоставить разрешения всем репозиториям с префиксом
Нажмите кнопку "Добавить выражение". Убедитесь, что логический оператор имеет значение Or. При необходимости можно выбрать "Группировать" для группирования выражений и управлять порядком оценки. Визуальный редактор также поддерживает несколько логических операторов, включая "And", "Or", иерархическую группировку и отрицание.
Для второго выражения настройте следующие параметры:
- Источник атрибута:
Request - Атрибут:
Repository name - Оператор:
StringStartsWithIgnoreCase - Значение:
<repository-prefix>- префикс репозиториев, включая косую черту/.- Например, чтобы предоставить разрешения всем репозиториям с префиксом
backend/, такие какbackend/nginxиbackend/redis, введитеbackend/. - Чтобы предоставить разрешения всем репозиториям с префиксом
frontend/js/, напримерfrontend/js/reactиfrontend/js/vueвведитеfrontend/js/.
- Например, чтобы предоставить разрешения всем репозиториям с префиксом
Это важно
Треугольная скобка / необходима в выражении условия ABAC в Value поле.
Если косая черта /не включена, вы можете непреднамеренно предоставить разрешения другим репозиториям, которые не соответствуют префиксу.
Например, если вы вводите backend без завершающей косой черты /, назначение роли предоставляет разрешения для всех репозиториев с префиксом backend, таких как backend/nginx, backend/redis, backend-infra/k8s, backend-backup/store, backend и backendsvc/containers.
Нажмите кнопку "Сохранить", чтобы сохранить условие ABAC.
Просмотрите условие для назначения ролей ABAC. На странице обзора содержится выражение кода условия ABAC, которое может быть использовано для назначения той же роли с тем же условием ABAC, используя Azure CLI.
Выполните назначение роли, нажав кнопку "Проверить и назначить".
После создания назначения роли можно просмотреть, изменить или удалить назначение роли. Перейдите к разделу "Управление доступом (IAM)" реестра и перейдите на вкладку "Назначения ролей", чтобы просмотреть список существующих назначений ролей, которые применяются к реестру.
Максимальное количество условий ABAC
Портал Azure поддерживает ограниченное количество условий ABAC на назначение ролей.
Чтобы добавить больше условий ABAC, чем позволяет лимит портала Azure, вы можете использовать Azure CLI для создания назначения роли с дополнительными условиями ABAC.
Приложение. Эффекты включения ABAC на задачи ACR, быстрые задачи, быстрые сборки и быстрые запуски
Влияние на задачи ACR
Это важно
Если реестр настроен с разрешениями RBAC Registry + ABAC Repository, новые и существующие задачи ACR больше не имеют стандартного доступа к плоскости данных исходного реестра, включая образы и артефакты в его репозиториях. Необходимо явно присоединить и задать удостоверение, которое будет использоваться новыми и существующими задачами ACR для проверки подлинности в реестре источников с поддержкой ABAC. Затем предоставьте присоединенному удостоверению соответствующую встроенную роль ACR, чтобы включить проверку подлинности и доступ к репозиториям реестра.
Присвоение идентификационных данных новой задаче ACR для доступа к исходному реестру.
Для реестров источников с поддержкой ABAC используйте az acr task create вместе с флагом --source-acr-auth-id, чтобы указать удостоверение, которое задача будет использовать для аутентификации в исходном реестре:
-
--source-acr-auth-id [system]— закрепляет назначенное системой управляемое удостоверение. -
--source-acr-auth-id $resourceId— присоединяет управляемую идентичность, назначенную пользователем, используя идентификатор ресурса.
После присоединения идентификатора назначьте ему предопределенную роль ACR (необязательно с условиями ABAC), чтобы предоставить соответствующие разрешения.
Обновление существующей задачи ACR для использования удостоверения для доступа к исходному реестру
Для реестров источников с поддержкой ABAC используйте az acr task update с теми же параметрами --source-acr-auth-id, чтобы назначить или изменить удостоверение, используемое задачей для проверки подлинности в исходном реестре. Как и в случае с новыми задачами, выполните соответствующее назначение ролей.
Удаление доступа к исходному реестру из задачи ACR
Чтобы явно предотвратить проверку подлинности задачи ACR с помощью исходного реестра с поддержкой ABAC и заблокировать разрешения задачи в исходном реестре, установите --source-acr-auth-id none. Это отключает возможность задачи выполнять любые операции в исходном реестре и содержимом в нем.
Замечание
Примечание. Флаг --auth-mode устарел для реестров с поддержкой ABAC и больше не поддерживается для управления доступом к задачам ACR.
Влияние на быстрые задачи, быстрые сборки и быстрые запуски
Это важно
Если реестр настроен с разрешениями RBAC Registry + ABAC Repository, новые быстрые задачи, такие как быстрые сборки и быстрые запуски, больше не будут иметь доступ по умолчанию к плоскости данных исходного реестра, включая его образы и артефакты в репозиториях. Для быстрых задач необходимо использовать идентификатор вызывающего для аутентификации быстрой задачи в исходном реестре. Удостоверение вызывающей стороны должно иметь соответствующую встроенную роль ACR, чтобы обеспечить проверку подлинности и доступ к репозиториям реестра.
Выполнение быстрой задачи с удостоверением вызывающего объекта для доступа к исходному реестру
Для реестров источников, включенных для работы с ABAC, используйте az acr build или az acr run с параметром --source-acr-auth-id [caller], чтобы указать удостоверение вызывающего объекта, которое будет использоваться Заданием Быстрого Действия для аутентификации в исходном реестре. Перед выполнением быстрой задачи убедитесь, что удостоверение вызывающего имеет соответствующую встроенную роль ACR для включения проверки подлинности и доступа к исходному реестру и его репозиториям.
Выполнение быстрой задачи без доступа к исходному реестру
Чтобы выполнить быструю задачу без доступа к исходному реестру, используйте az acr build или az acr run с параметром --source-acr-auth-id none . Это отключает возможность быстрой задачи выполнять любые операции в исходном реестре и содержимом в нем.
Дальнейшие шаги
- Общие сведения об этих встроенных ролях, включая поддерживаемые типы удостоверений назначения ролей, шаги по выполнению назначения ролей и рекомендуемые роли для распространенных сценариев, см. Встроенные роли RBAC для реестра контейнеров Azure.
- Чтобы выполнить назначение ролей с необязательными условиями Microsoft Entra ABAC для ограничения назначений ролей на определенные репозитории, см. раздел разрешения репозитория на основе Microsoft Entra.
- Подробные сведения о каждой встроенной роли ACR, включая разрешения, предоставленные каждой ролью, см. в справочнике по каталогу ролей реестра контейнеров Azure.
- Дополнительные сведения о создании пользовательских ролей, отвечающих вашим потребностям и требованиям, см. в разделе "Настраиваемые роли реестра контейнеров Azure".