允許信任的服務安全地存取網路受限的容器登錄
Azure Container Registry 可讓您選取的信任 Azure 服務以存取使用網路存取規則設定的登錄。 允許信任的服務時,信任的服務執行個體可以安全地略過登錄的網路規則,並執行提取或推送映像等作業。 本文說明如何啟用及使用信任的服務搭配具網路限制的 Azure 容器登錄。
使用 Azure Cloud Shell 或安裝在本機的 Azure CLI 來執行此文章中的命令範例。 如果要在本機使用,則需使用 2.18 版或更新版本。 執行 az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
限制
- 使用信任服務的特定登錄存取案例需要適用於 Azure 資源的受控識別。 除非已指出支援使用者指派的受控識別,否則只能使用系統指派的身分識別。
- 允許信任的服務不適用於使用服務端點設定的容器登錄。 此功能只會影響受私人端點限制或已套用公用 IP 存取規則的登錄。
關於信任的服務
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 容器登錄中啟用。
若要停用或重新啟用入口網站中的設定:
- 在入口網站中,瀏覽至容器登錄。
- 在 [設定] 底下,選取 [網路]。
- 在 [允許公用網路存取] 中,選擇 [選取的網路] 或 [已停用]。
- 執行下列其中一個動作:
- 若要停用信任服務的存取,請在 [防火牆例外] 下方取消核取 [允許信任的 Microsoft 服務存取此容器登錄]。
- 若要允許信任的服務,請在 [防火牆例外] 下方核取 [允許信任的 Microsoft 服務存取此容器登錄]。
- 選取 [儲存]。
信任的服務工作流程
以下是一般工作流程,可讓信任的服務執行個體存取具網路限制的容器登錄。 當服務執行個體的受控識別用來略過登錄的網路規則時,需要此工作流程。
- 在 Azure Container Registry 的其中一個信任的服務執行個體中啟用受控識別。
- 將具有 Azure 角色的身分識別指派給您的登錄。 例如,指派 ACRPull 角色來提取容器映像。
- 在具網路限制的登錄中,配置此設定以允許信任的服務存取。
- 使用身分識別的認證向具網路限制的登錄進行驗證。
- 從登錄提取映像,或執行角色允許的其他作業。
範例:ACR 工作
下列範例示範如何使用 ACR 工作作為信任的服務。 如需工作詳細資訊,請參閱在 ACR 工作中使用 Azure 受控識別進行跨登錄驗證。
- 建立或更新 Azure 容器登錄。
建立 ACR 工作。
- 建立工作時啟用系統指派的受控識別。
- 停用工作的預設驗證模式 (
--auth-mode None
)。
- 將存取登錄的 Azure 角色指派給工作身分識別。 例如,指派 AcrPush 角色,其具有提取和推送映像的權限。
- 新增登錄的受控識別認證至工作。
- 若要確認工作略過網路限制,請在登錄中停用公用存取。
- 執行工作。 如果登錄和工作已正確設定,工作就會順利執行,因為登錄允許存取。
若要測試停用信任的服務存取:
- 停用允許信任服務存取的設定。
- 再次執行工作。 在此情況下,工作執行會失敗,因為登錄不再允許工作存取。
下一步
- 若要使用虛擬網路中的私人端點來限制對登錄的存取,請參閱設定 Azure 容器登錄的 Azure 私人連結。
- 若要設定登錄防火牆規則,請參閱設定公用 IP 網路規則。