
# 资源控制策略(RCP)
#### 操作场景
资源控制策略（Resource Control Policies，RCP）是组织服务提供的一种护栏策略，核心用于限制组织下的资源的最大可用权限边界。通过RCP明确资源允许的权限上限，所有访问组织内成员账号资源的操作，均需受对应RCP的护栏约束，从资源维度规避权限过度授予风险。支持关联到组织、组织单元（OU）或单个成员账号。当关联组织或组织单元（OU）时，其下所有成员账号的资源访问均受该策略约束；关联单个成员账号时，仅对该账号内资源的访问生效。
#### 前提条件
获取组织ID：以组织管理员、管理账号或成员账号的身份登录[组织管理控制台](https://console.huaweicloud.com/organizations/?&locale=zh-cn#/home)，进入控制面板页，即可查看组织ID、组织的URN、管理账号名称及管理账号ID等信息。
![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002575024107.png "点击放大")
#### 权限控制原理
- **划定权限边界**
  RCP不直接进行授权，只划定权限边界。将RCP绑定到组织单元或者成员账号时，并没有直接对组织单元或成员账号授予操作权限，而是规定了成员账号或组织单元包含的成员账号的授权范围。IAM策略授予权限的有效性受RCP限制，只有在RCP允许范围内的权限才能生效。RCP禁止的权限操作，即便授予IAM用户权限，用户也不能执行相关操作。
  比如成员账号A绑定了某一条RCP，RCP允许操作A的权限，拒绝操作B的权限。那么成员账号A可以给自己名下的IAM用户授予操作A的权限，不能授予操作B的权限，即便授予了操作B的权限，也无法生效。
  
- **逐层检查权限**
  如果要允许成员账号使用某个云服务的操作，在从组织的Root到账号直接路径中的每个OU（包括目标账号本身），每个层级都必须有显示允许该操作。
  图1在Root、OU 和账号y 处附加 Allow 语句的组织结构示例   
  ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002516220155.png "点击放大")
  如果要拒绝特定账号获取权限，在从组织的Root到账号直接路径中的每个OU（包括目标账号本身），任何RCP都可以拒绝该权限。
  图2OU 中附加了 Deny 语句的组织结构示例及其对账号 y 的影响   
  ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002483980812.png "点击放大") 

- **默认允许**
  组织启用RCP时，默认会为所有OU和账号附加全部权限（RCPFullAccess策略），默认允许所有操作。除非您为OU或账号附加其他的明确拒绝策略。
  
 
#### 策略语法示例
**配置示例1：** **组织内的镜像只能由组织内的账号下载。**
下面策略的含义：该策略绑定的OU或账号下的镜像不能被组织外的账号下载。只能由组织(o-j1ftg6v1z9zldcg2o29ho0gvazswvia2)内的账号下载。
```
{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "swr:repo:download"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotEquals": {
          "g:PrincipalOrgId": [
            "o-j1ftg6v1z9zldcg2o29ho0gvazswvia2"
          ]
        }
      }
    }
  ]
}
```
**配置示例2：** **除了公开镜像，组织内的镜像只能由组织内的账号下载。**
下面策略的含义：该策略绑定的OU或账号下的私有镜像不能被组织外的账号下载。只能由组织(o-j1ftg6v1z9zldcg2o29ho0gvazswvia2)内的账号下载，公开镜像可以由任何账号下载。
```
{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "swr:repo:download"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotEquals": {
          "g:PrincipalOrgId": [
            "o-j1ftg6v1z9zldcg2o29ho0gvazswvia2"
          ]
        },
        "Bool": {
          "swr:RepositoryIsPublic": [
            "false"
          ]
        }
      }
    }
  ]
}
```
![](https://support.huaweicloud.com/usermanual-swr/public_sys-resources/note_3.0-zh-cn.png)
配置方法同[服务控制策略(SCP)](https://support.huaweicloud.com/usermanual-swr/swr_01_0189.html)章节的配置方法。
#### 策略参数说明
表1策略参数说明 
| 参数                                                                                                                               || 含义                                                                                                                                                                                            | 值                                                                                                                                                                                                                                                                                                                            |
|:---|---|:---|:---|
| Version                                                                                                                          || 身份策略的版本。                                                                                                                                                                                      | 固定为5.0，不支持修改：代表身份策略JSON语法的版本号。                                                                                                                                                                                                                                                                                               |
| Statement： 身份策略的授权语句 | Sid：语句ID             | Sid（Statement ID）表示语句的可选标识符。                                                                                                                                                                  | 为一个由零个或多个字符组成的字符串。                                                                                                                                                                                                                                                                                                           |
| Statement： 身份策略的授权语句 | Effect：作用            | 定义Action中的操作权限是否允许执行。                                                                                                                                                                         | 仅支持Deny：不允许执行。                                                                                                                                                                                                                                                                                                               |
| Statement： 身份策略的授权语句 | Action/NotAction：授权项 | 操作权限。                                                                                                                                                                                         | 格式为"服务名:资源类型:操作"。授权项支持\*和?，\*表示任意个字符，?表示恰好一个字符。Action/NotAction不区分大小写。Action表示匹配列表中的所有授权项，NotAction表示匹配列表之外的所有授权项。 您可以打开[身份策略授权参考](https://support.huaweicloud.com/usermanual-permissions/iam_01_0003.html)，导航至云服务的"操作"小节，查看该服务所有授权项。 |
| Statement： 身份策略的授权语句 | Resource: 资源类型       | 身份策略所作用的资源。                                                                                                                                                                                   | 资源类型用资源URN表示，格式为"\<service-name\>:\<region\>:\<account-id\>:\<type-name\>:\<resource-path\>", 资源URN支持\*和?，\*表示任意个字符，?表示恰好一个字符。Resource不区分大小写。资源URN详情可参见[使用URN标识华为云资源](https://support.huaweicloud.com/usermanual-iam5/iam_01_1275.html)。                                                                                     |
| Statement： 身份策略的授权语句 | Condition：条件         | 使身份策略生效的特定条件，包括[条件键](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)和[运算符](https://support.huaweicloud.com/usermanual-iam5/iam_01_1289.html#iam_01_1289__li13495143171719)。 | 格式为"运算符:{条件键：\[条件值1,条件值2\]}"。其中，条件键不区分大小写。 如果您设置多个条件，同时满足所有条件时，该身份策略才生效。                                                                 |
   
#### 相关文档：
[RCP原理介绍](https://support.huaweicloud.com/usermanual-organizations/org_03_2018.html)
[RCP语法介绍](https://support.huaweicloud.com/usermanual-organizations/org_03_2019.html)
[支持RCP的区域](https://support.huaweicloud.com/usermanual-organizations/org_03_2028.html)
