KS3如何对请求授权

最近更新时间:2019-09-23 18:18:38

当 KS3 收到请求,例如,存储空间(Bucket)或文件(Object)操作时,它首先验证请求者是否拥有必要的权限。

KS3 对所有相关访问策略、用户策略和基于资源的策略(空间策略、存储空间 ACL、对象 ACL)进行评估, 以决定是否对该请求进行授权。如果任何一个策略现实拒绝(Deny)用户的请求,无论其它的策略是否授权,KS3都会拒绝用户的这次请求。

以下是一些示例说明:

  • 如果请求者是IAM子用户,则 KS3 需要确定该IAM子用户所属的父账户是否通过用户策略(User Policy)授予该用户执行操作的必要权限;但是,如果父账户是资源拥有者,也可以通过空间策略(Bucket Policy)授予该IAM子用户执行操作的必要权限。

  • IAM子用户除了需要来自父账户的授权外,还需要得到资源拥有者向IAM子用户(使用空间策略)或父账户(使用空间策略、存储桶 ACL 或对象 ACL)授予权限;但是如果父账户是资源拥有者,在通过用户策略授权后,不再需要空间策略的授权。

  • 如果请求者是主账户,则KS3只需要判断是否为资源拥有者;如果不是资源拥有者,必须得到资源拥有者向该主账户(使用空间策略、存储空间 ACL 或对象 ACL)授予权限。

  • 如果请求者是匿名用户,则KS3需要判断ACL是否公开,或者资源拥有者通过空间策略进行了匿名授权。

流程图如下: image.png

  • 用户上下文:如果请求者是IAM子用户,则该子用户必须拥有来自其所属的父账户的授权,同时KS3还要判断其父账户是否也拥有对应的权利。

    注意:如果父账户同时也是资源拥有者,那么通过空间权限(bucket policy或ACL)授予该IAM子用户执行操作的必要权限也是可以的。

  • 资源上下文:请求者必须拥有来自资源拥有者的权限才能执行特定的操作。资源拥有者可以通过用户策略、空间策略、ACL向主账号和IAM子用户授予权限。

    注意:如果IAM子用户的父账户是资源所有者,已经通过用户策略获得了权限,在空间策略没有显示拒绝但是没有显示授权的情况下,也是可以通过资源上下文的验证。

金山云,开启您的云计算之旅

注册有礼