允許信任的服務安全地存取網路受限的容器登錄
Azure Container Registry 可讓您選取的信任 Azure 服務以存取使用網路存取規則設定的登錄。 允許信任的服務時,信任的服務執行個體可以安全地略過登錄的網路規則,並執行提取或推送映像等作業。 本文說明如何啟用及使用信任的服務搭配具網路限制的 Azure 容器登錄。
使用 Azure Cloud Shell 或安裝在本機的 Azure CLI 來執行此文章中的命令範例。 如果要在本機使用,則需使用 2.18 版或更新版本。 執行 az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
Azure Container Registry 具有多層式安全性模型,支援限制登錄存取的多個網路設定,包括:
在虛擬網路中部署或設定防火牆規則時,登錄會拒絕從這些來源外部存取使用者或服務。
數個多租用戶 Azure 服務會從這些登錄網路設定中無法包含的網路運作,以防止其執行提取或推送映像至登錄等作業。 藉由將特定服務執行個體指定為「信任」,登錄擁有者可以允許選取 Azure 資源,以安全地略過執行登錄作業的登錄網路設定。
如果啟用登錄的允許信任服務設定 (預設),則下列服務的執行個體可以存取具網路限制的容器登錄。 一段時間之後,就會新增更多服務。
在指定的情況下,信任服務的存取需要在服務執行個體中額外設定受控識別、指派 RBAC 角色,以及使用登錄進行驗證。 如需範例步驟,請參閱本文稍後所述的信任的服務工作流程。
注意
目前,啟用允許信任的服務設定不適用於 App Service。
根據預設,允許信任的服務設定會在新的 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 工作中使用 Azure 受控識別進行跨登錄驗證。
- 建立或更新 Azure 容器登錄。
建立 ACR 工作。
- 建立工作時啟用系統指派的受控識別。
- 停用工作的預設驗證模式 (
--auth-mode None
)。
- 將存取登錄的 Azure 角色指派給工作身分識別。 例如,指派 AcrPush 角色,其具有提取和推送映像的權限。
- 新增登錄的受控識別認證至工作。
- 若要確認工作略過網路限制,請在登錄中停用公用存取。
- 執行工作。 如果登錄和工作已正確設定,工作就會順利執行,因為登錄允許存取。
若要測試停用信任的服務存取:
- 停用允許信任服務存取的設定。
- 再次執行工作。 在此情況下,工作執行會失敗,因為登錄不再允許工作存取。