允許信任的服務安全地存取網路受限的容器登錄

Azure Container Registry 可讓您選取的信任 Azure 服務以存取使用網路存取規則設定的登錄。 允許信任的服務時,信任的服務執行個體可以安全地略過登錄的網路規則,並執行提取或推送映像等作業。 本文說明如何啟用及使用信任的服務搭配具網路限制的 Azure 容器登錄。

使用 Azure Cloud Shell 或安裝在本機的 Azure CLI 來執行此文章中的命令範例。 如果要在本機使用,則需使用 2.18 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI

限制

關於信任的服務

Azure Container Registry 具有多層式安全性模型,支援限制登錄存取的多個網路設定,包括:

  • 具有 Azure Private Link 的私人端點。 設定時,登錄的私人端點只能使用私人 IP 位址存取虛擬網路內的資源。
  • 登錄防火牆規則,只允許從特定公用 IP 位址或位址範圍存取登錄的公用端點。 使用私人端點時,您也可以設定防火牆來封鎖對公用端點的所有存取。

在虛擬網路中部署或設定防火牆規則時,登錄會拒絕從這些來源外部存取使用者或服務。

數個多租用戶 Azure 服務會從這些登錄網路設定中無法包含的網路運作,以防止其執行提取或推送映像至登錄等作業。 藉由將特定服務執行個體指定為「信任」,登錄擁有者可以允許選取 Azure 資源,以安全地略過執行登錄作業的登錄網路設定。

信任的服務

如果啟用登錄的允許信任服務設定 (預設),則下列服務的執行個體可以存取具網路限制的容器登錄。 一段時間之後,就會新增更多服務。

在指定的情況下,信任服務的存取需要在服務執行個體中額外設定受控識別、指派 RBAC 角色,以及使用登錄進行驗證。 如需範例步驟,請參閱本文稍後所述的信任的服務工作流程

信任的服務 支援的使用方式情節 使用 RBAC 角色設定受控識別
Azure 容器執行個體 使用受控識別從 Azure Container Registry 部署至 Azure 容器執行個體 是,可以是系統指派或使用者指派的身分識別
適用於雲端的 Microsoft Defender 適用於容器登錄的 Microsoft Defender 執行弱點掃描 No
ACR 工作 從 ACR 工作存取父登錄或不同的登錄 Yes
Machine Learning 使用自訂 Docker 容器映像,在 Machine Learning 工作區中部署定型模型 Yes
Azure Container Registry 匯入映像至具網路限制的 Azure 容器登錄或從該登錄匯入映像 No

注意

目前,啟用允許信任的服務設定不適用於 App Service。

允許信任的服務 - CLI

根據預設,允許信任的服務設定會在新的 Azure 容器登錄中啟用。 執行 az acr update 命令來停用或啟用設定。

若要停用:

az acr update --name myregistry --allow-trusted-services false

若要在現有登錄或已停用的登錄中啟用此設定:

az acr update --name myregistry --allow-trusted-services true

允許信任的服務 - 入口網站

根據預設,允許信任的服務設定會在新的 Azure 容器登錄中啟用。

若要停用或重新啟用入口網站中的設定:

  1. 在入口網站中,瀏覽至容器登錄。
  2. 在 [設定] 底下,選取 [網路]
  3. 在 [允許公用網路存取] 中,選擇 [選取的網路] 或 [已停用]
  4. 執行下列其中一個動作:
    • 若要停用信任服務的存取,請在 [防火牆例外] 下方取消核取 [允許信任的 Microsoft 服務存取此容器登錄]
    • 若要允許信任的服務,請在 [防火牆例外] 下方核取 [允許信任的 Microsoft 服務存取此容器登錄]
  5. 選取 [儲存]。

信任的服務工作流程

以下是一般工作流程,可讓信任的服務執行個體存取具網路限制的容器登錄。 當服務執行個體的受控識別用來略過登錄的網路規則時,需要此工作流程。

  1. 在 Azure Container Registry 的其中一個信任的服務執行個體中啟用受控識別。
  2. 將具有 Azure 角色的身分識別指派給您的登錄。 例如,指派 ACRPull 角色來提取容器映像。
  3. 在具網路限制的登錄中,配置此設定以允許信任的服務存取。
  4. 使用身分識別的認證向具網路限制的登錄進行驗證。
  5. 從登錄提取映像,或執行角色允許的其他作業。

範例:ACR 工作

下列範例示範如何使用 ACR 工作作為信任的服務。 如需工作詳細資訊,請參閱在 ACR 工作中使用 Azure 受控識別進行跨登錄驗證

  1. 建立或更新 Azure 容器登錄。 建立 ACR 工作。
    • 建立工作時啟用系統指派的受控識別。
    • 停用工作的預設驗證模式 (--auth-mode None)。
  2. 存取登錄的 Azure 角色指派給工作身分識別。 例如,指派 AcrPush 角色,其具有提取和推送映像的權限。
  3. 新增登錄的受控識別認證至工作。
  4. 若要確認工作略過網路限制,請在登錄中停用公用存取
  5. 執行工作。 如果登錄和工作已正確設定,工作就會順利執行,因為登錄允許存取。

若要測試停用信任的服務存取:

  1. 停用允許信任服務存取的設定。
  2. 再次執行工作。 在此情況下,工作執行會失敗,因為登錄不再允許工作存取。

下一步