权限概述

最近更新时间:2019-01-14 10:10:53

默认情况下,所有 KS3 资源都是私有的,包括存储空间(Bucket)、对象(Object)和相关子资源(例如,Lifecycle 配置和 ACL 配置)。只有资源拥有者,即创建该资源的 KS3 账户可以访问该资源。存储空间(Bucket)的创建者也具有该存储空间下所有资源的访问权限。

资源拥有者可以选择通过编写访问策略授予他人访问权限。

KS3资源

存储空间(Bucket)和对象/文件(Object)是KS3的主要资源,他们都有相关联的资源。存储空间(Bucket)的子资源包括:

  • Bucket Policy – 空间策略
  • ACL – 存储空间访问控制列表
  • Lifecycle – 存储生命周期配置信息
  • CORS(跨源资源共享)– 存储空间跨源请求配置
  • Logging – KS3的存储空间访问日志

对象/文件(Object)的子资源包括:

  • ACL – 存储对象访问权限列表。

被授权人

  • 账户(主账户)

账户或称主账户是客户在金山云资源归属、资源计量、资源计费的主体。任何客户在使用金山云的服务前,都需要首先注册生成一个金山云账户,一般使用用户名作为账户的登录标识。

账户是其名下所有云计算资源的所有者,拥有名下全部资源的完全控制权限,拥有资源的订单、账单;云计算资源可被所属账户随意操作访问。

  • IAM用户(子用户)

IAM用户是账户下的授权实体,也是归属于账户的一种资源。IAM用户不拥有任何云计算资源、不能独立计量和计费,只能被主账户授权管理其名下的各种资源,其所管理的资源归属于主账户(由主账户付费),且没有独立的账单。

IAM用户在获得主账户的授权后,能够被设置密码和访问密钥,从而登录控制台和使用openAPI管理主账户的资源。

  • 角色(Role)

IAM角色是一种虚拟用户(或影子账户),它是IAM用户类型的一种。这种虚拟用户有确定的身份,也可以被赋予一组权限(Policy),但它没有确定的身份认证密钥(登录密码或AccessKey)。与普通IAM用户的差别主要在使用方法上,IAM角色需要被一个授信的实体用户扮演,扮演成功后实体用户将获得IAM角色的临时安全令牌,使用这个临时安全令牌就能以角色身份访问被授权的资源。

  • 关于资源归属的说明

默认情况下,所有KS3资源都是私有的。只有资源拥有者才能访问资源。资源拥有者是指创建资源的KS3账户。

  1. 创建存储空间(Bucket)和对象/文件(Object)的 KS3 账户拥有这些资源的所有权限
  2. IAM子用户不拥有任何资源,如果一个IAM子用户再被授权后,上传了一个对象/文件,那么该IAM用户所属的父账户拥有此对象/文件。
  3. 存储空间拥有者可以向其他KS3账户授予上传对象的跨账户权限。在这种情况下,上传对象的KS3账户拥有这些对象。存储空间拥有者对其他账户拥有的对象也同时拥有所有权限,账单也是由存储空间(Bucket)拥有者支付。

资源操作

KS3 提供一组操作用来处理KS3资源。

访问策略

访问策略选项分为基于资源的策略和用户策略两类。附加到资源(存储空间和文件)的访问策略称为基于资源的策略。例如,存储空间策略和访问控制列表 (ACL) 就是基于资源的策略。访问策略附加到您账户中的用户。这些策略称为用户策略。

19.png

  • ACL访问策略 : 每一个存储空间和对象都关联一个ACL。ACL可以向其他的KS3账户授予基本的读写权限。ACL使用XML格式来表示,以下的例子指定存储空间的拥有者授予另外一个用户Read权限。

    <AccessControlPolicy>
    <Owner>
     <ID>Owner-User-Id</ID>
     <DisplayName>Owner-User-Name</DisplayName>
    </Owner>
    <AccessControlList>
      <Grant>
        <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
           <ID>User2-Id</ID>
           <DisplayName>User2-Name</DisplayName>
       </Grantee>
       <Permission>READ</Permission>
     </Grant>
    ...
    </AccessControlList>
    </AccessControlPolicy>
  • 空间策略(Bucket Policy) : 用户可以在存储空间设置空间策略,向其他KS3账户或者IAM子用户(包含本账户下的子用户和其他账户下的子用户)授予存储空间以及其中文件/对象的权限。空间策略可以很好补充ACL访问策略,授权的权限更多。空间策略使用JSON文件来表示。下面为一个空间策略的例子,允许账户ID为11123的用户可以对mybucket和mybucket下所有文件做任何操作。

    {
    "Version":"2008-10-17",
    "Statement":[{
       "Sid":"1",
       "Effect":"Allow",
       "Principal":{"KSC":["krn:ksc:iam:::11123:root"]},
       "Action":["ks3:*"], 
       "Resource":["krn:ksc:ks3:::mybucket","krn:ksc:ks3:::mybucket/*"]
    }]
    }
  • 用户策略 (User Policy)

用户可以使用 身份与访问控制中心 (IAM) 管理对 KS3 资源的访问权 限。使用 IAM,用户可以在主账户中创建 子用户(IAM 用户)、组和角色,并通过附加访问策略授予它们对KS3资源的访问权限。

{
    "Version":"2015-11-01",
    "Statement":[{
    "Effect":"Allow",
    "Action":["ks3:*"],
    "Resource":["krn:ksc:ks3:::mybucket","krn:ksc:ks3:::mybucket/*"]
    }]
}

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

立即注册