查询ResourceGroup、PeopleSearch下需访问Grafana的Azure AD组及对应角色
需求实现方案
该需求完全可以落地,你之前查询Microsoft Graph未得到结果,是因为需要同时联动Azure资源管理的RBAC接口和Azure托管Grafana的权限体系做交叉查询,具体操作如下:
1 拉取目标范围关联的Azure AD组
先导出所有和ResourceGroup、PeopleSearch资源绑定的Azure AD组,使用Azure CLI执行以下命令即可:
# 查询指定资源组下关联的所有AAD组及现有权限 az role assignment list --resource-group <你的资源组名称> --query "[?principalType=='Group'].{组名:principalName, 现有角色:roleDefinitionName, 组ID:principalId}" -o table # 若PeopleSearch为独立资源,替换资源范围查询即可 az role assignment list --scope <PeopleSearch对应的Azure资源ID> --query "[?principalType=='Group'].{组名:principalName, 现有角色:roleDefinitionName, 组ID:principalId}" -o table
2 匹配Grafana访问角色
根据导出的组的业务职责,匹配Azure托管Grafana的三类内置角色即可:
- Grafana Admin:仅分配给负责Grafana实例运维、权限配置的组,拥有实例全权限
- Grafana Editor:分配给ResourceGroup、PeopleSearch对应的开发、运维组,可编辑仪表盘、配置告警、管理数据源
- Grafana Viewer:分配给仅需要查看可观测数据的业务、测试组,仅有仪表盘只读权限
3 权限合理性校验
你可以按以下规则判断对应组是否需要Grafana权限:
只有当该组的现有业务职责需要访问ResourceGroup/PeopleSearch对应的监控、日志数据时,才授予对应Grafana角色,避免权限过度发放
如果需要批量自动化审计权限,可以直接调用Azure ARM接口拉取权限分配数据,结合内部的权限矩阵做自动匹配即可。
内容的提问来源于stack exchange,提问作者jtvdw
相关产品推荐
相关产品推荐

