使用资源组进行精细化资源控制

更新时间:2025-01-20 10:14:46

为了更加高效地管理对象存储(OSS)的资源,您可以使用资源组对资源进行分组管理。资源组使您能够按照部门、项目、环境等维度对资源进行分组,并结合访问控制(RAM),在单个阿里云账号内实现资源的隔离和精细化权限管理。本文为您介绍OSS对资源组的支持情况,以及如何对OSS的资源进行分组和资源组级别的授权操作。

基本概念

资源组

资源组(Resource Group)是在阿里云账号下进行资源分组管理的一种机制,能够有效解决单个阿里云账号内的资源分组、权限管理和成本分摊等复杂问题。例如,您可以为不同的项目创建对应的资源组,并将项目使用的资源转移到对应的组中,以便集中管理各项目的资源。更多信息,请参见什么是资源组资源组设计最佳实践

资源组级别授权

在完成资源分组后,您可以使用RAMRAM授权主体(RAM用户、RAM用户组或RAM角色)授予指定资源组范围的权限,从而限制其可管理的资源范围仅为指定资源组内的资源。这种授权方式具有良好的扩展性,后续新增资源时,只需将资源加入相应的资源组,无需修改权限策略。更多信息,请参见资源分组和授权

资源组级别授权的操作步骤

以下以授予RAM用户在指定资源组内管理OSS资源的权限为例,为您介绍资源组级别授权的操作步骤。

  1. RAM控制台,创建RAM用户。

    具体操作,请参见创建RAM用户

  2. 资源组控制台,创建资源组。

    具体操作,请参见创建资源组

  3. 资源划分到对应资源组。

    • 新创建的资源:在创建资源时,指定其所属的资源组。

    • 现有资源:将现有资源转移到对应的资源组。具体操作,请参见资源手动转组

  4. RAM控制台,创建自定义权限策略。

    创建自定义权限策略,将RAM用户所需的操作权限包含在内。具体操作,请参见创建自定义权限策略。如果您选择为RAM用户授予系统权限策略,可跳过此步骤。

    重要

    在实际业务环境中,建议您遵循最小授权原则,仅授予RAM用户所需的最少权限,以避免权限过大带来的安全风险。

    自定义权限策略示例:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
              "oss:GetObject",
              "oss:PutObject",
          ],
          "Resource": "*"
        }
      ]
    }
  5. RAM用户授予指定资源组范围的权限。

    以下两种授权方法您可以任选其一:

重要

只有支持资源组的资源类型,资源组级别授权才能生效。对于不支持资源组的资源类型,授予资源组范围的权限将无效,在选择资源范围时,请选择账号级别,进行账号级别授权。具体操作,请参见不支持资源组级别授权的操作

支持资源组的资源类型

OSS中部分资源类型支持资源组,支持的资源类型如下表所示。

云服务

云服务代码

资源类型

云服务

云服务代码

资源类型

对象存储OSS

oss

bucket:存储空间

说明

对于暂不支持资源组的资源类型,如有需要,您可以提交工单反馈。

不支持资源组级别授权的操作

OSS中不支持资源组级别授权的操作(Action)及对应 API 如下表所示。

操作(Action)

API

API 描述

操作(Action)

API

API 描述

oss:DescribeRegions

DescribeRegions

查询所有支持地域或者指定地域对应的Endpoint信息

oss:ListUserDataRedundancyTransition

ListUserDataRedundancyTransition

列举请求者所有的存储冗余转换任务

oss:PutPublicAccessBlock

PutPublicAccessBlock

OSS全局开启阻止公共访问

oss:GetPublicAccessBlock

GetPublicAccessBlock

获取OSS全局阻止公共访问的配置信息

oss:DeletePutblicAccessBlock

DeletePublicAccessBlock

删除OSS全局阻止公共访问的配置信息

oss:InitUserAntiDDosInfo

InitUserAntiDDosInfo

创建高防OSS实例

oss:UpdateUserAntiDDosInfo

UpdateUserAntiDDosInfo

更改高防OSS实例状态

oss:GetUserAntiDDosInfo

GetUserAntiDDosInfo

查询指定账号下的高防OSS实例信息

oss:InitBucketAntiDosInfo

InitBucketAntiDosInfo

初始化Bucket防护

oss:UpdateBucketAntiDDosInfo

UpdateBucketAntiDDosInfo

更新Bucket防护状态

oss:ListBucketAntiDDosInfo

ListBucketAntiDDosInfo

获取Bucket防护信息列表

oss:ListResourcePools

ListResourcePools

列举当前地域的资源池

oss:GetResourcePoolInfo

GetResourcePoolInfo

查询资源池信息

oss:ListResourcePoolBuckets

ListResourcePoolBuckets

列举资源池中的存储空间

oss:PutResourcePoolRequesterQoSInfo

PutResourcePoolRequesterQoSInfo

为资源池配置请求者流控配置信息

oss:GetResourcePoolRequesterQoSInfo

GetResourcePoolRequesterQoSInfo

查询资源池的请求者流控配置信息

oss:ListResourcePoolRequesterQoSInfos

ListResourcePoolRequesterQoSInfos

列举资源池的请求者流控配置信息

oss:DeleteResourcePoolRequesterQoSInfo

DeleteResourcePoolRequesterQoSInfo

删除资源池的请求者流控配置信息

关于 OSS 更详细的RAM授权信息,请参见通过RAM Policy授权访问OSS

对于不支持资源组的资源类型,授予资源组范围的权限将无效,您需要创建自定义权限策略,授权时资源范围选择账号级别

image.png以下为您提供两个自定义权限策略示例,您可以根据实际需要调整策略内容。

  • 允许不支持资源组级别授权的只读操作。Action中列举不支持资源组级别授权的所有只读操作。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:DescribeRegions",
            "oss:ListUserDataRedundancyTransition",
            "oss:GetPublicAccessBlock",
            "oss:GetUserAntiDDosInfo",
            "oss:ListBucketAntiDDosInfo",
            "oss:ListResourcePools",
            "oss:GetResourcePoolInfo",
            "oss:ListResourcePoolBuckets",
            "oss:GetResourcePoolRequesterQoSInfo",
            "oss:ListResourcePoolRequesterQoSInfos",
          ],
          "Resource": "*"
        }
      ]
    }
  • 允许不支持资源组级别授权的全部操作。Action中列举不支持资源组级别授权的全部操作。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:DescribeRegions",
            "oss:ListUserDataRedundancyTransition",
            "oss:PutPublicAccessBlock",
            "oss:GetPublicAccessBlock",
            "oss:DeletePutblicAccessBlock",
            "oss:InitUserAntiDDosInfo",
            "oss:UpdateUserAntiDDosInfo",
            "oss:GetUserAntiDDosInfo",
            "oss:InitBucketAntiDosInfo",
            "oss:UpdateBucketAntiDDosInfo",
            "oss:ListBucketAntiDDosInfo",
            "oss:ListResourcePools",
            "oss:GetResourcePoolInfo",
            "oss:ListResourcePoolBuckets",
            "oss:PutResourcePoolRequesterQoSInfo",
            "oss:GetResourcePoolRequesterQoSInfo",
            "oss:ListResourcePoolRequesterQoSInfos",
            "oss:DeleteResourcePoolRequesterQoSInfo",
          ],
          "Resource": "*"
        }
      ]
    }
重要

获得账号级别权限的RAM用户或RAM角色,能够操作整个账号范围内的相关资源。请务必确认所授予的权限是否符合预期,遵从最小授权原则谨慎分配权限。

  • 本页导读 (1)
  • 基本概念
  • 资源组
  • 资源组级别授权
  • 资源组级别授权的操作步骤
  • 支持资源组的资源类型
  • 不支持资源组级别授权的操作
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等