权限评估逻辑
更新时间:2025-03-07
服务控制策略(Service Control Policy)用于限定子账户的最大权限边界,一个策略可包含多个服务的权限。你可以把策略附加到组织单元或子账户,最终效果都会作用到子账户,以达到对子账户的最大权限进行限制的目的。
企业组织权限策略与多用户访问控制权限策略
对比项 | 企业组织权限策略 | 多用户访问控制权限策略 |
---|---|---|
定义 | 又称为服务控制策略(SCP),权限的集合,主要用于限制企业组织下成员账户的权限 | 云账户下权限的集合,用于控制账户内子用户等对云资源的访问控制权限 |
作用对象 | 子账户 | 子用户、角色、用户组(最终作用到子用户) |
权限效果 | 核心作用是限制子账户的最大权限,创建子账户或组织单元后系统会默认赋予全部权限,然后你可以通过对某些云产品的拒绝访问,来限制某个子账户的最大权限边界,详细权限效果参考下文描述 | 子用户或角色默认无任何权限策略,需要主账号手动授予,才能获得所需权限,详细鉴权逻辑参考IAM权限评估逻辑 |
SCP的权限评估逻辑
单账户下子用户的权限生效逻辑主要为加法原则,即子用户被授予了权限策略A和B,则同时拥有了A和B的相加后的权限。
不同于单账户下的策略,企业组织内的SCP可被授予到组织单元,也可以被直接授予到子账户,策略的生效逻辑会结合2者被授予的策略一起评估,其核心逻辑描述如下:
- 授予到组织单元不同策略间的关系是并集(加法),即权限叠加;
- 组织单元会继承上级组织单元的策略,继承策略和该单元自身被授予的策略关系为交集,即二者都允许的权限生效;
- 授予到子账户不同策略间的关系是并集(加法),即权限叠加;
- 子账户会继承所属组织单元的策略,继承策略和子账户自身策略关系为交集,即二者都允许的权限;
案例说明
某企业组织root节点下有2个组织单元1、组织单元2,且位于2个不同层级,组织单元1下有子账户A,组织单元2下有子账户B,组织和账户直接被授权的SCP如下:
- 组织单元1:SCP1对应为FullAccessScp(所有资源),SCP2对应BCC管理权限;
- 账户A:SCP3对应ModelBuilder管理权限,SCP4对应BCC管理权限;
- 组织单元1:SCP5对应为BOS管理权限,SCP6对应BCC管理权限;
- 账户B:SCP7对应为FullAccessScp(所有资源),SCP8对应BCC管理权限.
那么在上述的权限评估逻辑下,账户A和账户B最终生效的权限策略为:
- 账户A:继承来自root组织的FullAccesSCP,继承来自组织单元1的(SCP1+SCP2)权限并集,再与自身被授予的(SCP3+SCP4)权限取交集,最终生效的权限为BCC管理SCP+ModelBuiler管理。
- 账户B:继承来自root组织的FullAccesSCP,继承来自组织单元1的(SCP1+SCP2)权限并集,继承来自组织单元2的(SCP5+SCP6)权限并集,再与自身被授予的(SCP7+SCP8)权限取交集,最终生效的权限为BOS管理SCP+BCC管理SCP。
验证权限评估逻辑的准确性
为了验证通过上述逻辑计算得到最终权限正确,你还可以通过如下方法:将最终的权限策略结果,从账户开始,往上追溯到最顶层进行模拟鉴权操作,如果每个层级的鉴权都通过,则证明该逻辑正确。
举账户B的例子,要知道BOS管理SCP是否最终生效,鉴权流程如下:
- 在账户B鉴权:账户B拥有FullAccessScp,鉴权通过;
- 在组织单元2鉴权:组织单元2拥有BOS管理SCP,鉴权通过;
- 在组织单元1鉴权:组织单元1拥有FullAccessScp,鉴权通过;
- 在root组织鉴权:root拥有FullAccessScp,鉴权通过;
上述所有节点的鉴权结果皆为通过,因此BOS管理SCP权限为账户B拥有的权限。同理可以验证BCC管理SCP,在此不再赘述。