如何获取Azure订阅下Application Insights实例的访问权限人员报表?
是否支持导出Azure订阅下所有Application Insights实例的访问权限人员报表
完全支持,目前有两种常用的实现方式,分别适配无代码操作和自定义批量导出的需求:
方法1:Azure门户图形化导出(适合临时查询、无代码基础的场景)
- 登录Azure门户后,进入你需要查询的目标订阅详情页,点击左侧菜单的「访问控制(IAM)」
- 切换到「角色分配」标签页,点击页面顶部的「添加过滤器」,设置筛选条件:资源类型 = Application Insights
- 筛选完成后,列表会展示当前订阅下所有Application Insights实例的权限条目,包括实例直接分配的权限,以及从订阅、资源组继承的上层权限
- 若只需要查看直接分配给实例的权限,可以再加一层筛选条件:分配类型 = 显式,过滤掉继承的权限条目
- 确认列表内容符合需求后,点击页面顶部的「下载」按钮,即可直接导出为CSV格式的报表,报表包含权限主体名称、邮箱、角色、对应实例名称、权限范围等核心信息
注意:执行该操作的账号需要至少具备订阅级的读者权限,才能拉取所有Application Insights实例的权限数据。
方法2:Azure PowerShell脚本导出(适合自定义字段、定期导出的场景)
如果需要自定义报表字段,或者要定期执行导出任务,可以用PowerShell脚本实现:
- 首先打开已安装Az模块的PowerShell终端,执行如下脚本,执行前替换脚本中的租户ID、订阅ID为你实际的资源信息:
# 未登录Azure的话先执行连接命令 Connect-AzAccount -Tenant "替换为你的租户ID" # 切换到目标订阅 $subscriptionId = "替换为你的目标订阅ID" Set-AzContext -SubscriptionId $subscriptionId # 获取当前订阅下所有Application Insights资源 $allAiInstances = Get-AzResource -ResourceType "Microsoft.Insights/components" $permissionReport = @() # 遍历每个实例拉取权限 foreach ($instance in $allAiInstances) { $roleAssignments = Get-AzRoleAssignment -Scope $instance.Id foreach ($assignment in $roleAssignments) { $permissionReport += [PSCustomObject]@{ 实例名称 = $instance.Name 所属资源组 = $instance.ResourceGroupName 权限主体名称 = $assignment.DisplayName 主体类型 = $assignment.ObjectType 分配角色 = $assignment.RoleDefinitionName 权限分配范围 = $assignment.Scope } } } # 导出到本地CSV文件 $permissionReport | Export-Csv -Path "./ApplicationInsights权限报表.csv" -Encoding UTF8 -NoTypeInformation
- 脚本执行完成后,会在当前运行目录生成对应的CSV报表文件,你可以根据自己的需求调整脚本里的自定义字段。
补充说明
- 要是只需要导出用户类型的权限,不需要服务主体、安全组的权限,可以在导出前增加过滤条件,只保留
主体类型 = User的条目即可。 - 如果要导出多个订阅的数据,只需要在脚本外层加一层订阅遍历的逻辑即可。
内容的提问来源于stack exchange,提问作者Suri007
相关产品推荐
相关产品推荐

