管控策略概述

资源目录管控策略是一种基于资源结构(资源夹或成员)的访问控制策略,可以统一管理资源目录各层级内资源访问的权限边界,建立企业整体访问控制原则或局部专用原则。管控策略只定义权限边界,并不真正授予权限,您还需要在某个成员中使用访问控制(RAM)设置权限后,相应身份才具备对资源的访问权限。

应用场景

当企业创建了一个资源目录,并为每个部门创建了成员后,如果对各成员的行为不加以管控,就会破坏运维规则,带来安全风险和成本浪费。资源目录提供管控策略功能,企业可以通过管理账号集中制定管理规则,并将这些管理规则应用于资源目录的各级资源结构(资源夹、成员)上,管控各成员内资源的访问规则,确保安全合规和成本可控。例如:禁止成员申请域名、禁止成员删除日志记录等。

管控策略类型

  • 系统管控策略

    系统自带的管控策略。您只能查看,不能创建、修改和删除系统管控策略。开启管控策略功能后,资源目录内所有的资源夹和成员默认绑定了系统策略FullAliyunAccess,该策略允许对您在阿里云上的所有资源进行任何操作。

  • 自定义管控策略

    用户自定义的管控策略。您可以创建、修改和删除自定义管控策略。自定义管控策略创建成功后,您需要将自定义管控策略绑定到资源夹或成员上,才能生效。不需要时,也可以随时解绑。

工作原理

管控策略的工作原理如下:

  1. 使用管理账号开启管控策略功能。更多信息,请参见开启管控策略功能

    开启管控策略功能后,系统策略FullAliyunAccess将默认绑定到资源目录内的所有资源夹及成员,此策略允许所有操作,以防止管控策略的不当配置造成意料之外的访问失败。

  2. 使用管理账号创建管控策略。更多信息,请参见创建自定义管控策略

  3. 使用管理账号将管控策略绑定到资源目录节点(资源夹、成员)。更多信息,请参见绑定自定义管控策略

    管控策略允许绑定到资源目录中的任何资源夹或成员。管控策略具备向下继承的特点,例如:为父资源夹设置管控策略A,为子资源夹设置管控策略B,则管控策略A和管控策略B都会在子资源夹及其下的成员中生效。

    说明

    请先进行局部小范围测试,确保策略的有效性与预期一致,然后再绑定到全部目标节点(资源夹、成员)。

  4. 当成员中的RAM用户或RAM角色访问阿里云服务时,阿里云将会先进行管控策略检查,再进行账号内的RAM权限检查。具体如下:

    • 管控策略鉴权从被访问资源所在账号开始,沿着资源目录层级逐级向上进行。

    • 在任一层级进行管控策略鉴权时,命中拒绝(Deny)策略时都可以直接判定结果为拒绝(Explicit Deny),结束整个管控策略鉴权流程,并且不再进行账号内基于RAM权限策略的鉴权,直接拒绝请求。

    • 在任一层级进行管控策略鉴权时,如果既未命中拒绝(Deny)策略,也未命中允许(Allow)策略,同样直接判定结果为拒绝(Explicit Deny),不再进入下一个层级鉴权,结束整个管控策略鉴权流程,并且不再进行账号内基于RAM权限策略的鉴权,直接拒绝请求。

    • 在某一层级鉴权中,如果未命中拒绝(Deny)策略,而命中了允许(Allow)策略,则本层级鉴权通过,继续在父节点上进行管控策略鉴权,直至Root资源夹为止。如果Root资源夹鉴权结果也为通过,则整个管控策略鉴权通过,接下来进入账号内基于RAM权限策略的鉴权。更多信息,请参见权限策略判定流程

    • 管控策略对服务关联角色不生效。关于服务关联角色的详情,请参见服务关联角色

    • 阿里云将会评估被访问的账号自身及其所在的每一层级上绑定的管控策略,从而确保绑定在较高层级上的管控策略可以在其下的所有账号上生效。

    重要

    管控策略对所有资源目录成员中的RAM用户和RAM角色生效,但对成员的根用户不生效。同时,资源目录的管理账号位于资源目录外部,不归属于资源目录,所以管控策略对管理账号内的所有身份也不生效。

如何避免指定云服务的访问被管控

管控策略将对被管控成员中的资源访问权限限定边界,边界之外的权限将不允许生效,此限定同样影响阿里云服务对该成员访问的有效性。

阿里云服务可能使用服务角色访问您账号中的资源,以实现云服务的某些功能。当一个服务角色的权限超过管控策略的边界时,此权限会受到管控策略的约束,这可能导致云服务的某些功能不能正常使用。如果这正是您配置管控策略期望的结果,则无需进行其他额外操作,但是,如果您不希望这些云服务被管控,您可以采用以下方法进行处理:

  1. 确认您不希望被管控的云服务所使用的服务角色名称。

    您可以登录RAM控制台,查看账号下的所有服务角色。

  2. 在造成管控效果的管控策略中增加Condition key: "acs:PrincipalARN"的条件,将受影响的云服务所使用的服务角色名称写入到PrincipalARN字段,以避免该服务角色被误管控。示例如下:

    {
        "Statement": [
            {
                "Action": [
                    "ram:UpdateUser"
                ],
                "Resource": "*",
                "Effect": "Deny",         
                "Condition": {
                    "StringNotLike": {
                        "acs:PrincipalARN":"acs:ram:*:*:role/<服务角色名称>"
                   }
               }
            }
        ],
        "Version": "1"
    }

    关于管控策略的语法,请参见管控策略语言

使用限制

具体信息,请参见资源目录使用限制

暂不支持管控策略的云服务

  • 微服务引擎MSE需要升级到对应的引擎版本,才能支持管控策略。

    关于MSE引擎版本的详情,请参见版本特性

  • 消息队列RocketMQ版的以下应用或集群暂不支持管控策略。

    • 应用mq-http,不支持管控策略。

    • 应用onsbroker在以下地域,暂不支持管控策略。

      • 阿联酋(迪拜)

      • 华东2(上海):sh-share9集群、shvip-st21ujm8f01集群。

      • 政务云:beijing.gov.vip.v0h0ovmfp02、beijing.gov.vip.nif1zmrlf02,不支持管控策略;vip-cn-north-2-gov-1-45914plw301集群暂不支持管控策略。