如何通过Organizations服务的服务控制策略,限制OBS桶的转储范围?
问题背景
服务控制策略(SCP策略)是Organizations云服务中用于定义组织账户允许或禁止的操作,可以集中管理和控制组织中的账户权限。使用CTS服务创建追踪器和配置追踪器时,通过Organizations云服务的SCP策略,使用不同的条件键(如 cts:TargetType, cts:TargetOrgPath, cts:TargetOrgId, cts:TargetAccountId),可以限制转储OBS桶的范围,精确地控制用户的操作权限。
本章节展示如何使用CTS的服务条件键,对“转储审计日志到其他用户的OBS桶”场景进行限制。如何转储审计日志到其他用户的OBS桶,请参考跨租户转储授权。
以下是CTS服务控制策略的详细配置说明,以及如何根据条件配置SCP策略。
使用限制
- 当前CTS支持使用SCP的区域包含:华南-广州-友好用户环境、华北-乌兰察布-汽车一、华北-乌兰察布一、华北-北京一、华北-北京四、华南-广州、华东-上海一、华东-上海二、华东-青岛、华东二、西南-贵阳一、中国-香港、亚太-曼谷、亚太-新加坡、亚太-雅加达、中东-利雅得、拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥、非洲-开罗、非洲-约翰内斯堡、土耳其-伊斯坦布尔。
- 在配置SCP策略时,确保配置数据与账号数据(例如账号ID)相匹配。
- cts:TargetType需要与其他3个服务条件键结合使用。当cts:TargetType被设置为obs时,cts:TargetOrgPath、cts:TargetOrgId和cts:TargetAccountId将生效。详细使用方式请参考CTS服务控制策略使用示例。
CTS服务条件键
条件键(Condition)是SCP生效的特定条件,包括条件键和运算符。
- 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。
- 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。
- 服务级条件键(前缀通常为服务缩写,如cts:)仅适用于对应服务的操作,详情请参见表1。
- 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。
- 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。
CTS定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。
服务级条件键 |
类型 |
单值/多值 |
说明 |
---|---|---|---|
cts:TargetType |
string |
单值 |
按照数据转储类型筛选访问权限。 |
cts:TargetAccountId |
string |
单值 |
按照obs桶所属用户的DomainID(账号ID)筛选访问权限。 |
cts:TargetOrgId |
string |
单值 |
按照obs桶所属组织筛选访问权限。 |
cts:TargetOrgPath |
string |
单值 |
按照obs桶所属组织OU路径筛选访问权限。 |

cts:TargetType需要与其他3个服务条件键结合使用。当cts:TargetType被设置为obs时,cts:TargetOrgPath、cts:TargetOrgId和cts:TargetAccountId将生效。详细使用方式请参考CTS服务控制策略使用示例。
CTS服务控制策略使用示例
服务控制策略 (SCP) 的原理介绍和语法介绍详情请参见:SCP原理介绍和SCP语法介绍。
若用户仅要求审计日志转储到本组织内的账号下(不限具体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" ] } } } ] }