使用服务主体执行az network dns zone export仅导出前100条记录的问题
Azure DNS Zone导出仅获取前100条记录(自定义IAM角色服务主体)
问题场景
使用Az Cli的az network dns zone export命令导出Azure DNS Zone配置时,出现权限相关的导出不完整问题:
- 分配了自定义IAM角色的服务主体登录后,仅能导出前100条记录
- 使用拥有订阅Owner权限的个人账号登录时,可正常导出全部575条记录
环境信息
- Azure订阅:My Subscription
- 目标DNS Zone:公共区域
mydnszone.com,包含575条区域记录 - 自定义IAM角色:My DNS Reader Role,已配置权限:
Microsoft.Network/dnsZones/readMicrosoft.Network/dnsZones/recordsets/read
- 服务主体:my_dns_reader,已被分配上述自定义角色,作用域为整个订阅
问题原因
Azure DNS的记录集查询接口默认采用分页机制,每页返回100条记录。自定义角色中仅配置read权限时,服务主体无法获取分页令牌以遍历后续页面的记录,导致只能导出第一页的100条数据。而Owner权限包含了完整的资源操作权限,自然支持分页遍历。
解决方法
- 编辑自定义IAM角色"My DNS Reader Role",添加权限
Microsoft.Network/dnsZones/recordsets/list/action - 保存角色配置后,等待权限生效(通常1-5分钟),或重新执行
az login刷新服务主体的权限会话 - 再次执行导出命令:
az network dns zone export -g <资源组名称> -n mydnszone.com -f dns-export.json
此时即可导出全部575条DNS记录。
验证
添加list/action权限后,服务主体可通过分页机制完整获取所有记录集,导出文件中将包含全部DNS配置。
内容的提问来源于stack exchange,提问作者mclayton
相关产品推荐
相关产品推荐

