Azure 容器注册表自定义角色

Azure 容器注册表(ACR)支持 Azure 基于角色的访问控制(RBAC) 来管理对注册表的访问。 如果任何 Azure 容器注册表内置角色 都不符合你的需求,则可以使用根据方案定制的精细权限创建自定义角色。 本文介绍为 Azure 容器注册表定义、创建和分配自定义角色的步骤。

自定义角色权限

一组权限(操作和数据操作)定义了一个自定义角色。 自定义角色中定义的权限决定了用户可以对注册表资源执行的操作。

若要确定应在自定义角色中定义哪些权限(操作和数据操作),可以:

若要以编程方式列出 Microsoft.ContainerRegistry 资源提供程序的所有可用权限(操作和数据操作),可以使用以下 Azure CLI 或 Azure PowerShell 命令。

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

示例:用于管理 Webhook 的自定义角色

例如,以下 JSON 定义了一个自定义角色的最小权限(操作和数据操作),以允许管理 ACR 的 Webhook

{
   "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 CLIAzure 资源管理器模板Azure PowerShell 创建自定义角色。

注释

在使用 Azure 资源管理器专用链接配置的租户中,Azure 容器注册表支持在自定义角色中使用通配符操作(如 Microsoft.ContainerRegistry/*/readMicrosoft.ContainerRegistry/registries/*/write),从而授予对所有匹配操作的访问权限。 在无 ARM 专用链接的租户中,请勿使用通配符,并在自定义角色中单独指定所有必需的注册表操作。

分配自定义角色

添加或删除自定义角色的角色分配的方式与管理内置角色的角色分配的方式相同。 详细了解如何通过 Azure 门户Azure CLIAzure PowerShell 或其他 Azure 工具将 Azure 角色分配给 Azure 标识。

后续步骤