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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 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

相关实践学习
RocketMQ监控/告警一站式搭建应用
RocketMQ监控/告警一站式搭建演示
相关文章
|
4月前
|
弹性计算 运维 监控
|
4月前
|
云安全 弹性计算 运维
带你读《云上自动化运维宝典》——最佳实践分享:如何体系化提升ECS安全性(3)
带你读《云上自动化运维宝典》——最佳实践分享:如何体系化提升ECS安全性(3)
214 1
|
20天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的最佳实践
在现代云计算环境中,自动化运维成为保障系统稳定性与提升效率的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes容器编排工具构建一个高效、可靠的自动化运维体系。文中不仅介绍了相关的技术原理,还结合具体案例分析了实施过程中的常见问题及解决方案,为读者提供了一套行之有效的最佳实践指南。
|
4月前
|
弹性计算 运维 Linux
带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(3)
带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(3)
194 1
|
4月前
|
弹性计算 运维 安全
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(1)
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(1)
398 0
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(1)
|
4月前
|
运维 监控 安全
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(3)
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(3)
413 1
带你读《云上自动化运维宝典》——一文读懂云上大规模资源管理的最佳实践(3)
|
4月前
|
弹性计算 运维 安全
带你读《云上自动化运维宝典》——最佳实践分享:如何体系化提升ECS安全性(2)
带你读《云上自动化运维宝典》——最佳实践分享:如何体系化提升ECS安全性(2)
257 1
|
7月前
|
运维 监控 安全
深入了解Linux运维的重要性与最佳实践
深入了解Linux运维的重要性与最佳实践
|
11月前
|
运维
《跨国企业上云登陆区(Landing Zone)白皮书》——第八章 在阿里云构建云登录区(Landing Zone)最佳实践——运维管理(1)
《跨国企业上云登陆区(Landing Zone)白皮书》——第八章 在阿里云构建云登录区(Landing Zone)最佳实践——运维管理(1)
|
11月前
|
运维
《跨国企业上云登陆区(Landing Zone)白皮书》——第八章 在阿里云构建云登录区(Landing Zone)最佳实践——运维管理(2)
《跨国企业上云登陆区(Landing Zone)白皮书》——第八章 在阿里云构建云登录区(Landing Zone)最佳实践——运维管理(2)