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

配置虚拟网络的ACR通过Azure Logic Apps访问Blob存储遇403失败

排查Azure容器注册表(ACR)虚拟网络配置导致Blob存储403授权失败问题

问题场景

已配置ACR使用虚拟网络私有访问,存储账户仅允许该虚拟网络访问,但部署的容器组运行时访问Blob存储返回403 AuthorizationFailure,将存储账户开放至所有网络后恢复正常,怀疑ACR未正确接入虚拟网络。


排查与修复步骤

1. 验证ACR的虚拟网络端点配置

  • 确认ACR已启用专用端点并关联到目标虚拟网络的子网,且端点状态为「已批准」。
  • 检查子网是否禁用了Network Policy(该策略可能阻止专用端点流量),可通过Azure CLI验证:
    az network vnet subnet show --resource-group <资源组名称> --vnet-name <虚拟网络名称> --name <子网名称> --query "privateEndpointNetworkPolicies"
    
    若返回Enabled,需将其设为Disabled:
    az network vnet subnet update --resource-group <资源组名称> --vnet-name <虚拟网络名称> --name <子网名称> --disable-private-endpoint-network-policies true
    

2. 修正容器组的网络配置

当前容器组未指定虚拟网络接入,默认部署在公共网络,导致流量未经过目标虚拟网络。需在容器组配置中添加网络接入设置:

[
{
"name": "py-container-@{variables('Time')}",
"properties": {
"image": "filogixcontainerregistry.azurecr.io/my-python-app:latest",
"resources": {
"requests": {
"memoryInGB": 1.5,
"cpu": 1
},
"limits": {
"memoryInGB": 1.5,
"cpu": 1
}
},
"environmentVariables": [
{
"name": "AZURE_STORAGE_CONNECTION_STRING",
"value": @{parameters('connection_string')}
},
{
"name": "BLOB_PATH",
"value": @{variables('Path_name')}
}
],
"networkProfile": {
"id": "/subscriptions/<订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.Network/networkProfiles/<网络配置文件名称>"
}
}
}
]

若容器组支持直接VNet接入,也可替换为virtualNetwork字段指定子网ID,实现容器直接加入虚拟网络。

3. 校验存储账户的访问规则

  • 确认存储账户「网络」设置中,已将目标虚拟网络的子网添加至允许列表,未排除ACR专用端点所在子网。
  • 可选:为存储账户配置专用端点,确保Blob访问流量完全在虚拟网络内闭环。

4. 确认ACR镜像拉取权限

  • 检查容器组所用身份(服务主体/托管身份)是否拥有ACR的AcrPull角色权限。
  • 查看容器组日志,确认镜像拉取步骤无报错,避免因镜像拉取失败导致后续网络请求异常。

内容的提问来源于stack exchange,提问作者josh-hills

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:43:30