资源中心分级管理解决方案

资源中心的跨账号资源搜索,支持设置允许搜索的成员范围,从而实现企业内分级管理诉求。

业务场景

对于大型集团公司,您可以使用资源目录搭建企业的多账号组织结构。搭建完成后,您可以在资源中心开通跨账号资源搜索,然后使用资源目录的管理账号或资源中心委派管理员账号查看企业多账号的全局资源列表,以及按需搜索多账号中的资源。

资源目录管理账号或资源中心委派管理员账号通常由集团云管或中心运维团队负责管理,集团往往有多个子公司,集团云管团队希望将资源中心部分管理权下放,赋予各子公司管理员在各自的管理范围内查看和搜索资源。各子公司之间互不影响,从而在隔离的前提下,提升管理效率和灵活度。

本文将提供一个示例,假设Y公司有两个业务部门,分别为Dept1Dept2,希望各业务部门的运维管理员只能查看和搜索各自部门范围内的资源。具体如下表所示。

组织结构

管理员

职责

中心运维团队

OpsAdmin

OpsAdmin为公司中心运维团队负责人,需要在资源中心做全局集中的资源管理。

Dept1

Dept1Admin

Dept1AdminDept1的运维管理员,仅能在资源中心查看和搜索Dept1中成员的资源。

Dept2

Dept2Admin

Dept2AdminDept2的运维管理员,仅能在资源中心查看和搜索Dept2中成员的资源。

解决方案

image

当您为子部门管理员分配权限时,可以在权限策略中通过acs:RDManageScopeCondition,设置子部门管理员允许操作的成员范围。具体信息,请参见授权信息

不管您是使用RAM,还是使用云SSO管理多账号的身份和权限,均可实现分级管理诉求。您可以根据实际情况参考以下指引。

使用RAM管理身份和权限时的分级管理方案

  1. 开通资源目录。

    Y公司企业管理员(如中心运维管理员)申请阿里云账号并进行企业实名认证,然后开通资源目录。开通资源目录后,创建两个名为Dept1Dept2的资源夹,在每个资源夹下创建成员或邀请已有的阿里云账号加入到资源目录,搭建企业的多账号组织结构。

    具体操作,请参见开通资源目录创建资源夹创建成员邀请阿里云账号加入资源目录

    开通资源目录的账号即为管理账号。同时,管理账号也可以将资源目录中的成员设置为资源中心的委派管理员账号。委派管理员账号可以在资源中心查看和搜索资源,实现组织管理与业务管理职责的分离。具体操作,请参见管理资源中心委派管理员账号

  2. 创建RAM用户OpsAdmin,并授予整个资源目录内跨账号搜索的相关权限。

    使用资源目录管理账号或资源中心委派管理员账号登录RAM控制台,创建一个名为OpsAdminRAM用户,然后为其授予以下自定义权限策略。

    具体操作,请参见创建RAM用户创建自定义权限策略RAM用户授权

    • 授予资源中心跨账号搜索的相关权限

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "resourcecenter:SearchMultiAccountResources",
                      "resourcecenter:GetMultiAccountResourceCounts",
                      "resourcecenter:GetMultiAccountResourceConfiguration",
                      "resourcecenter:ExecuteMultiAccountSQLQuery"
                  ],
                  "Resource": "*"
              }
          ]
      }
    • 授予查看资源目录组织结构的权限

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:GetResourceDirectory",
              "resourcemanager:ListAuthorizedFolders"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:ListAccount*",
              "resourcemanager:GetFolder*",
              "resourcemanager:ListFolder*",
              "resourcemanager:GetAccount"
            ],
            "Resource": "*"
          }
        ]
      }

  3. 创建一个名为Dept1AdminRAM用户,并授予资源夹Dept1范围的相关权限。

    使用资源目录管理账号或资源中心委派管理员账号登录RAM控制台,创建一个名为Dept1AdminRAM用户,然后为其授予以下自定义权限策略。

    具体操作,请参见创建RAM用户创建自定义权限策略RAM用户授权

    • 授予资源中心指定资源夹内跨账号搜索的相关权限

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "resourcecenter:SearchMultiAccountResources",
                      "resourcecenter:GetMultiAccountResourceCounts",
                      "resourcecenter:GetMultiAccountResourceConfiguration",
                      "resourcecenter:ExecuteMultiAccountSQLQuery"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "StringLike": {
                          "acs:RDManageScope": [
                              "rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
                              "rd-3G****/r-Wm****/fd-Ca2****Q3Y"
                          ]
                      }
                  }
              }
          ]
      }
    • 授予查看资源目录指定资源夹的权限

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:GetResourceDirectory",
              "resourcemanager:ListAuthorizedFolders"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:ListAccount*",
              "resourcemanager:GetFolder*",
              "resourcemanager:ListFolder*",
              "resourcemanager:GetAccount"
            ],
                  "Resource": [
                      "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
                      "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
                      "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-Ca2****Q3Y"
                  ]
              }
          ]
      }
    重要

    上述示例中的rd-3G****/r-Wm****/fd-Ca2****Q3Y为资源夹Dept1RDPath,请在实际使用时替换为目标资源夹RDPath。关于如何查看RDPath,请参见查看资源夹基本信息

  4. 创建一个名为Dept2AdminRAM用户,并授予资源夹Dept2范围的相关权限。

    使用资源目录管理账号或资源中心委派管理员账号登录RAM控制台,创建一个名为Dept2AdminRAM用户,然后为其授予以下自定义权限策略。

    具体操作,请参见创建RAM用户创建自定义权限策略RAM用户授权

    • 授予资源中心指定资源夹内跨账号搜索的相关权限

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "resourcecenter:SearchMultiAccountResources",
                      "resourcecenter:GetMultiAccountResourceCounts",
                      "resourcecenter:GetMultiAccountResourceConfiguration",
                      "resourcecenter:ExecuteMultiAccountSQLQuery"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "StringLike": {
                          "acs:RDManageScope": [
                              "rd-3G****/r-Wm****/fd-BPLx****7u/*",
                              "rd-3G****/r-Wm****/fd-BPLx****7u"
                          ]
                      }
                  }
              }
          ]
      }
    • 授予查看资源目录指定资源夹的权限

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:GetResourceDirectory",
              "resourcemanager:ListAuthorizedFolders"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "resourcemanager:ListAccount*",
              "resourcemanager:GetFolder*",
              "resourcemanager:ListFolder*",
              "resourcemanager:GetAccount"
            ],
            "Resource": [
              "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-BPLx****7u/*",
              "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-BPLx****7u/*",
              "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-BPLx****7u"
            ]
          }
        ]
      }
    重要

    上述示例中的rd-3G****/r-Wm****/fd-BPLx****7u为资源夹Dept2RDPath,请在实际使用时替换为目标资源夹RDPath。关于如何查看RDPath,请参见查看资源夹基本信息

  5. 验证结果。

    分别使用RAM用户OpsAdminDept1AdminDept2Admin登录资源中心控制台,或者调用资源中心OpenAPI,尝试操作资源中心中有权限的资源。

    • RAM用户OpsAdmin:在资源中心跨账号搜索、高级搜索中可以查看整个资源目录成员的资源。

      image

    • RAM用户Dept1Admin:在资源中心跨账号搜索、高级搜索中只能查看资源夹Dept1中成员的资源。

      image

    • RAM用户Dept2Admin:在资源中心跨账号搜索、高级搜索中只能查看资源夹Dept2中成员的资源。

      image

使用云SSO管理身份和权限时的分级管理方案

  1. 开通资源目录。

    Y公司企业管理员(如中心运维管理员)申请阿里云账号并进行企业实名认证,然后开通资源目录。开通资源目录后,创建两个名为Dept1Dept2的资源夹,在每个资源夹下创建成员或邀请已有的阿里云账号加入到资源目录,搭建企业的多账号组织结构。

    具体操作,请参见开通资源目录创建资源夹创建成员邀请阿里云账号加入资源目录

    开通资源目录的账号即为管理账号。同时,管理账号也可以将资源目录中的成员设置为资源中心的委派管理员账号。委派管理员账号可以在资源中心查看和搜索资源,实现组织管理与业务管理职责的分离。具体操作,请参见管理资源中心委派管理员账号

  2. 开通云SSO。

    管理账号登录SSO控制台,开通云SSO,并创建目录。

    具体操作,请参见开通云SSO创建目录

  3. 创建云SSO用户OpsAdmin,并授予整个资源目录内跨账号搜索的相关权限。

    管理账号登录SSO控制台,创建一个名为OpsAdmin的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户OpsAdminRD管理账号或资源中心的委派管理员账号上部署该访问配置。

    具体操作,请参见创建用户创建访问配置RD账号上授权

    访问配置使用以下内容的内置策略,不使用系统策略。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "resourcecenter:SearchMultiAccountResources",
            "resourcecenter:GetMultiAccountResourceCounts",
            "resourcecenter:GetMultiAccountResourceConfiguration",
            "resourcecenter:ExecuteMultiAccountSQLQuery"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:GetResourceDirectory",
            "resourcemanager:ListAuthorizedFolders"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:ListAccount*",
            "resourcemanager:GetFolder*",
            "resourcemanager:ListFolder*",
            "resourcemanager:GetAccount"
          ],
          "Resource": "*"
        }
      ]
    }
  4. 创建一个名为Dept1Admin的云SSO用户,并授予资源夹Dept1范围的相关权限。

    管理账号登录SSO控制台,创建一个名为Dept1Admin的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户Dept1AdminRD管理账号或资源中心的委派管理员账号上部署该访问配置。

    具体操作,请参见创建用户创建访问配置RD账号上授权

    访问配置使用以下内容的内置策略,不使用系统策略。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "resourcecenter:SearchMultiAccountResources",
            "resourcecenter:GetMultiAccountResourceCounts",
            "resourcecenter:GetMultiAccountResourceConfiguration",
            "resourcecenter:ExecuteMultiAccountSQLQuery"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "acs:RDManageScope": [
                "rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
                "rd-3G****/r-Wm****/fd-Ca2****Q3Y"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:GetResourceDirectory",
            "resourcemanager:ListAuthorizedFolders"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:ListAccount*",
            "resourcemanager:GetFolder*",
            "resourcemanager:ListFolder*",
            "resourcemanager:GetAccount"
          ],
          "Resource": [
            "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
            "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-Ca2****Q3Y/*",
            "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-Ca2****Q3Y"
          ]
        }
      ]
    }
    重要

    上述示例中的rd-3G****/r-Wm****/fd-Ca2****Q3Y为资源夹Dept1RDPath,请在实际使用时替换为目标资源夹RDPath。关于如何查看RDPath,请参见查看资源夹基本信息

  5. 创建一个名为Dept2Admin的云SSO用户,并授予资源夹Dept2范围的相关权限。

    管理账号登录SSO控制台,创建一个名为Dept2Admin的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户Dept2AdminRD管理账号或资源中心的委派管理员账号上部署该访问配置。

    具体操作,请参见创建用户创建访问配置RD账号上授权

    访问配置仅使用以下内容的内置策略,不使用系统策略。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "resourcecenter:SearchMultiAccountResources",
            "resourcecenter:GetMultiAccountResourceCounts",
            "resourcecenter:GetMultiAccountResourceConfiguration",
            "resourcecenter:ExecuteMultiAccountSQLQuery"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "acs:RDManageScope": [
                "rd-3G****/r-Wm****/fd-BPLx****7u/*",
                "rd-3G****/r-Wm****/fd-BPLx****7u"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:GetResourceDirectory",
            "resourcemanager:ListAuthorizedFolders"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "resourcemanager:ListAccount*",
            "resourcemanager:GetFolder*",
            "resourcemanager:ListFolder*",
            "resourcemanager:GetAccount"
          ],
          "Resource": [
            "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-BPLx****7u/*",
            "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-BPLx****7u/*",
            "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-BPLx****7u"
          ]
        }
      ]
    }
    
    重要

    上述示例中的rd-3G****/r-Wm****/fd-BPLx****7u为资源夹Dept2RDPath,请在实际使用时替换为目标资源夹RDPath。关于如何查看RDPath,请参见查看资源夹基本信息

  6. 验证结果。

    分别使用云SSO用户OpsAdminDept1AdminDept2Admin登录云SSO用户门户,尝试操作资源中心中有权限的资源。

    具体操作,请参见登录云SSO用户门户并访问阿里云资源

    • SSO用户OpsAdmin:在资源中心跨账号搜索、高级搜索中可以查看整个资源目录成员的资源。

      image

    • SSO用户Dept1Admin:在资源中心跨账号搜索、高级搜索中只能查看资源夹Dept1中成员的资源。

      image

    • SSO用户Dept2Admin:在资源中心跨账号搜索、高级搜索中只能查看资源夹Dept2中成员的资源。

      image

注意事项

  • 授权策略中acs:RDManageScope的值仅支持设置为指定资源夹的路径,不支持设置为某个具体成员的路径。

    例如:某个资源目录成员的RDPathrd-3G****/r-Wm****/fd-Ca2****Q3Y/164********36,上级资源夹的RDPathrd-3G****/r-Wm****/fd-Ca2****Q3Y,如果您想授权子部门管理员查看该成员的资源,您只能将acs:RDManageScope设置为rd-3G****/r-Wm****/fd-Ca2****Q3Yrd-3G****/r-Wm****/fd-Ca2****Q3Y/*,该子部门管理员就可以查看资源夹fd-Ca2****Q3Y及其下所有的资源夹和成员的资源。

  • 在执行资源中心的分级管理操作时,根据授权情况可能会出现两种返回结果:

    • 当操作中指定的范围有权限时,操作将正常返回指定范围及其下级范围(如果存在的话)内有权限的结果。

    • 当操作中指定的范围无权限时,操作将返回无权限提示,并且不会继续往下检查更深层级的权限。

  • 只有本文所述的以下Action支持通过acs:RDManageScopeCondition限定授权范围,其余Action均不能通过该Condition实现分级管理。请在编写权限策略时,将支持与不支持的Action分开写,避免产生鉴权错误。

    • resourcecenter:SearchMultiAccountResources

    • resourcecenter:GetMultiAccountResourceCounts

    • resourcecenter:GetMultiAccountResourceConfiguration

    • resourcecenter:ExecuteMultiAccountSQLQuery