对象存储服务 OBS-OBS不同权限控制方式的区别:访问控制机制冲突时,如何工作?
访问控制机制冲突时,如何工作?
OBS权限控制要素中,Effect(效力)包含两种:Allow(允许)和Deny(拒绝),分别表示允许或拒绝执行某操作的权限。
基于最小权限原则,权限控制策略的结果默认为Deny, 显式的Deny始终优先于Allow。例如, IAM 权限授权了用户访问对象的权限,但是桶策略拒绝了该用户访问对象的权限,且没有ACL时,该用户不能访问对象。
没有策略授予Allow权限时,默认情况即为Deny权限。当有策略授权Allow权限,且没有其他策略Deny该权限时,Allow的权限才能生效。例如,某个桶已经存在多条Allow权限的桶策略,再新增Allow权限的桶策略,会在原权限的基础上进行叠加,增大用户的权限;如果新增Deny权限的桶策略,则会根据Deny优先原则调整用户的权限,即使Deny策略中定义的动作在其他桶策略中Allow。

同账号场景下,为当前华为云账号下的IAM用户授予OBS桶和桶内资源的访问权限,桶策略、IAM权限和ACL的Allow和Deny作用结果如图4所示。ACL是基于账号级别的读写权限控制,IAM用户在访问所属账号的桶和桶内资源时,不受ACL控制。
跨账号场景下,为其他华为云账号及账号下的IAM用户授予OBS桶和桶内资源的访问权限,桶策略、IAM权限和ACL的Allow和Deny作用结果如图5所示。

- 当桶策略和IAM策略均为Default Deny,ACL设置为Allow时,由于ACL权限范围限制,最终的作用结果其实为Deny。ACL可以理解为对桶策略的一种补充。