资源目录分级管理解决方案

资源目录支持资源级鉴权,您可以通过RAM或云SSO对资源目录进行分级管理。

业务场景

对于大型集团公司,资源目录管理账号通常由集团云管或运维团队负责管理。集团往往有多个子公司,集团云管团队希望将部分管理权下放,由各子公司的管理员管理对应子公司的目录组织,各子公司之间互不影响,从而在隔离的前提下,提升管理效率和灵活度。

本文将提供一个示例,假设Y公司有两个业务部门,分别为业务部门1和业务部门2,希望各业务的运维管理员管理各自业务的账号结构、员工权限等。具体如下表所示。

组织结构

管理员

职责

安全管理团队

Mike

Mike为公司中心安全团队负责人,需要做全局集中的安全管控,即全局的管控策略管理。

业务部门1

Alice

Alice为业务部门1的运维管理员,仅能在业务部门1内创建资源账号和组织结构、配置管控策略、配置成员的消息通知联系人,不能操作和影响其他业务。

业务部门2

Bob

Bob为业务部门2的运维管理员,仅能在业务部门2内创建资源账号和组织结构、配置管控策略、配置成员的消息通知联系人,不能操作和影响其他业务。

解决方案

分级管理主要解决操作范围和操作行为的权限细化管控。

image

资源目录目前已经支持RAM资源级鉴权,您可以通过Resource设置操作范围,通过Action设置操作行为。资源目录具体的授权信息,请参见资源目录鉴权列表

以下两种实施方案,您可以根据实际情况任选其一。

方案一:基于RAM实现分级管理

  1. 开通资源目录。

    Y公司企业管理员(如财务同学)申请阿里云账号并进行企业实名认证,然后开通资源目录,并创建两个名为业务部门1业务部门2的资源夹。具体操作,请参见开通资源目录创建资源夹

    开通资源目录的账号即为管理账号。

  2. 创建RAM用户Mike,并授予配置全局管控策略的权限。

    管理账号登录RAM控制台,创建一个名为Mike的RAM用户,为其创建访问密钥(AccessKey),然后为其授予以下自定义权限策略。具体操作,请参见创建RAM用户创建自定义权限策略为RAM用户授权

    自定义权限策略内容:

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/*",
                    "acs:resourcemanager:*:*:folder/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListAccount*",
                    "resourcemanager:GetFolder*",
                    "resourcemanager:ListFolder*",
                    "resourcemanager:GetAccount",
                    "resourcemanager:GetControlPolicy*",
                    "resourcemanager:ListControlPolicies",
                    "resourcemanager:ListControlPolicyAttachmentsForTarget",
                    "resourcemanager:ListTargetAttachmentsForControlPolicy",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 创建一个名为Alice的RAM用户,并授予管理资源夹业务部门1的权限。

    管理账号登录RAM控制台,创建一个名为Alice的RAM用户,为其创建访问密钥(AccessKey),然后为其授予以下自定义权限策略。具体操作,请参见创建RAM用户创建自定义权限策略为RAM用户授权

    自定义权限策略内容:

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*Account*",
                    "resourcemanager:*Parent*",
                    "resourcemanager:*Folder*",
                    "resourcemanager:*Handshake*",
                    "resourcemanager:*Contact*",
                    "resourcemanager:*Members*",
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*",
                    "resourcemanager:*SendVerificationCodeFor*",
                    "resourcemanager:*BindSecureMobilePhone*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-bqp2FA****/*",  //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****/*",   //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****",     //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:handshake/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*",
                    "acs:resourcemanager:*:*:messagecontact/*"
                ]
            },
            {
                "Effect": "Deny",
                "Action": [
                    "resourcemanager:DeleteControlPolicy",
                    "resourcemanager:UpdateControlPolicy",
                    "resourcemanager:DisableControlPolicy",
                    "resourcemanager:EnableControlPolicy",
                    "resourcemanager:DeleteMessageContact",
                    "resourcemanager:UpdateMessageContact",
                    "resourcemanager:CancelMessageContactUpdate",
                    "resourcemanager:CancelHandshake"
                ],
                "Resource": "*"
            }
        ]
    }
  4. 创建一个名为Bob的RAM用户,并授予管理资源夹业务部门2的权限。

    管理账号登录RAM控制台,创建一个名为Bob的RAM用户,为其创建访问密钥(AccessKey),然后为其授予以下自定义权限策略。具体操作,请参见创建RAM用户创建自定义权限策略为RAM用户授权

    自定义权限策略内容:

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*Account*",
                    "resourcemanager:*Parent*",
                    "resourcemanager:*Folder*",
                    "resourcemanager:*Handshake*",
                    "resourcemanager:*Contact*",
                    "resourcemanager:*Members*",
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*",
                    "resourcemanager:*SendVerificationCodeFor*",
                    "resourcemanager:*BindSecureMobilePhone*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-bqp2FA****/*",  //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****/*",   //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****",     //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:handshake/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*",
                    "acs:resourcemanager:*:*:messagecontact/*"
                ]
            },
            {
                "Effect": "Deny",
                "Action": [
                    "resourcemanager:DeleteControlPolicy",
                    "resourcemanager:UpdateControlPolicy",
                    "resourcemanager:DisableControlPolicy",
                    "resourcemanager:EnableControlPolicy",
                    "resourcemanager:DeleteMessageContact",
                    "resourcemanager:UpdateMessageContact",
                    "resourcemanager:CancelMessageContactUpdate",
                    "resourcemanager:CancelHandshake"
                ],
                "Resource": "*"
            }
        ]
    }
  5. 验证结果。

    分别使用RAM用户MikeAliceBob对应的访问密钥(AccessKey)调用资源目录OpenAPI,访问资源目录中有权限的资源。例如:Alice只能操作资源夹业务部门1中的资源,Bob只能操作资源夹业务部门2的资源,则说明以上配置成功。

方案二:基于云SSO实现分级管理

  1. 开通资源目录。

    Y公司企业管理员(如财务同学)申请阿里云账号并进行企业实名认证,然后开通资源目录,并创建两个名为业务部门1业务部门2的资源夹。具体操作,请参见开通资源目录创建资源夹

    开通资源目录的账号即为管理账号。

  2. 创建云SSO用户Mike,并授予配置全局管控策略的权限。

    管理账号登录云SSO控制台,创建一个名为Mike的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户Mike在RD管理账号上部署该访问配置。具体操作,请参见创建用户创建访问配置在RD账号上授权

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

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/*",
                    "acs:resourcemanager:*:*:folder/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListAccount*",
                    "resourcemanager:GetFolder*",
                    "resourcemanager:ListFolder*",
                    "resourcemanager:GetAccount",
                    "resourcemanager:GetControlPolicy*",
                    "resourcemanager:ListControlPolicies",
                    "resourcemanager:ListControlPolicyAttachmentsForTarget",
                    "resourcemanager:ListTargetAttachmentsForControlPolicy",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 创建一个名为Alice的云SSO用户,并授予管理资源夹业务部门1的权限。

    管理账号登录云SSO控制台,创建一个名为Alice的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户Alice在RD管理账号上部署该访问配置。具体操作,请参见创建用户创建访问配置在RD账号上授权

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

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*Account*",
                    "resourcemanager:*Parent*",
                    "resourcemanager:*Folder*",
                    "resourcemanager:*Handshake*",
                    "resourcemanager:*Contact*",
                    "resourcemanager:*Members*",
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*",
                    "resourcemanager:*SendVerificationCodeFor*",
                    "resourcemanager:*BindSecureMobilePhone*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-bqp2FA****/*",  //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****/*",   //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****",     //资源夹业务部门1的RDPath
                    "acs:resourcemanager:*:*:handshake/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*",
                    "acs:resourcemanager:*:*:messagecontact/*"
                ]
            },
            {
                "Effect": "Deny",
                "Action": [
                    "resourcemanager:DeleteControlPolicy",
                    "resourcemanager:UpdateControlPolicy",
                    "resourcemanager:DisableControlPolicy",
                    "resourcemanager:EnableControlPolicy",
                    "resourcemanager:DeleteMessageContact",
                    "resourcemanager:UpdateMessageContact",
                    "resourcemanager:CancelMessageContactUpdate",
                    "resourcemanager:CancelHandshake"
                ],
                "Resource": "*"
            }
        ]
    }
  4. 创建一个名为Bob的云SSO用户,并授予管理资源夹业务部门2的权限。

    管理账号登录云SSO控制台,创建一个名为Bob的云SSO用户,为其设置登录密码,然后创建访问配置,并为云SSO用户Bob在RD管理账号上部署该访问配置。具体操作,请参见创建用户创建访问配置在RD账号上授权

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

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:GetResourceDirectory",
                    "resourcemanager:ListTagKeys",
                    "resourcemanager:ListTagValues"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "resourcemanager:*Account*",
                    "resourcemanager:*Parent*",
                    "resourcemanager:*Folder*",
                    "resourcemanager:*Handshake*",
                    "resourcemanager:*Contact*",
                    "resourcemanager:*Members*",
                    "resourcemanager:*ControlPolicy*",
                    "resourcemanager:*ControlPolicies*",
                    "resourcemanager:*SendVerificationCodeFor*",
                    "resourcemanager:*BindSecureMobilePhone*"
                ],
                "Resource": [
                    "acs:resourcemanager:*:*:account/rd-3G****/r-Wm****/fd-bqp2FA****/*",  //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****/*",   //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:folder/rd-3G****/r-Wm****/fd-bqp2FA****",     //资源夹业务部门2的RDPath
                    "acs:resourcemanager:*:*:handshake/*",
                    "acs:resourcemanager:*:*:policy/controlpolicy/*",
                    "acs:resourcemanager:*:*:messagecontact/*"
                ]
            },
            {
                "Effect": "Deny",
                "Action": [
                    "resourcemanager:DeleteControlPolicy",
                    "resourcemanager:UpdateControlPolicy",
                    "resourcemanager:DisableControlPolicy",
                    "resourcemanager:EnableControlPolicy",
                    "resourcemanager:DeleteMessageContact",
                    "resourcemanager:UpdateMessageContact",
                    "resourcemanager:CancelMessageContactUpdate",
                    "resourcemanager:CancelHandshake"
                ],
                "Resource": "*"
            }
        ]
    }
  5. 验证结果。

    分别使用云SSO用户MikeAliceBob通过CLI登录云SSO用户门户,登录后,通过CLI命令行访问资源目录中有权限的资源。例如:Alice只能操作资源夹业务部门1中的资源,Bob只能操作资源夹业务部门2中的资源,则说明以上配置成功。关于如何通过CLI登录云SSO用户门户,请参见使用CLI登录云SSO并访问阿里云资源

    说明

    基于云SSO实现分级管理的方案配置完成后,暂时只能通过CLI操作有权限的资源,不支持控制台操作。

相关文档