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

更新时间:
复制为 MD 格式

当您使用资源组对资源进行分组管理时,可以结合访问控制(RAM),在单个阿里云账号内实现资源的隔离和精细化权限管理。本文总结了计算巢对资源组的支持情况,以及资源组级别的授权操作步骤。

说明
  • 只有支持资源组的资源类型和支持资源组级别授权的操作,资源组级别授权才能生效。

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

资源组授权的工作原理

您可以使用资源组(Resource Group)对阿里云账号内的资源进行分组管理。例如,为不同的项目创建对应的资源组,并将资源转移到对应的组中,以便集中管理各项目的资源。更多信息,请参见什么是资源组

在完成资源分组后,您可以为不同的RAM授权主体(RAM用户、RAM用户组或RAM角色)授予指定资源组范围的权限,从而限定这个授权主体只能管理该资源组内的资源。更多信息,请参见资源分组和授权

这种授权方式的优点有:

  • 权限精细化:确保每个身份能获得最准确的资源访问权限,避免账号下的多个项目的资源混合管理。

  • 良好的扩展性:后续新增资源时,只需将其加入该资源组,RAM身份便会自动获得新资源的相应权限,无需再次授权。

RAM用户授予资源组级别的权限

下面以RAM用户为例,介绍授予指定资源组内计算巢资源权限的操作步骤。

1. 前置步骤

  1. 创建待使用的RAM用户,可参考:创建RAM用户

  2. 创建资源组并将已有资源划分到目标资源组,可参考:创建资源组资源自动转组资源手动转组

2. 进行资源组级别授权

您可以通过以下任一方式进行资源组级别授权。

方式一:在资源管理控制台中授权

通过资源组的权限管理功能为指定 RAM 用户授权。详情操作可参见RAM身份授予资源组范围的权限

  • 登录资源组控制台

  • 在资源组页面,单击目标资源组操作列的权限管理

  • 权限管理页签,单击新增授权

  • 新增授权面板,设置授权主体和权限策略。

    • 授权主体:选择已有RAM用户。

    • 权限策略:选择系统策略或已创建的自定义策略,参考创建自定义权限策略

  • 单击确认新增授权

方式二:在 RAM 控制台中授权

通过RAM控制台为指定 RAM 用户进行资源组级别授权。详细操作可参见RAM用户授权

  • 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  • 在左侧导航栏,选择身份管理 > 用户用户页面,单击目标RAM用户操作列的添加权限

  • 新增授权面板,为RAM用户添加权限。

    • 资源范围:选择资源组级别

    • 授权主体:选择已有 RAM 用户或前面步骤创建的 RAM 用户。

    • 权限策略:选择系统策略或已创建的自定义策略,参考创建自定义权限策略

  • 单击确认新增授权

支持资源组的资源类型

计算巢支持资源组的资源类型如下表所示:

云服务

云服务代码

资源类型

计算巢

computenest

artifact : 部署物

计算巢

computenest

service : 服务

计算巢

computenest

serviceinstance : 服务实例

说明

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

image

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

计算巢中不支持资源组级别授权的操作(Action)如下:

操作(Action)

操作描述

computenest:CreateRestoreTask

创建恢复任务。

computenest:DeleteBackup

删除计算巢实例备份。

computenest:GetBackup

获取备份详情。

computenest:GetNetworkAvailableRegions

-

computenest:GetNetworkAvailableZones

根据指定的地域获取可用区列表。

computenest:GetServiceEndpointServiceInfo

-

computenest:GetServiceUsageSchema

-

computenest:GetUserInformation

调用GetUserInformation查询用户相关信息。

computenest:GetVirtualInternetEndpoint

-

computenest:ListBackups

列表查询计算巢实例备份。

computenest:ListPolicies

用户查询权限列表接口。

computenest:ListRestoreTasks

列表查询恢复任务。

computenest:ListServiceCategories

查询服务类别

computenest:ListServiceUsages

查看用户自己当前的服务使用申请。

computenest:ListServices

查询当前服务信息。

computenest:ListTagKeys

查询已有标签键信息。

computenest:ListTagValues

查询标签键对应的标签值。

computenest:SendOperationMessage

-

computenest:UpdateUserInformation

调用UpdateUserInformation更新用户信息。

computenest:ValidateServiceInstanceName

校验服务实例名称

computenestsupplier:CancelServiceRegistration

取消服务审核申请

computenestsupplier:DeleteAcrImageRepositories

删除Acr镜像仓库

computenestsupplier:DeleteAcrImageTags

删除Acr容器镜像版本

computenestsupplier:DeleteServiceTestCase

删除服务测试用例

computenestsupplier:DeleteVirtualInternetService

-

computenestsupplier:GenerateServiceParameterMapping

-

computenestsupplier:GetArtifactRepositoryCredentials

获取部署物上传所需的凭证

computenestsupplier:GetDingTalkAppSecurityRisk

-

computenestsupplier:GetDingTalkAppSlsSetting

-

computenestsupplier:GetHelmChartParameters

-

computenestsupplier:GetNetworkAvailableZones

根据地域参数获取地域可用区列表

computenestsupplier:GetNetworkSupportFunction

-

computenestsupplier:GetOpsNotice

查看运维公告详情

computenestsupplier:GetServiceElasticStrength

-

computenestsupplier:GetServiceRegistration

获取服务审核申请详情。

computenestsupplier:GetServiceTestTask

当选择了不同的服务测试用例创建好服务测试任务后,可通过此API获取服务测试任务中每个用例执行的详细情况

computenestsupplier:GetSupplierInformation

获取服务商信息

computenestsupplier:GetUploadCredentials

获取上传文件的访问密钥。

computenestsupplier:GetVirtualInternetEndpoint

-

computenestsupplier:GetVirtualInternetService

-

computenestsupplier:ListAcrImageRepositories

调用ListAcrImageRepositories查看已上传至ACR的镜像列表。

computenestsupplier:ListAcrImageTags

调用ListAcrImageTags查看镜像仓库中已上传的镜像版本

computenestsupplier:ListBillCodeMappings

-

computenestsupplier:ListOpsNotices

调用ListOpsNotices查询服务商发布过的运维公告。

computenestsupplier:ListPocQuotaUsedDetails

-

computenestsupplier:ListResellers

查询分销商用于前端展示

computenestsupplier:ListServiceInstanceDeployDetails

查询服务实例部署详情列表

computenestsupplier:ListServiceRegistrations

查询服务审核申请

computenestsupplier:ListServiceTemplates

-

computenestsupplier:ListServiceTestCases

列表查询当前服务版本下的服务测试用例集合。

computenestsupplier:ListServiceTestTaskLogs

获取服务测试实时日志

computenestsupplier:ListServiceTestTasks

调用ListServiceTestTasks查询服务模板测试信息

computenestsupplier:ListServiceUsages

查看用户自己当前的服务使用申请。

computenestsupplier:ListSupplierRegistrations

查看服务商已经提交的入驻申请

computenestsupplier:ListTagKeys

查询已有标签键信息。

computenestsupplier:ListTagValues

查询标签键对应的标签值。

computenestsupplier:ListTemplateArtifactRelationMarks

-

computenestsupplier:ListTemplateImages

-

computenestsupplier:ListVirtualInternetEndpoints

-

computenestsupplier:ListVirtualInternetServiceExecutionDetails

-

computenestsupplier:ListVirtualInternetServices

-

computenestsupplier:UpdateServiceTestCase

修改服务测试用例

computenestsupplier:UpdateSupplierInformation

调用UpdateSupplierInformation更新服务商信息。

computenestsupplier:UpdateVirtualInternetService

-

computenestsupplier:ValidateTemplate

-

对于不支持资源组授权的操作,授权时资源范围选择资源组级别将无效。如果仍需要RAM用户有上述操作权限,您需要创建自定义权限策略,授权时资源范围选择账号级别

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

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

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "computenest:GetBackup",
            "computenest:GetNetworkAvailableRegions",
            "computenest:GetNetworkAvailableZones",
            "computenest:GetServiceEndpointServiceInfo",
            "computenest:GetServiceUsageSchema",
            "computenest:GetUserInformation",
            "computenest:GetVirtualInternetEndpoint",
            "computenest:ListBackups",
            "computenest:ListPolicies",
            "computenest:ListRestoreTasks",
            "computenest:ListServiceCategories",
            "computenest:ListServiceUsages",
            "computenest:ListServices",
            "computenest:ListTagKeys",
            "computenest:ListTagValues",
            "computenestsupplier:GetArtifactRepositoryCredentials",
            "computenestsupplier:GetDingTalkAppSecurityRisk",
            "computenestsupplier:GetDingTalkAppSlsSetting",
            "computenestsupplier:GetHelmChartParameters",
            "computenestsupplier:GetNetworkAvailableZones",
            "computenestsupplier:GetNetworkSupportFunction",
            "computenestsupplier:GetOpsNotice",
            "computenestsupplier:GetServiceElasticStrength",
            "computenestsupplier:GetServiceRegistration",
            "computenestsupplier:GetServiceTestTask",
            "computenestsupplier:GetSupplierInformation",
            "computenestsupplier:GetUploadCredentials",
            "computenestsupplier:GetVirtualInternetEndpoint",
            "computenestsupplier:GetVirtualInternetService",
            "computenestsupplier:ListAcrImageRepositories",
            "computenestsupplier:ListAcrImageTags",
            "computenestsupplier:ListBillCodeMappings",
            "computenestsupplier:ListOpsNotices",
            "computenestsupplier:ListPocQuotaUsedDetails",
            "computenestsupplier:ListResellers",
            "computenestsupplier:ListServiceInstanceDeployDetails",
            "computenestsupplier:ListServiceRegistrations",
            "computenestsupplier:ListServiceTemplates",
            "computenestsupplier:ListServiceTestCases",
            "computenestsupplier:ListServiceTestTaskLogs",
            "computenestsupplier:ListServiceTestTasks",
            "computenestsupplier:ListServiceUsages",
            "computenestsupplier:ListSupplierRegistrations",
            "computenestsupplier:ListTagKeys",
            "computenestsupplier:ListTagValues",
            "computenestsupplier:ListTemplateArtifactRelationMarks",
            "computenestsupplier:ListTemplateImages",
            "computenestsupplier:ListVirtualInternetEndpoints",
            "computenestsupplier:ListVirtualInternetServiceExecutionDetails",
            "computenestsupplier:ListVirtualInternetServices"
          ],
          "Resource": "*"
        }
      ]
    }
    
  • 允许不支持资源组级别授权的全部操作:Action中列举不支持资源组级别授权的全部操作。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "computenest:CreateRestoreTask",
            "computenest:DeleteBackup",
            "computenest:GetBackup",
            "computenest:GetNetworkAvailableRegions",
            "computenest:GetNetworkAvailableZones",
            "computenest:GetServiceEndpointServiceInfo",
            "computenest:GetServiceUsageSchema",
            "computenest:GetUserInformation",
            "computenest:GetVirtualInternetEndpoint",
            "computenest:ListBackups",
            "computenest:ListPolicies",
            "computenest:ListRestoreTasks",
            "computenest:ListServiceCategories",
            "computenest:ListServiceUsages",
            "computenest:ListServices",
            "computenest:ListTagKeys",
            "computenest:ListTagValues",
            "computenest:SendOperationMessage",
            "computenest:UpdateUserInformation",
            "computenest:ValidateServiceInstanceName",
            "computenestsupplier:CancelServiceRegistration",
            "computenestsupplier:DeleteAcrImageRepositories",
            "computenestsupplier:DeleteAcrImageTags",
            "computenestsupplier:DeleteServiceTestCase",
            "computenestsupplier:DeleteVirtualInternetService",
            "computenestsupplier:GenerateServiceParameterMapping",
            "computenestsupplier:GetArtifactRepositoryCredentials",
            "computenestsupplier:GetDingTalkAppSecurityRisk",
            "computenestsupplier:GetDingTalkAppSlsSetting",
            "computenestsupplier:GetHelmChartParameters",
            "computenestsupplier:GetNetworkAvailableZones",
            "computenestsupplier:GetNetworkSupportFunction",
            "computenestsupplier:GetOpsNotice",
            "computenestsupplier:GetServiceElasticStrength",
            "computenestsupplier:GetServiceRegistration",
            "computenestsupplier:GetServiceTestTask",
            "computenestsupplier:GetSupplierInformation",
            "computenestsupplier:GetUploadCredentials",
            "computenestsupplier:GetVirtualInternetEndpoint",
            "computenestsupplier:GetVirtualInternetService",
            "computenestsupplier:ListAcrImageRepositories",
            "computenestsupplier:ListAcrImageTags",
            "computenestsupplier:ListBillCodeMappings",
            "computenestsupplier:ListOpsNotices",
            "computenestsupplier:ListPocQuotaUsedDetails",
            "computenestsupplier:ListResellers",
            "computenestsupplier:ListServiceInstanceDeployDetails",
            "computenestsupplier:ListServiceRegistrations",
            "computenestsupplier:ListServiceTemplates",
            "computenestsupplier:ListServiceTestCases",
            "computenestsupplier:ListServiceTestTaskLogs",
            "computenestsupplier:ListServiceTestTasks",
            "computenestsupplier:ListServiceUsages",
            "computenestsupplier:ListSupplierRegistrations",
            "computenestsupplier:ListTagKeys",
            "computenestsupplier:ListTagValues",
            "computenestsupplier:ListTemplateArtifactRelationMarks",
            "computenestsupplier:ListTemplateImages",
            "computenestsupplier:ListVirtualInternetEndpoints",
            "computenestsupplier:ListVirtualInternetServiceExecutionDetails",
            "computenestsupplier:ListVirtualInternetServices",
            "computenestsupplier:UpdateServiceTestCase",
            "computenestsupplier:UpdateSupplierInformation",
            "computenestsupplier:UpdateVirtualInternetService",
            "computenestsupplier:ValidateTemplate"
          ],
          "Resource": "*"
        }
      ]
    }
    
重要

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

常见问题

如何查看当前资源属于哪个资源组?

  • 方式一:单击资源名称,进入资源的详情页面,即可查看到当前资源的资源组。

  • 方式二:登录资源管理控制台,单击资源中心 > 资源搜索,在左侧选择目标资源所属账号(默认为当前账号),通过筛选条件定位目标资源,即可查看其所属资源组。

如何查看当前产品在某个资源组下的所有资源?

  • 方式一:登录资源管理控制台,单击资源中心 > 资源搜索,然后在左侧的资源所属账号(默认为当前账号)下选择单击目标资源组名称,最后在右侧的选择资源类型中选择当前产品,即可查看当前产品在某个资源组下的所有资源。

  • 方式二:登录资源管理控制台,单击资源组 > 资源组,然后找到目标资源组,单击其所在行的操作列下的资源管理,最后在资源管理页面上方的产品下拉框中选择当前产品,即可查看当前产品在某个资源组下的所有资源。

如何批量修改多个资源的资源组?

登录资源管理控制台,单击资源组 > 资源组,在目标资源组所在行的操作列下,单击资源管理以进入资源管理页面。通过筛选条件定位多个目标资源,批量勾选第一列的复选框后单击下方转移资源组,并按页面提示完成资源组修改。