
# 如何通过Organizations服务的服务控制策略，限制OBS桶的转储范围？
#### 问题背景
服务控制策略（SCP策略）是Organizations云服务中用于定义组织账户允许或禁止的操作，可以集中管理和控制组织中的账户权限。使用CTS服务创建追踪器和配置追踪器时，通过Organizations云服务的SCP策略，使用不同的条件键（如 cts:TargetType, cts:TargetOrgPath, cts:TargetOrgId, cts:TargetAccountId），可以限制转储OBS桶的范围，精确地控制用户的操作权限。
本章节展示如何使用CTS的服务条件键，对"转储审计日志到其他用户的OBS桶"场景进行限制。如何转储审计日志到其他用户的OBS桶，请参考[跨租户转储授权](https://support.huaweicloud.com/usermanual-cts/cts_03_01437.html)。
以下是CTS服务控制策略的详细配置说明，以及如何根据条件配置SCP策略。
#### 使用限制
- 当前CTS支持使用SCP的区域包含：华南-广州-友好用户环境、华北-乌兰察布-汽车一、华北-乌兰察布一、华北-北京一、华北-北京四、华南-广州、华东-上海一、华东-上海二、华东-青岛、华东二、西南-贵阳一、中国-香港、亚太-曼谷、亚太-新加坡、亚太-雅加达、中东-利雅得、拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥、非洲-开罗、非洲-约翰内斯堡、土耳其-伊斯坦布尔。
- 在配置SCP策略时，确保配置数据与账号数据（例如账号ID）相匹配。
- cts:TargetType需要与其他3个服务条件键结合使用。当cts:TargetType被设置为obs时，cts:TargetOrgPath、cts:TargetOrgId和cts:TargetAccountId将生效。详细使用方式请参考[CTS服务控制策略使用示例]。
 
#### CTS服务条件键
条件键（Condition）是SCP生效的特定条件，包括[条件键](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html)和[运算符](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html)。
- 条件键表示SCP语句的Condition元素中的键值。根据适用范围，分为全局级条件键和服务级条件键。
  - 全局级条件键（前缀为g:）适用于所有操作，在鉴权过程中，云服务不需要提供用户身份信息，系统将自动获取并鉴权。详情请参见：[全局条件键](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html#section2)。
  
  - 服务级条件键（前缀通常为服务缩写，如cts:）仅适用于对应服务的操作，详情请参见[表1]。
  
  - 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值，多值条件键在API调用时请求可以包含多个值。例如：g:SourceVpce是单值条件键，表示仅允许通过某个VPC终端节点发起请求访问某资源，一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键，表示请求中携带的所有标签的key组成的列表，当用户在调用API请求时传入标签可以传入多个值。
   
- 运算符与条件键、条件值一起构成完整的条件判断语句，当请求信息满足该条件时，SCP才能生效。支持的运算符请参见：[运算符](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html)。
CTS定义了以下可以在SCP的Condition元素中使用的条件键，您可以使用这些条件键进一步细化SCP语句应用的条件。
 表1CTS支持的服务级条件键 
| 服务级条件键              | 类型     | 单值/多值 | 说明                               |
|:---|:---|:---|:---|
| cts:TargetType      | string | 单值    | 按照数据转储类型筛选访问权限。                  |
| cts:TargetAccountId | string | 单值    | 按照obs桶所属用户的DomainID（账号ID）筛选访问权限。 |
| cts:TargetOrgId     | string | 单值    | 按照obs桶所属组织筛选访问权限。                |
| cts:TargetOrgPath   | string | 单值    | 按照obs桶所属组织OU路径筛选访问权限。            |
   
![](https://support.huaweicloud.com/cts_faq/public_sys-resources/note_3.0-zh-cn.png)
cts:TargetType需要与其他3个服务条件键结合使用。当cts:TargetType被设置为obs时，cts:TargetOrgPath、cts:TargetOrgId和cts:TargetAccountId将生效。详细使用方式请参考[CTS服务控制策略使用示例]。
 #### CTS服务控制策略使用示例
服务控制策略 (SCP) 的原理介绍和语法介绍详情请参见：[SCP原理介绍](https://support.huaweicloud.com/usermanual-organizations/org_03_0032.html)和[SCP语法介绍](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html)。
若用户仅要求审计日志转储到本组织内的账号下（不限具体OU），推荐使用[示例二]的方式进行配置转储，示例二适用于日志需转储到组织内任意账号的OBS桶，强调灵活性和广泛适用。
若用户需要进一步限制，只允许审计日志转储到组织内某个特定OU下，推荐使用[示例三]的方式进行配置转储，示例三适用于日志必须转储到组织内某个特定OU下账号的OBS桶，满足更严格的合规与隔离要求。
- **示例一：使用服务条件键cts:TargetAccountId ，限制审计日志仅能转储至特定账号下的obs桶。**
  ```
  {
    "Version": "5.0",
    "Statement": [
      {
        "Effect": "Deny",
        "Action": [
          "cts:tracker:create",
          "cts:tracker:update"
        ],
        "Condition": {
          "StringEquals": {
            "cts:TargetType": [
              "obs"
            ]
          },
          "StringNotEquals": {
            "cts:TargetAccountId": [
              "051d********d3420f9bc01403fd8da0",
              "2883********4c6380e59a4d416a60ee"
            ]
          }
        }
      }
    ]
  }
  ```
  
- **示例二：使用服务条件键cts:TargetOrgId，限制审计日志仅能转储至特定组织内账号下的obs桶。**
  ```
  {
    "Version": "5.0",
    "Statement": [
      {
        "Effect": "Deny",
        "Action": [
          "cts:tracker:create",
          "cts:tracker:update"
        ],
        "Condition": {
          "StringEquals": {
            "cts:TargetType": [
              "obs"
            ]
          },
          "StringNotEquals": {
            "cts:TargetOrgId": [
              "o-fa9h4ghf0hnp********tah2nxmtugrf",
              "o-1vs0zv5azbbt********asbfd4oekb7z"
            ]
          }
        }
      }
    ]
  }
  ```
  
- **示例三：使用服务条件键cts:TargetOrgPath，限制审计日志仅能转储至特定组织ou内账号下的obs桶。**
  ```
  {
    "Version": "5.0",
    "Statement": [
      {
        "Effect": "Deny",
        "Action": [
          "cts:tracker:create",
          "cts:tracker:update"
        ],
        "Condition": {
          "StringEquals": {
            "cts:TargetType": [
              "obs"
            ]
          },
          "StringNotEquals": {
            "cts:TargetOrgPath": [
              "o-1vs0zv5azbbt********asbfd4oekb7z/r-zk3fox3t********cvfd7b1av5yuzikp/ou-x0m71md5k0bz********xfq7kj2uy9ck/ou-la1j52h39hi********jkmlbstb9jk8p/ou-67ax22d********duqqov9xd6ld5udpv",
              "o-sdfwesdfw232********1j52hasf2346/r-43fdghwt********etmgdfnb9ersdfg6"
            ]
          }
        }
      }
    ]
  }
  ```
  
 
