你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 容器注册表角色参考目录

此目录提供可用于 Azure 容器注册表(ACR)的所有内置角色的综合参考。 本文档专为需要对内置角色中的 ACR 权限有详细知识的专家用户设计,以便进行标识管理、审核、安全性或自定义角色设计。 此处记录了每个 ACR 内置角色及其包含的控制平面和数据平面权限。

以下内置角色类型可用:

有关这些内置角色的高级概述(包括受支持的角色分配标识类型、执行角色分配的步骤以及常见方案的建议角色)请参阅 Azure 容器注册表内置角色

注释

适用的内置角色和角色行为取决于注册表的“角色分配权限模式”。这在 Azure 门户的“属性”边栏选项卡中可见:

  • RBAC 注册表 + ABAC 存储库权限:支持使用可选Microsoft Entra ABAC 条件的标准 RBAC 角色分配,以将分配范围限定到特定存储库。
  • RBAC 注册表权限:仅支持标准的 RBAC 配置,不包括 ABAC 条件。

有关 Microsoft Entra ABAC 和已启用 ABAC 的角色的详细信息,请参阅基于 Microsoft Entra 的存储库权限

内置角色参考

每个内置角色都包含一组权限(操作和数据操作),用于控制哪些操作可以在注册表上执行。 这些权限分为两类:

  • 控制面板权限:创建、管理、删除和配置 ACR 注册表、整个注册表范围内的配置以及整个注册表范围内的策略。
  • 数据平面权限:执行读取、修改或删除注册表中的数据的作,例如在注册表中推送、拉取、修改或删除图像、项目和标记。 还包括修改存储库特定的配置和策略的操作。

控制平面角色

以下内置角色为控制平面角色。 将这些角色分配给需要管理注册表但无需数据平面权限的标识。

适用的角色和角色行为取决于注册表的“角色分配权限模式”。这在 Azure 门户的“属性”边栏选项卡中可见。 有关 Entra ABAC 的详细信息,请参阅 基于 Entra 的存储库权限

容器注册表参与者和数据访问配置管理员
容器注册表配置读取器和数据访问配置读取器
容器注册表任务参与者
  • 用例:分配给标识(例如 CI/CD 管道或自动化工具),这些标识需要管理 ACR 任务和任务相关的资源,而无需访问其他注册表操作或映像数据。
  • 权限:授予控制平面访问权限以管理 ACR 任务,包括任务定义、运行、任务代理池、快速任务(使用az acr build快速生成快速运行az acr run)、任务日志任务标识。 不包括数据平面权限或对任务外部注册表配置的访问权限。
    • 控制平面权限
      • 管理 ACR 任务、任务执行、任务代理池、快速任务(使用az acr build快速构建和使用az acr run快速运行)、任务日志任务标识
        • 授予配置 ACR 任务的系统分配的托管标识的权限。 注意:若要管理 ACR 任务的用户分配的托管标识,需要单独的 Managed Identity Operator 角色。
        • 授予管理 ACR 任务的自动清除的权限
        • 对于已启用 ABAC 的注册表,ACR 任务、快速生成和快速运行没有在存储库中推送、拉取或删除映像和标记的默认数据平面权限。
          • 属于已启用 ABAC 的注册表的 ACR 任务必须将 Container Registry Repository Reader/Writer/ContributorContainer Registry Repository Catalog Lister 角色分配给任务标识,才能执行数据平面操作。
          • 对于快速构建和快速运行,调用快速任务的实体(调用方)必须被分配 Container Registry Repository Reader/Writer/ContributorContainer Registry Repository Catalog Lister 角色,以便执行数据平面的操作。
    • 数据平面权限
      • 没有
容器注册表传输管道参与者
容器注册表数据导入程序和数据读取器
  • 用例:分配给需要使用 az acr import 从其他注册表导入映像的标识(如 CI/CD 管道)。 该角色还允许读取镜像库中的映像和制品,以验证导入操作是否成功。
  • 权限:授予控制平面访问权限以使用 az acr import 触发映像导入,同时授予数据平面访问权限以拉取映像和项目、查看存储库内容、开放容器计划 (OCI) 引用、标签和项目流配置。 不允许推送或修改注册表中的任何内容。
    • 控制平面权限
    • 数据平面权限
      • 拉取注册表中存储库内的映像和项目
      • 查看和列出 OCI 引用项目
      • 查看和列出映像和项目元数据(例如标记)
      • 在注册表中查看和列出存储库(映像名称)
      • 查看存储库和映像的工件流式处理配置(例如查看存储库策略以自动转换工件流式处理,以及查看映像的工件流式处理配置)

数据平面角色

以下内置角色为数据平面角色。 将这些角色分配给需执行数据平面操作(与注册表中存储的映像和项目交互)但无需管理注册表控制平面权限的标识。

适用的角色和角色行为取决于注册表的“角色分配权限模式”。这在 Azure 门户的“属性”边栏选项卡中可见。 有关 Microsoft Entra ABAC 的详细信息,请参阅 Microsoft Entra 存储库权限

容器注册表存储库读取者
  • 用例:分配给容器主机节点、业务流程协调程序、漏洞扫描程序或仅需要拉取映像和读取存储库元数据的开发人员,而无需推送或修改内容。
  • 权限:授予数据平面只读访问权限,以拉取映像和项目,以及查看标记、存储库、开放容器计划 (OCI) 引用和项目流式处理配置。 不包括任何控制平面权限或写入权限。
    • 控制平面权限
      • 没有
    • 数据平面权限
      • 拉取注册表中存储库内的映像和项目
      • 查看和列出 OCI 引用项目
      • 查看和列出映像和项目元数据(例如标记)
      • 在注册表中查看和列出存储库(映像名称)
      • 查看存储库和映像的工件流式处理配置(例如查看存储库策略以自动转换工件流式处理,以及查看映像的工件流式处理配置)
      • 不授予存储库目录列表权限。
    • ABAC 支持:支持可选的Microsoft Entra ABAC 条件,以将角色分配范围限定为特定存储库。
容器注册表存储库编写器
  • 用例:分配给 CI/CD 管道、自动化工具或开发人员,这些开发人员需要推送和拉取容器映像、管理标记以及处理项目,而无需控制注册表配置或设置。 另外分配给负责给映像签名、作为受信供应链一部分的自动化流程或服务。
  • 权限:授予数据平面访问权限,以推送和拉取映像和项目、读取/管理标记、读取/管理 OCI 引用,以及为存储库和映像启用(但不禁用)项目流式处理。 不包括任何控制平面权限。
    • 控制平面权限
      • 没有
    • 数据平面权限
      • 在注册表中的存储库中推送和拉取映像和项目
      • 创建、查看和列出 OCI 引用项目
      • 管理图像和工件元数据,例如标记(创建、读取、列出、重新标记和取消标记)
      • 在注册表中查看和列出存储库(映像名称)
      • 为存储库和映像配置 项目流式处理 (例如为自动项目流式转换设置存储库策略,并为特定映像启用(但未禁用)项目流式转换)
      • 不授予存储库目录列表权限。
    • ABAC 支持:支持可选的Microsoft Entra ABAC 条件,以将角色分配范围限定为特定存储库。
容器注册表存储库参与者
  • 用例:分配给负责管理映像生命周期和清理的标识或服务。
  • 权限:授予 读取、写入、更新和删除 镜像和工件、读取/管理/删除标记、读取/管理/删除 OCI 引用者的权限,以及为存储库和镜像启用/禁用工件流式传输。 不包括任何控制平面权限。
    • 控制平面权限
      • 没有
    • 数据平面权限
      • 推送、拉取和删除注册表中存储库内的映像和项目
      • 创建、查看、列出和删除 OCI 引用项目
      • 管理和删除映像及项目元数据,例如标记(创建、读取、列出、重新标记、取消标记和删除标记
      • 在注册表中查看和列出存储库(映像名称)
      • 为存储库和映像配置 项目流式处理 (例如为自动项目流式转换设置存储库策略,并为特定映像启用/禁用 项目流转换)
      • 不授予存储库目录列表权限。
    • ABAC 支持:支持可选的Microsoft Entra ABAC 条件,以将角色分配范围限定为特定存储库。
容器注册表存储库目录列表程序
  • 用例:分配给需要 列出注册表中的所有存储库 的标识或服务,例如 CI/CD 管道、开发人员、漏洞扫描程序或注册表监视和审核工具。
  • 权限:授予数据平面访问权限以 列出注册表中的所有存储库 。 不包括任何控制平面权限或推送/拉取映像的权限。
    • 控制平面权限
      • 没有
    • 数据平面权限
      • 列出注册表中的所有存储库(映像名称)
      • 授予调用 {loginServerURL}/acr/v1/_catalog{loginServerURL}/v2/_catalog 注册表 API 终结点以列出注册表中的所有存储库的权限。
      • 不授予查看或列出存储库中的镜像、制品、标记或 OCI 引用的权限。
    • ABAC 支持:此角色不支持 Entra ABAC 条件。 因此,此角色分配将 授予列出注册表中的所有存储库的权限
AcrQuarantineWriter
  • 用例:分配给管理隔离映像的自动化进程或服务,例如 CI/CD 管道和漏洞扫描程序。
  • 权限:管理注册表中的隔离映像。
    • 控制平面权限
      • 没有
    • 数据平面权限
      • 管理 隔离的项目 (列出和读取隔离的项目,修改项目隔离状态)
    • ABAC 支持:不支持 Microsoft Entra ABAC 条件
AcrQuarantineReader
  • 用例:分配给负责列出、读取和拉取隔离的映像的自动化流程或服务,例如 CI/CD 管道和漏洞扫描程序。
  • 权限:在注册表中列出、读取和提取已隔离的镜像。
    • 控制平面权限
      • 没有
    • 数据平面权限
    • ABAC 支持:不支持 Microsoft Entra ABAC 条件

特权角色

以下内置角色是特权角色。 仅将这些角色分配给受信任的标识,因为这些角色可以访问各种资源和权限,不仅限于 Azure 容器注册表,而是包括其他资源类型。

Azure 建议尽可能少使用特权 控制平面角色数据平面角色 ,而不是这些特权角色。

适用的角色和角色行为取决于注册表的“角色分配权限模式”。这在 Azure 门户的“属性”边栏选项卡中可见。 有关 Microsoft Entra ABAC 的详细信息,请参阅 Microsoft Entra 存储库权限

所有者
贡献者
  • 用例:分配给需要管理注册表但不需要角色分配权限的标识。
  • 权限:对所有注册表控制平面作(角色分配权限除外)的完全访问权限。
    • 控制平面权限
      • 与所有者相同,但不包括管理或执行注册表的角色分配。 仅授予查看和列出注册表中的角色分配的权限。
      • 注意:若要管理或执行注册表的角色分配,需要该 Role Based Access Control Administrator 角色。 建议使用此不太特权的角色来替代 Owner 角色,以管理角色分配。
    • 数据平面权限
      • 无 - 已启用 ABAC 的注册表没有内置参与者角色的数据平面权限。
读取者

后续步骤