共用方式為


Azure Container Registry Entra 許可權和角色指派概觀

Azure Container Registry (ACR) 提供一組 內建角色 ,可為 ACR 登錄提供Microsoft以 Entra 為基礎的許可權管理。 使用 Azure 角色型存取控制 (RBAC),您可以將內建角色指派給使用者、受控識別或服務主體,以授與角色內定義的Microsoft Entra 型許可權。 如果內建角色不符合您的需求,您也可以定義並指派自定義 角色 ,並針對您的特定需求量身打造更細緻的許可權。

支援的角色指派身分識別類型

ACR 角色可以指派給下列身分識別類型,以授與登錄資料庫的許可權:

請注意, ACR 連線登錄、ACR 的內部部署登錄供應專案與雲端式 ACR 不同,不支援 Azure 角色指派和以 Entra 為基礎的許可權管理。

執行角色指派以授予權限

如需有關如何將角色指派給身分識別的資訊,請參閱 新增角色指派的步驟。 您可以使用以下方法進行角色分配:

若要執行角色指派,您必須在登錄上擁有 Owner 角色或 Role Based Access Control Administrator 角色。

將角色指派範圍界定為特定儲存庫

您可以使用 Microsoft Entra 屬性型存取控制 ABAC 來管理 Microsoft Entra 為基礎的存放庫許可權。 此功能可讓您將角色指派的範圍設定為登錄中的特定存放庫。

如需 Microsoft Entra ABAC 資料儲存庫許可權的概觀,包括支援 Microsoft Entra ABAC 條件的 ACR 內建角色,請參閱 Microsoft Entra 為基礎的資料儲存庫許可權。 或者,您可以參閱 Azure Container Registry 角色目錄參考 ,以取得支援Microsoft Entra ABAC 條件的內建角色清單。

只指派身分識別執行其預期功能所需的許可權,以套用最低許可權原則。 這些常見案例各有建議的內建角色。

備註

適用的內建角色和角色行為取決於登錄的「角色指派許可權模式」。 這會顯示在 Azure 入口的 [屬性] 面板中:

  • RBAC 登錄 + ABAC 存放庫許可權:支援具有選擇性Microsoft Entra ABAC 條件的標準 RBAC 角色指派,以將指派範圍設定為特定存放庫。
  • RBAC 登錄權限:僅支援沒有 ABAC 條件的標準 RBAC 指派。

如需 Microsoft Entra ABAC 和 ABAC 啟用角色的詳細資訊,請參閱 Microsoft Entra 為基礎的存放庫許可權

  • 案例:需要提取映射並驗證供應鏈成品的身分識別,例如開發人員、管線和容器協調器(例如,Azure Kubernetes Service 節點 kubelet 身分識別、Azure Container Apps、Azure 容器實例、Azure Machine Learning 工作區)

    • 角色: Container Registry Repository Reader
    • 目的:授予資料平面唯讀存取權,以提取影像和工件,檢視標籤、存放庫、Open Container Initiative (OCI)引用者,以及工件串流設定。 不包括任何控制平台或撰寫權限。 不會授與存放庫目錄清單許可權 ,以列出登錄中的任何存放庫。
    • ABAC 支援:此角色支持選擇性Microsoft Entra ABAC 條件,以將角色指派的範圍設定為登錄中的特定存放庫。
  • 案例:身分識別,例如 CI/CD 建置管線、建置和推送映像的開發人員,以及管理映像標籤

    • 角色: Container Registry Repository Writer
    • 許可權:授與數據平面對推送、提取和更新(但不刪除)映射和成品的存取權、讀取/管理標籤、讀取/管理 OCI 查閱者,以及啟用存放庫和映射的成品串流。。 不包含任何控制平面許可權。 不會授與存放庫目錄清單許可權 ,以列出登錄中的任何存放庫。
    • ABAC 支援:此角色支持選擇性Microsoft Entra ABAC 條件,以將角色指派的範圍設定為登錄中的特定存放庫。
  • 案例:需要刪除影像、成品、標籤和 OCI 參考者的身分識別

    • 角色: Container Registry Repository Contributor
    • 許可權:授與 讀取、寫入、更新和刪除影像和工件、讀取/管理/刪除標籤、讀取/管理/刪除 OCI 參考者的許可權,以及啟用/停用存放庫和影像的工件串流。 不包含任何控制平面許可權。 不會授與存放庫目錄清單許可權 ,以列出登錄中的任何存放庫。
    • ABAC 支援:此角色支持選擇性Microsoft Entra ABAC 條件,以將角色指派的範圍設定為登錄中的特定存放庫。
  • 情境:需要列出註冊表中所有儲存庫的身分識別

    • 角色: Container Registry Repository Catalog Lister
    • 許可權:授與數據平面存取權,以列出登錄中的所有存放庫,包括透過 {loginServerURL}/acr/v1/_catalog{loginServerURL}/v2/_catalog 登錄 API 端點。 不包含任何控制層面的許可權或推送/拉取影像的許可權。
    • ABAC 支援:此角色 不支援 Microsoft Entra ABAC 條件。 因此,此角色指派會 授與許可權以列出登錄中的所有存放庫
  • 案例:管線、身分識別和簽署映像檔的開發人員

    • 若要使用 OCI 引用者簽署畫面,例如 Notary 專案
      • 角色: Container Registry Repository Writer
      • 許可權:授予數據平面訪問權,以附加在影像和製品上的 OCI 引用物形式推送簽名。 不包含任何控制平面許可權。
      • ABAC 支援:此角色支持選擇性Microsoft Entra ABAC 條件,以將角色指派的範圍設定為登錄中的特定存放庫。
    • 如需使用 Docker 內容信任簽署影像 (DCT)
      • 不支援在啟用了 ABAC 的註冊表中使用 DCT 進行映像簽名。
  • 案例:需要建立、 更新或刪除 ACR 登錄的管線、身分識別和開發人員

  • 情境:管道、基礎設施工程師或控制平面觀察/監控工具,需要列出註冊表並檢視註冊表設定,但無法存取註冊表映像

    • 角色: Container Registry Configuration Reader and Data Access Configuration Reader
    • 許可權:角色的唯讀對應項Container Registry Contributor and Data Access Configuration Administrator。 授與控制平面存取權以檢視和列出登錄,並檢查登錄組態,但不會加以修改。 不包含數據平面作業(例如映像推送/提取)或角色指派功能。
    • ABAC支援:此角色不支援Microsoft Entra ABAC條件,因為該角色的範圍設定為註冊層級,授予讀取整個註冊表的控制平面設定和配置的權限。
  • 案例:需要稽核登錄和登錄設定的弱點掃描器和工具,以及存取登錄映像以掃描弱點

    • 角色: Container Registry Repository ReaderContainer Registry Repository Catalog Lister、 和 Container Registry Configuration Reader and Data Access Configuration Reader
    • 許可權:授予控制平面存取權,以便檢視和列出 ACR 登錄,以及稽核登錄設定以符合稽核和合規要求。 同時授予提取映像、制品和查看標籤的許可權,以便掃描和分析映像是否存在漏洞。
    • ABAC支援:ACR 建議弱點掃描器和監視器具有登錄中所有存放庫的完整數據平面存取權。 因此,這些角色應該在沒有Microsoft Entra ABAC 條件的情況下指派,以授與角色許可權,而不將它們範圍設定為特定存放庫。
  • 案例:協調 ACR 工作的管線和身分識別

  • az acr import

    • 角色: Container Registry Data Importer and Data Reader
    • 許可權:授與控制平面存取,以使用 az acr import觸發映像匯入,以及數據平面存取來驗證匯入成功(提取匯入的映像和檔案、查看儲存庫的內容、列出 OCI 參照者,以及檢查匯入的標籤)。 不允許推送或修改登錄中的任何內容。
    • ABAC支援:此角色不支援Microsoft Entra ABAC條件,因為該角色的範圍設定在登錄層級,允許將影像匯入登錄中任何存放庫。 它也會授與許可權,以讀取登錄中所有存放庫中的映像。
  • 案例:身分識別,例如管線和開發人員,可管理 ACR 傳輸管線 ,以使用跨網路、租用戶或隔空界限的中繼記憶體帳戶在登錄處之間傳輸成品

    • 角色: Container Registry Transfer Pipeline Contributor
    • 許可權:授與控制平面存取權,以使用中繼記憶體帳戶管理 ACR 匯入/匯出傳輸管線和管線執行 。 不包含數據平面許可權、更廣泛的登錄存取權,或管理其他 Azure 資源類型的許可權,例如記憶體帳戶或密鑰保存庫。
    • ABAC支援:此角色不支援Microsoft Entra ABAC條件,因為該角色的範圍設定為註冊表層級,賦予管理註冊表中所有ACR傳輸管道的權限。
  • 案例:管理 隔離的影像

    • 角色: AcrQuarantineReaderAcrQuarantineWriter
    • 許可權:管理登錄中的隔離映像,包括列出和下載隔離映像以進行進一步檢查,以及修改映像的隔離狀態。 隔離的映像是指那些無法提取或使用的映像,除非取消隔離。
    • ABAC支援:此角色不支援Microsoft Entra ABAC條件,因為該角色的範圍設定為登錄層級,授與管理登錄中所有隔離映像的許可權。
  • 情境:在 ACR 任務上設定自動清除登錄的開發人員或流程

    • 角色: Container Registry Tasks Contributor
    • 權限:授予控制平面的權限來管理 在 ACR 任務上運行的自動清除
    • ABAC 支援:此角色不支援 Microsoft Entra ABAC 條件,因為該角色的範圍設定於註冊表層級,授予在註冊表中管理所有 ACR 任務的許可權。
  • 案例:Visual Studio Code Docker 擴充功能使用者

    • 角色: Container Registry Repository WriterContainer Registry Tasks Contributor、 和 Container Registry Contributor and Data Access Configuration Administrator
    • 許可權:授與功能以瀏覽登錄、提取和推送映像,以及使用 az acr build建置映射,以支援Visual Studio Code中的常見開發人員工作流程。
    • ABAC支援:ACR 建議 Visual Studio Code 使用者具有登錄中所有存放庫的完整數據平面存取權。 因此,這些角色應該在沒有Microsoft Entra ABAC 條件的情況下指派,以授與角色許可權,而不將它們範圍設定為特定存放庫。

後續步驟