如何获取Azure租户订阅/资源组IAM角色分配并导出至单CSV?
导出Azure租户全订阅+资源组IAM角色分配至单个CSV并排查直接授权用户
针对你的需求,我调整了PowerShell脚本,实现一次性导出租户下所有订阅及资源组的IAM角色分配到单个CSV文件,同时方便后续排查未通过组获取权限的用户:
# 连接Azure账号 Connect-AzAccount # 初始化空数组存储所有角色分配 $allRoleAssignments = @() # 获取租户下所有订阅 $subscriptions = Get-AzSubscription foreach ($subscription in $subscriptions) { # 切换到当前订阅上下文 Set-AzContext -SubscriptionId $subscription.Id | Out-Null # -------------------------- # 收集订阅级别的角色分配 # -------------------------- $subRoleAssignments = Get-AzRoleAssignment -Scope "/subscriptions/$($subscription.Id)" foreach ($assignment in $subRoleAssignments) { $allRoleAssignments += [PSCustomObject]@{ ScopeType = "订阅" ScopeName = $subscription.Name SubscriptionId = $subscription.Id ResourceGroupName = $null RoleDefinitionName = $assignment.RoleDefinitionName ObjectType = $assignment.ObjectType ObjectId = $assignment.ObjectId DisplayName = $assignment.DisplayName SignInName = $assignment.SignInName Scope = $assignment.Scope } } # -------------------------- # 收集资源组级别的角色分配 # -------------------------- $resourceGroups = Get-AzResourceGroup foreach ($rg in $resourceGroups) { $rgRoleAssignments = Get-AzRoleAssignment -Scope $rg.ResourceId foreach ($assignment in $rgRoleAssignments) { $allRoleAssignments += [PSCustomObject]@{ ScopeType = "资源组" ScopeName = $rg.ResourceGroupName SubscriptionId = $subscription.Id ResourceGroupName = $rg.ResourceGroupName RoleDefinitionName = $assignment.RoleDefinitionName ObjectType = $assignment.ObjectType ObjectId = $assignment.ObjectId DisplayName = $assignment.DisplayName SignInName = $assignment.SignInName Scope = $assignment.Scope } } } } # 导出所有角色分配到单个CSV文件 $outputPath = "C:\path\to\your\folder\AllRoleAssignments.csv" $allRoleAssignments | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8 Write-Host "导出完成,文件路径:$outputPath"
关键说明:
- 层级区分:新增
ScopeType和ScopeName字段,明确标记权限分配的层级(订阅/资源组),方便后续定位排查 - 合并导出:所有订阅和资源组的角色分配统一收集到数组,最终导出为单个CSV,省去手动合并的步骤
- 编码优化:添加
-Encoding UTF8参数,避免中文内容显示乱码
排查未通过组授权的用户:
打开导出的CSV文件,筛选ObjectType列为User的行,这些就是直接被分配角色的用户(而非通过组继承权限),可重点检查这类条目是否符合权限管控规范。
内容的提问来源于stack exchange,提问作者Jandre vd Merwe
相关产品推荐
相关产品推荐

