Поделиться через


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

Реестр контейнеров Azure (ACR) поддерживает управление доступом на основе ролей Azure (RBAC) для управления доступом к реестру. Если ни одна из встроенных ролей Реестра контейнеров Azure не соответствует вашим потребностям, вы можете создать пользовательские роли с точными разрешениями, адаптированными к вашему сценарию. В этой статье описаны действия по определению, созданию и назначению пользовательских ролей для реестра контейнеров Azure.

Разрешения настраиваемых ролей

Набор разрешений (действия и действия данных) определяет пользовательскую роль. Разрешения, определенные в пользовательской роли, определяют, какие операции могут выполнять пользователи с ресурсами реестра.

Чтобы определить, какие разрешения (действия и действия данных) должны быть определены в пользовательской роли, можно:

  • Просмотрите определение JSON встроенного каталога ролей Azure для контейнеров , включающих часто используемые разрешения (действия и действия данных), используемые в встроенных ролях ACR.
  • Просмотрите полный список разрешений поставщиков ресурсов (справочник действий и действий с данными в реестре контейнеров Azure).

Для программного перечисления всех доступных разрешений (действий и действий данных) для Microsoft.ContainerRegistry поставщика ресурсов можно использовать следующие команды Azure CLI или Azure PowerShell.

az provider operation show --namespace Microsoft.ContainerRegistry
Get-AzProviderOperation -OperationSearchString Microsoft.ContainerRegistry/*

Пример: Пользовательская роль для управления веб-перехватчиками

Например, следующий код JSON определяет минимальные разрешения (действия и операции с данными) для пользовательской роли, позволяющей управлять веб-перехватчиками ACR.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Manage Azure Container Registry webhooks.",
   "Name": "Container Registry Webhook Contributor",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/webhooks/read",
         "Microsoft.ContainerRegistry/registries/webhooks/write",
         "Microsoft.ContainerRegistry/registries/webhooks/delete"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

Создание или обновление настраиваемой роли

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

Замечание

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

Назначение настраиваемой роли

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

Дальнейшие шаги

  • Общие сведения об этих встроенных ролях, включая поддерживаемые типы удостоверений назначения ролей, шаги по выполнению назначения ролей и рекомендуемые роли для распространенных сценариев, см. Встроенные роли RBAC для реестра контейнеров Azure.
  • Чтобы выполнить назначение ролей с необязательными условиями Microsoft Entra ABAC, чтобы ограничить назначение ролей определенными репозиториями, см. разрешения репозитория на основе Microsoft Entra.
  • Подробные сведения о каждой встроенной роли ACR, включая разрешения, предоставленные каждой ролью, см. в справочнике по каталогу ролей реестра контейнеров Azure.