Azure CLI的一次资源操作,通常先需要身份令牌,再访问Azure Resource Manager或具体服务端点。az login成功,只能说明身份交互或设备代码链路可用;查询虚拟机、上传Blob或登录容器仓库时,目标域名和权限都会变化。
一、Azure CLI常见网络链路
| 链路 | 用途 | 常见问题 |
|---|---|---|
| 身份端点 | 登录与令牌获取 | 代理、租户、条件访问 |
| ARM端点 | 资源管理控制面 | 区域、订阅、RBAC和超时 |
| 具体服务端点 | 存储、Key Vault、ACR等 | 防火墙、私有链接和DNS |
| 扩展下载 | 安装Azure CLI扩展 | 下载源、证书和重定向 |
二、代理变量在哪个环境中生效
Azure CLI可能在本地Shell、Cloud VM、CI Agent、WSL或容器中运行。代理和CA必须配置在真正执行az的进程环境。桌面浏览器能打开Azure Portal,并不能代表CLI继承了相同系统代理。
三、登录方式为何影响排查
交互登录、设备代码、服务主体和托管身份使用不同身份流程。企业条件访问还可能要求符合策略的交互环境。不要为了代理测试将生产服务主体密钥写入命令行;应使用最小权限测试身份,并记录租户与订阅但不输出令牌。
四、代理407与Azure权限错误怎么分开
- 407:网络代理认证;
- 401:令牌无效、过期或身份端点问题;
- 403/AuthorizationFailed:Azure RBAC、资源策略或防火墙;
- 证书错误:CA、域名、系统时间或TLS检查;
- 连接超时:DNS、代理、路由或服务端点。
五、az login成功为何资源查询仍失败
令牌端点和ARM端点不是同一主机。还可能登录了错误租户或选错订阅。先使用只读命令确认当前账号、租户和订阅,再查看实际失败的主机及状态码。不要用创建资源作为第一步网络验证。
六、Private Link如何改变网络路径
使用Private Endpoint后,服务公共域名可能经私有DNS解析到VNet地址。此时请求通常应走私网,而不是外部代理。是否加入NO_PROXY要基于实际私有DNS、执行位置和客户端匹配规则,且需确认代理绕过不会让公共服务意外直连。
七、托管身份为何要关注本地地址
在Azure计算环境中,托管身份可能访问链路本地元数据服务。此类地址不应发送到外部代理。应按平台说明和客户端支持配置精确绕过,并防止代理环境变量导致元数据请求超时或泄露路径信息。
八、证书问题从哪里处理
Azure CLI运行环境需要正确系统时间和CA。企业代理若进行受控TLS检查,应由管理员安全分发组织根证书。容器、WSL和CI镜像各有独立证书环境。不要将关闭证书验证作为长期参数。
证书分层排查可参考HTTPS代理TLS与SNI检查。
九、存储与大文件命令为何单独测试
存储数据面请求与ARM控制面不同,大文件还涉及分块、并发、超时和重试。控制面列出存储账号成功,并不能证明Blob上传路径稳定。应使用测试容器和最小权限执行小文件,再逐步增加规模。
十、日志和凭据怎样保护
- 不输出访问令牌、客户端密码和完整连接字符串;
- 代理密码使用CI秘密或受控配置;
- 调试日志共享前删除签名URL和资源敏感名称;
- 测试服务主体只赋予必要的只读权限;
- 轮换后结束旧CLI会话和自动化任务。
十一、排查顺序
- 记录Azure CLI版本、租户、订阅和目标服务;
- 确认执行环境的代理、NO_PROXY和CA;
- 使用最小权限完成身份验证;
- 分别测试身份、ARM与具体服务端点;
- 区分407、RBAC、服务防火墙与TLS;
- 核对Private Link DNS和实际路由;
- 清理临时凭据和调试输出。
十二、结论
Azure CLI代理排查应把身份、ARM控制面和服务数据面拆开。确认租户、订阅与Private Link路径后,再处理代理和证书,才能避免把网络问题误判为RBAC,或反过来。






