You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同网络组的Azure容器应用配置ACR访问权限

解决方案

一、替换镜像源为Azure Container Registry

在创建或更新容器应用时,直接填写你的ACR镜像完整地址即可,格式为myregistry.azurecr.io/[镜像名称]:[版本标签],比如myregistry.azurecr.io/web-app:v2。只要容器应用能访问到该ACR并具备权限,就会自动从此处拉取镜像,替代Docker Hub等公共源。

二、为Dev/Uat环境的容器应用开通ACR访问权限

针对跨资源组的场景,有三种实用方案:

方案1:使用Azure托管标识(推荐)

这种方式无需手动管理密码,安全性更高:

  • 给Dev/Uat的容器应用开启系统分配托管标识,或创建用户分配托管标识并关联到容器应用
  • 为该托管标识分配ACR的AcrPull角色(仅拥有拉取镜像的权限,符合最小权限原则),可通过Azure CLI执行以下命令:
    az role assignment create --assignee <托管标识的客户端ID或资源ID> --scope /subscriptions/<你的订阅ID>/resourceGroups/production-network-group/providers/Microsoft.ContainerRegistry/registries/myregistry --role AcrPull
    
  • 最后在容器应用的镜像配置中,选择“使用托管标识”认证,无需再填写用户名和密码

方案2:使用服务主体凭证

如果必须采用凭证方式访问:

  • 创建一个Azure AD服务主体,并为其分配ACR的AcrPull角色
  • 将服务主体的客户端ID和密钥作为私有注册表凭证,添加到Dev/Uat的容器应用中:在容器应用的“容器”配置页面,新增私有注册表,地址填写myregistry.azurecr.io,用户名设为服务主体客户端ID,密码设为服务主体密钥
  • 配置完成后,容器应用即可通过该凭证拉取ACR中的镜像

方案3:网络层面打通(适用于要求私有网络访问的场景)

若不想让流量走公网,可通过网络配置实现私有访问:

  • 在production-network-group中为ACR创建专用端点,关联到prod环境的VNet
  • 将Dev/Uat环境的VNet(分别位于dev-network-group、uat-network-group)与prod的VNet建立VNet对等连接
  • 配置ACR的网络规则,允许来自Dev/Uat VNet的流量访问
  • 网络打通后,容器应用无需额外配置凭证,直接使用ACR地址即可拉取镜像

内容的提问来源于stack exchange,提问作者Python coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:47:03