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

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

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

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

资源组授权的工作原理

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

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

这种授权方式的优点有:

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

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

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

下面以RAM用户为例,介绍授予指定资源组内文件存储NAS资源权限的操作步骤。

1. 前置步骤

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

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

2. 进行资源组级别授权

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

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

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

  • 登录资源组控制台

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

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

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

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

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

  • 单击确认新增授权

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

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

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

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

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

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

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

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

  • 单击确认新增授权

支持资源组的资源类型

文件存储NAS支持资源组的资源类型如下表所示:

云服务

云服务代码

资源类型

文件存储NAS

nas

filesystem : 文件系统

说明

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

image

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

文件存储NAS中不支持资源组级别授权的操作(Action)如下:

操作(Action)

操作描述

nas:AddClientToBlackList

CPFS服务中,将客户端加入黑名单,逐出其写入请求,起到IO Fence作用。

nas:AddTags

-

nas:ApplyAutoSnapshotPolicy

为一个或者多个文件系统应用自动快照策略。

nas:AttachVscMountPoint

-

nas:AttachVscToFilesystems

关联 VSC 设备到文件系统。

nas:BindStoragePackage

-

nas:CancelAutoSnapshotPolicy

取消一个或者多个文件系统的自动快照策略。

nas:CancelLifecycleRetrieveJob

取消任务状态为运行中(active)的一个数据取回任务。

nas:CancelRecycleBinJob

取消一个回收站中正在运行中的任务。

nas:ClientMount

-

nas:ClientRootAccess

-

nas:ClientWrite

-

nas:CreateAccessGroup

创建权限组。

nas:CreateAccessRule

创建权限组规则。

nas:CreateAutoSnapshotPolicy

创建一条自动快照策略。

nas:CreateFile

创建目录或者文件。

nas:CreateLDAPConfig

添加LDAP配置。

nas:CreateLogAnalysis

将通用型NAS文件系统日志转储到日志服务中。

nas:CreateMountTargetInternal

-

nas:CreateProtocolMountTarget

创建一个协议服务导出目录。

nas:CreateProtocolService

创建CPFS文件系统的协议服务,创建协议服务过程大约需要5~10分钟。

nas:CreateServicePolicy

-

nas:CreateSnapshot

创建一个快照。

nas:CreateVscMountPoint

-

nas:DeleteAccessGroup

删除已有的权限组。

nas:DeleteAccessRule

删除已创建的权限组规则。

nas:DeleteAutoSnapshotPolicy

删除一条自动快照策略。

nas:DeleteLDAPConfig

用于删除LDAP设置。

nas:DeleteLogAnalysis

停止通用型NAS文件系统的日志转储。

nas:DeleteMountTargetSpecial

-

nas:DeleteProtocolMountTarget

删除一个协议服务导出目录。

nas:DeleteProtocolService

删除CPFS文件系统的协议服务。

nas:DeleteSnapshot

删除指定的快照或取消正在创建的快照任务。

nas:DeleteVscMountPoint

-

nas:DemoCloneTest

-

nas:DescribeAccessGroups

查询权限组信息。

nas:DescribeAccessRules

查询权限规则描述。

nas:DescribeAutoSnapshotPolicies

查询已创建的自动快照策略。

nas:DescribeAutoSnapshotTasks

查询自动快照的任务列表。

nas:DescribeBlackListClients

获取CPFS服务中黑名单客户端的状态。

nas:DescribeFileSystemBriefInfos

-

nas:DescribeFileSystemFlowControlSetting

-

nas:DescribeFileSystemStatistics

列出当前账号下文件系统的统计信息。

nas:DescribeFilesystemsAssociatedHpnZones

-

nas:DescribeFilesystemsVscAttachInfo

查询文件系统关联的虚拟存储通道信息。

nas:DescribeLogAnalysis

列出日志分析中配置的日志转储信息。

nas:DescribeMountedClients

查询已挂载的客户端列表。

nas:DescribeProtocolMountTarget

查询协议服务导出目录。

nas:DescribeProtocolMountTarget007

-

nas:DescribeProtocolService

查询协议服务信息。

nas:DescribeRegions

查询可以使用的阿里云地域。

nas:DescribeResourceStatistics

-

nas:DescribeSnapshots

查询指定文件系统一个或多个快照的信息。

nas:DescribeStoragePackages

查询存储包列表信息。

nas:DescribeVscMountPointAttachInfo

-

nas:DescribeVscMountPoints

-

nas:DescribeZones

查询一个地域下的所有可用区及可用区所支持的文件系统类型。

nas:DetachVscFromFilesystems

取消 VSC 设备关联到文件系统。

nas:DetachVscMountPoint

-

nas:GetLifecycleRuleTimeRange

-

nas:GetViperGrayConfig

-

nas:ModifyAccessGroup

修改权限组。

nas:ModifyAccessRule

修改一个权限组规则。

nas:ModifyAutoSnapshotPolicy

修改一条自动快照策略。修改自动快照策略后,之前已应用该策略的文件系统随即执行修改后的自动快照策略。

nas:ModifyDataFlowTasks

-

nas:ModifyLDAPConfig

用于修改LDAP配置。

nas:ModifyProtocolMountTarget

修改协议服务的导出目录参数,只能修改权限组和描述信息。VPC IDvSwitch ID不允许修改,如果需要修改,需要删除导出目录再新建。

nas:ModifyProtocolService

修改一个协议服务,支持修改协议服务描述信息。

nas:OpenNasService

-

nas:RemoveClientFromBlackList

CPFS服务中,将客户端移出黑名单,恢复其写入请求。

nas:ResetFileSystem

使文件系统回滚至某一历史快照的文件系统状态。

nas:RetryLifecycleRetrieveJob

重试任务状态为已失败(failed)的数据取回任务。

nas:SetFileSystemFlowControl

-

nas:TagResources

为指定资源创建并绑定标签。支持文件系统和接入点。

nas:TestDemoDescribeProtocolMountTarget

-

nas:TestDemoDescribeProtocolMountTarget03

-

nas:TestDescribeProtocolMountTarget

-

nas:TestDescribeProtocolMountTarget02

-

nas:UnTagResources

-

nas:UntagResources

删除指定资源标签。

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

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

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

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "nas:DescribeAccessGroups",
            "nas:DescribeAccessRules",
            "nas:DescribeAutoSnapshotPolicies",
            "nas:DescribeAutoSnapshotTasks",
            "nas:DescribeBlackListClients",
            "nas:DescribeFileSystemBriefInfos",
            "nas:DescribeFileSystemStatistics",
            "nas:DescribeFilesystemsAssociatedHpnZones",
            "nas:DescribeFilesystemsVscAttachInfo",
            "nas:DescribeLogAnalysis",
            "nas:DescribeMountedClients",
            "nas:DescribeProtocolMountTarget",
            "nas:DescribeProtocolService",
            "nas:DescribeRegions",
            "nas:DescribeResourceStatistics",
            "nas:DescribeSnapshots",
            "nas:DescribeStoragePackages",
            "nas:DescribeVscMountPointAttachInfo",
            "nas:DescribeVscMountPoints",
            "nas:DescribeZones",
            "nas:GetLifecycleRuleTimeRange",
            "nas:GetViperGrayConfig"
          ],
          "Resource": "*"
        }
      ]
    }
    
  • 允许不支持资源组级别授权的全部操作:Action中列举不支持资源组级别授权的全部操作。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "nas:AddClientToBlackList",
            "nas:AddTags",
            "nas:ApplyAutoSnapshotPolicy",
            "nas:AttachVscMountPoint",
            "nas:AttachVscToFilesystems",
            "nas:BindStoragePackage",
            "nas:CancelAutoSnapshotPolicy",
            "nas:CancelLifecycleRetrieveJob",
            "nas:CancelRecycleBinJob",
            "nas:ClientMount",
            "nas:ClientRootAccess",
            "nas:ClientWrite",
            "nas:CreateAccessGroup",
            "nas:CreateAccessRule",
            "nas:CreateAutoSnapshotPolicy",
            "nas:CreateFile",
            "nas:CreateLDAPConfig",
            "nas:CreateLogAnalysis",
            "nas:CreateMountTargetInternal",
            "nas:CreateProtocolMountTarget",
            "nas:CreateProtocolService",
            "nas:CreateServicePolicy",
            "nas:CreateSnapshot",
            "nas:CreateVscMountPoint",
            "nas:DeleteAccessGroup",
            "nas:DeleteAccessRule",
            "nas:DeleteAutoSnapshotPolicy",
            "nas:DeleteLDAPConfig",
            "nas:DeleteLogAnalysis",
            "nas:DeleteMountTargetSpecial",
            "nas:DeleteProtocolMountTarget",
            "nas:DeleteProtocolService",
            "nas:DeleteSnapshot",
            "nas:DeleteVscMountPoint",
            "nas:DemoCloneTest",
            "nas:DescribeAccessGroups",
            "nas:DescribeAccessRules",
            "nas:DescribeAutoSnapshotPolicies",
            "nas:DescribeAutoSnapshotTasks",
            "nas:DescribeBlackListClients",
            "nas:DescribeFileSystemBriefInfos",
            "nas:DescribeFileSystemFlowControlSetting",
            "nas:DescribeFileSystemStatistics",
            "nas:DescribeFilesystemsAssociatedHpnZones",
            "nas:DescribeFilesystemsVscAttachInfo",
            "nas:DescribeLogAnalysis",
            "nas:DescribeMountedClients",
            "nas:DescribeProtocolMountTarget",
            "nas:DescribeProtocolMountTarget007",
            "nas:DescribeProtocolService",
            "nas:DescribeRegions",
            "nas:DescribeResourceStatistics",
            "nas:DescribeSnapshots",
            "nas:DescribeStoragePackages",
            "nas:DescribeVscMountPointAttachInfo",
            "nas:DescribeVscMountPoints",
            "nas:DescribeZones",
            "nas:DetachVscFromFilesystems",
            "nas:DetachVscMountPoint",
            "nas:GetLifecycleRuleTimeRange",
            "nas:GetViperGrayConfig",
            "nas:ModifyAccessGroup",
            "nas:ModifyAccessRule",
            "nas:ModifyAutoSnapshotPolicy",
            "nas:ModifyDataFlowTasks",
            "nas:ModifyLDAPConfig",
            "nas:ModifyProtocolMountTarget",
            "nas:ModifyProtocolService",
            "nas:OpenNasService",
            "nas:RemoveClientFromBlackList",
            "nas:ResetFileSystem",
            "nas:RetryLifecycleRetrieveJob",
            "nas:SetFileSystemFlowControl",
            "nas:TagResources",
            "nas:TestDemoDescribeProtocolMountTarget",
            "nas:TestDemoDescribeProtocolMountTarget03",
            "nas:TestDescribeProtocolMountTarget",
            "nas:TestDescribeProtocolMountTarget02",
            "nas:UnTagResources",
            "nas:UntagResources"
          ],
          "Resource": "*"
        }
      ]
    }
    
重要

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

常见问题

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

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

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

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

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

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

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

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