如何查询Azure用户最近访问服务记录及权限对应信息,类似AWS IAM Access Advisor
Azure对应功能实现方案
需求1:用户最近访问的服务列表(含已访问、有权限未使用两类清单)
可通过**Entra 权限管理(原Azure AD权限管理)**的权限使用分析功能直接实现:
- 该功能会自动拉取指定用户所有RBAC角色分配覆盖的Azure服务全量清单
- 支持自定义时间范围(默认90天,最长可调整为1年),自动标记该时间范围内有操作痕迹的服务,未标记的即为有权限但尚未使用的服务,可直接导出完整清单
- 若未启用Entra权限管理,也可通过Azure资源图查询用户所有角色分配的服务范围,再匹配活动日志的历史操作记录,手动比对生成对应清单,示例Azure资源图查询语句如下:
// 查询指定用户的所有角色分配覆盖的资源类型 authorizationresources | where type == "microsoft.authorization/roleassignments" | where properties.principalId == "<用户Object ID>" | extend roleDefinitionId = tolower(properties.roleDefinitionId) | join kind=inner ( authorizationresources | where type == "microsoft.authorization/roledefinitions" | extend id = tolower(id) | project roleDefinitionId = id, allowedActions = properties.permissions[0].actions ) on roleDefinitionId | mv-expand allowedActions | extend serviceNamespace = split(allowedActions, '/')[0] | distinct serviceNamespace
需求2:用户服务访问明细数据
通过Azure活动日志+Log Analytics工作区即可实现:
- 提前将Azure活动日志导出到Log Analytics工作区后,可存储最长2年的全量操作记录,覆盖所有读、写、更新及各服务专属操作类型
- 按用户维度筛选后,可直接聚合生成每个用户访问过的所有服务清单、各服务的最近一次访问时间,也可导出全量明细包含操作类型、操作结果、源IP等字段
- 若需要覆盖门户登录、API调用等全局操作,可同步搭配Entra ID登录日志、审计日志的数据做补充
注:你之前使用的Azure Access Advisor(现Azure Advisor安全模块)本身定位为通用最佳实践推荐工具,未内置细粒度的用户权限与操作关联分析能力;默认审计日志仅保留90天且未和权限分配数据做关联,因此无法直接满足需求,按上述方案配置后即可实现与AWS IAM Access Advisor等效的能力。
内容的提问来源于stack exchange,提问作者Hitesh Garg
相关产品推荐
相关产品推荐

