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

导出Azure/Defender/订阅/Exchange角色成员,寻求Azure/M365权限对比方案

对比Azure/M365用户角色权限的实操方案

针对你要对比Azure、Exchange Online(EOL)、Defender及订阅/租户级用户权限的需求,给你一套分步落地的方案:

一、先明确覆盖范围

别漏了这三个核心层级:

  • 租户级:Azure AD、M365租户根权限
  • 服务级:Exchange Online、Defender各模块、Azure资源服务专属权限
  • 订阅级:Azure订阅内的RBAC权限

二、各模块权限采集方法

1. Azure AD & M365 租户/服务角色

用PowerShell批量导出所有用户的角色分配,方便后续对比:

# 导出Azure AD所有用户的角色(含自定义角色)
Get-AzureADUser | ForEach-Object {
    $user = $_
    Get-AzureADUserMembership -ObjectId $user.ObjectId | Where-Object {$_.ObjectType -eq "Role"} | Select-Object DisplayName, RoleTemplateId, @{Name="UserName"; Expression={$user.UserPrincipalName}}
} | Export-Csv -Path "AzureAD_Roles.csv" -NoTypeInformation

# 导出M365服务角色(比如Exchange、SharePoint管理员)
Get-MsolUser | ForEach-Object {
    $user = $_
    Get-MsolUserRole -UserPrincipalName $user.UserPrincipalName | Select-Object RoleName, @{Name="UserName"; Expression={$user.UserPrincipalName}}
} | Export-Csv -Path "M365_Service_Roles.csv" -NoTypeInformation

重点盯:全局管理员、Exchange管理员、Security管理员这类跨服务高权限角色,以及自定义角色的权限范围。

2. Exchange Online(EOL)权限

除了M365的角色,还要单独抓邮箱级、组织级的细粒度权限:

# 导出用户对其他邮箱的权限
Get-EXOMailboxPermission -ResultSize Unlimited | Where-Object {$_.IsInherited -eq $false -and $_.User -notlike "*NT AUTHORITY\SELF*"} | Select-Object Identity, User, AccessRights

# 导出Exchange管理角色分配
Get-ManagementRoleAssignment -ResultSize Unlimited | Where-Object {$_.AssigneeType -eq "User"} | Select-Object AssigneeName, RoleName, ScopeName

对比维度:组织管理、收件人管理这类核心角色,以及用户对他人邮箱的读写/完全访问权限。

3. Microsoft Defender权限

覆盖Defender for Cloud、Defender for Office 365等模块的角色:

# 导出Defender for Cloud RBAC角色
Get-AzRoleAssignment | Where-Object {$_.RoleDefinitionName -match "Defender|Security"} | Select-Object SignInName, RoleDefinitionName, Scope

# 导出Defender for Office 365角色组成员
Get-RoleGroupMember -Identity "Security Reader" | Select-Object Name, PrimarySmtpAddress
Get-RoleGroupMember -Identity "Security Administrator" | Select-Object Name, PrimarySmtpAddress

注意区分:Security Reader(只读)、Security Administrator(全管理)、Defender for Cloud Contributor这类角色的权限边界。

4. Azure订阅级RBAC权限

跨所有订阅批量采集用户权限:

Get-AzSubscription | ForEach-Object {
    Select-AzSubscription -SubscriptionId $_.SubscriptionId
    Get-AzRoleAssignment | Where-Object {$_.SignInName -ne $null} | Select-Object SignInName, RoleDefinitionName, Scope, @{Name="Subscription"; Expression={$_.Name}}
} | Export-Csv -Path "Azure_Subscription_Roles.csv" -NoTypeInformation

对比维度:订阅所有者、参与者、读者,以及自定义RBAC角色的权限范围。

三、对比分析实操步骤

  1. 把所有CSV文件导入Excel或Power BI,按用户的UserPrincipalName分组,汇总每个用户的所有角色和权限。
  2. 标记跨模块的重叠权限(比如全局管理员默认拥有Exchange、Defender的最高权限)。
  3. 排查权限过度分配(比如普通用户被误加为Security Administrator)。
  4. 补全PIM相关权限:用Get-AzureADMSPrivilegedRoleAssignment导出用户可激活的临时权限,这部分也是权限范围的关键。

四、遗漏点排查

  • 别漏了服务细粒度权限:比如Exchange的邮箱发送权限、Defender的威胁狩猎权限、Azure资源组级自定义权限。
  • 检查来宾用户的权限:用Get-AzureADGuestUser配合角色采集命令,避免外部用户权限被忽略。
  • 确认PIM激活历史:查看用户临时提权的记录,这部分也是实际权限的一部分。

内容的提问来源于stack exchange,提问作者DuhMan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:57:06