全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

权限概述

最近更新时间:2022-11-07 17:00:34

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

资源拥有者可以选择通过编写访问策略授予他人访问权限。授予访问权限,指的是资源拥有者可以决定哪些资源、对什么人、在何种条件下、授予执行什么操作的权限。因此描述一个访问策略,通常包括四个元素:资源、被授权人、条件(非必需)、操作。下面依次说明访问策略的各个元素和具体的访问策略类型。

访问策略的元素

KS3资源

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

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

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

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

被授权人

  • 账户(主账户)

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

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

  • IAM用户(子用户)

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

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

  • 角色(Role)

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

  • 关于资源归属的说明

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

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

条件

在授予权限时指定的条件。访问请求只有在满足指定条件时,访问策略才可以生效。KS支持指定IP地址、指定请求中带有的请求头等条件设置。

资源操作

KS3 提供一系列针对KS3资源的API操作,详情请见API概览

访问策略

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

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/*"]
   }]
}

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

{
    "Version":"2015-11-01",
    "Statement":[{
    "Effect":"Allow",
    "Action":["ks3:*"],
    "Resource":["krn:ksc:ks3:::mybucket","krn:ksc:ks3:::mybucket/*"]
    }]
}
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈