如何实现Google Cloud Monitoring自定义仪表盘的精细化访问权限隔离?
Google Cloud Monitoring 仪表盘权限隔离解决方案
针对你遇到的细粒度仪表盘访问控制需求,可行的方案是利用Google Cloud文件夹层级隔离资源,配合自定义IAM角色实现权限拆分,具体步骤如下:
1. 用文件夹分组仪表盘
在Google Cloud资源管理器中创建两个独立文件夹(比如Dashboard-Group-1和Dashboard-Group-2):
- 将需要给第一位用户访问的3个仪表盘迁移到
Dashboard-Group-1 - 将剩余2个仪表盘迁移到
Dashboard-Group-2
迁移时注意:确保仪表盘关联的指标、告警等资源也在对应文件夹或其子资源范围内,否则可能出现数据加载失败的情况
2. 创建自定义只读角色
默认的Monitoring Viewer角色会授予项目级的全仪表盘访问权限,因此需要创建仅包含仪表盘查看权限的自定义角色:
- 进入IAM & Admin > 角色 > 创建角色
- 添加以下核心权限(满足仪表盘查看的最小权限集):
monitoring.dashboards.getmonitoring.dashboards.listmonitoring.timeSeries.list(用于加载仪表盘的指标数据)
- 命名为
Custom-Dashboard-Viewer
3. 为文件夹分配权限
- 进入
Dashboard-Group-1的IAM设置,将Custom-Dashboard-Viewer角色授予第一位用户 - 进入
Dashboard-Group-2的IAM设置,将Custom-Dashboard-Viewer角色授予第二位用户 - 务必移除用户在项目级别拥有的
Monitoring Viewer或其他包含仪表盘访问权限的角色,避免权限覆盖
4. 验证权限效果
分别用两位用户的账号登录控制台,进入Monitoring模块:
- 第一位用户仅能看到
Dashboard-Group-1下的3个仪表盘 - 第二位用户仅能看到
Dashboard-Group-2下的2个仪表盘
补充说明之前方法失败的原因
- 项目级IAM:权限是自上而下继承的,项目级角色会覆盖细粒度资源的权限,导致用户能访问所有仪表盘
- 直接分享仪表盘:当前Monitoring的分享功能依赖项目级权限,无法单独限制单个仪表盘的访问范围
- IAM条件+标签:目前Google Cloud Monitoring的IAM条件不支持以仪表盘标签作为过滤维度,因此该方案不可行
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

