【最佳实践】如何授权子账号查看某一个Bucket的运维监控数据?

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 通过RAM Policy 授权子账号登录控制台查看指定Bucket的云监控信息,包括概要信息、热点文件统计、API统计等

一、如何在控制台上查看Bucket的运维监控信息?

  1. 方式一:通过根账号登录OSS控制台进行访问

    1. 通过阿里云根账号登录OSS控制台能够查看到所有Bucket的运维监控信息。但是在企业的实际运行过程中,直接使用根账号进行操作,安全风险极大。并且该方式查看到的是所有Bucket的信息,无法精确到指定的Bucket信息;
  2. 方式二:通过RAM 授权子账号在控制台查看

    1. 由于查看OSS的监控信息,需要获取云监控相关的授权。我们采用RAM提供的默认授权。给针对的子账号授予如下RAM默认授权:

      1. “只读访问云监控的权限”;
      2. AliyunOSSFullAccess;
    2. 使用该方式授权后,可以允许子账号登录控制台查看Bucket的授权信息,而且避免了使用根账号授权过大的风险。但是该授权方式也存在漏洞,就是该子账号能够查看所有Bucket的监控信息。

那么如何授权子账号在控制台上查看指定Bucket的监控信息(包括概览、基础数据、热点统计、API统计、文件访问统计)?
由于当前云监控(CloudMonitor)不支持细颗粒度资源描述,只支持*通配。因此我们要针对RAM提供的默认“只读访问云监控的授权”进行改造。想起RAM policy配置操作如下:

二、RAM Policy配置操作

2.1前提准备

  • 创建1个子账号;
  • 创建对应的Bucket;

2.2通过RAM policy授权步骤如下:

  • 创建1个查看Bucket概要信息的RAM Policy:授权子账号能够查看Bucket的概要信息;
  • 创建1个云监控的RAM Policy:使之能够查看某个指定的Bucket监控信息;

2.3创建查看Bucket 的RAM Policy:

查看Bucket的概要信息以及监控信息需要获取“GetBucketInfo”的授权。此外登录控制台访问额外还需要'GetBucketACL'的授权。因此,我们创建1个RAM Policy(例如,名称为 GetBucketInfoPolicy)。如下示例中Bucket名称是“test-beijing-2019”:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:GetBucketAcl",
        "oss:GetBucketinfo"
      ],
      "Resource": [
        "acs:oss:*:*:test-beijing-2019"
      ],
      "Condition": {}
    }
  ]
}

2.4创建云监控的RAM Policy:

在控制台查看Bucket的监控信息(包括概览、基础数据、热点统计、API统计、文件访问统计),需要云监控相关授权。但是由于云监控需要ListBuckets权限,该授权能够允许查看所有的Bucket信息。因此,我们针对RAM 提供的默认云监控Policy进行改造。相关RAM Policy 如下:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "cms:Get*",
        "cms:List*",
        "cms:Query*",
        "cms:BatchQuery*"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ecs:DescribeInstances",
        "rds:DescribeDBInstances",
        "slb:DescribeLoadBalancer*",
        "vpc:DescribeEipAddresses",
        "vpc:DescribeRouterInterfaces",
        "vpc:DescribeGlobalAccelerationInstances",
        "vpc:DescribeVpnGateways",
        "vpc:DescribeNatGateways",
        "vpc:DescribeBandwidthPackages",
        "vpc:DescribeCommonBandwidthPackages",   
        "log:ListProject",
        "cdn:DescribeUserDomains",
        "mns:ListQueue",
        "mns:ListTopic",
        "ess:DescribeScalingGroups",
        "ocs:DescribeInstances",
        "kvstore:DescribeInstances",
        "hbase:DescribeClusterList",
        "hitsdb:DescribeHiTSDBInstanceList",
        "dds:DescribeDBInstances",
        "petadata:DescribeInstances",
        "petadata:DescribeDatabases",
        "gpdb:DescribeDBInstances",
        "emr:ListClusters",
        "opensearch:ListApps",
        "elasticsearch:ListInstance"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

如上RAM Policy,相比于RAM 提供的默认Policy: “AliyunCloudMonitorReadOnlyAccess”。我们取消了"oss:ListBuckets"授权操作。
PS:取消"oss:ListBuckets"的目的就是禁止云监控默认列出所有Bucket的监控信息。

2.5控制台查看效果

  1. 我们将如上2个RAM Policy授权给新建的子账号;
  2. 使用子账号登录控制台后,由于没有ListBuckets权限,所以控制台不会展示Bucket列表信息。因此需要我们在控制台的左上角“我的访问路径”中手工添加对应的Bucket名称。
  3. 添加Bucket名称后,刷新控制台后,我们就能够在控制台查看到指定Bucket的监控信息了;

image

图1:授权子账号登录控制台查看指定Bucket监控信息

【补充说明】:由于是修改了默认的云监控授权,因此子账号无法在“云监控”页面查看指定bucket的监控信息。
image

相关文章
|
7月前
|
机器学习/深度学习 运维 监控
别让运维只会“救火”——用数据点燃业务增长的引擎
别让运维只会“救火”——用数据点燃业务增长的引擎
267 12
|
8月前
|
机器学习/深度学习 存储 运维
数据别乱跑!聊聊智能运维如何减少数据丢失风险
数据别乱跑!聊聊智能运维如何减少数据丢失风险
208 4
|
10月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
9月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
740 0
|
10月前
|
SQL 存储 运维
别让运维数据“各过各的”:聊聊数据湖怎么搭,才能不成“沼泽”
别让运维数据“各过各的”:聊聊数据湖怎么搭,才能不成“沼泽”
344 0
|
8月前
|
运维 监控 机器人
别等出事才救火:实时监控数据才是运维的救命稻草
别等出事才救火:实时监控数据才是运维的救命稻草
244 8
|
10月前
|
运维 监控 关系型数据库
API天天出毛病?不如翻翻运维数据,真相都藏在这儿
API天天出毛病?不如翻翻运维数据,真相都藏在这儿
239 10
|
10月前
|
运维 监控 数据可视化
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
186 4
|
10月前
|
数据采集 运维 数据可视化
如何从“凭经验运维”到“用数据决策”?
在数字化转型加速的今天,企业网络已成为支撑业务运转的“数字血管”。传统依赖经验的运维模式已难适应需求,ManageEngine OpManager 以全链路数据能力,助力企业实现数据驱动的智能运维,提升资源利用率、优化网络性能,推动网络从“被动响应”迈向“主动预测”,为业务连续性与竞争力保驾护航。
199 0