用户策略(User Policy)

最近更新时间:2021-08-26 19:23:15

查看PDF

用户策略(User Policy)是基于用户的授权策略。通过设置用户策略,您可以集中管理您的用户,以及控制用户可以访问您名下哪些资源的权限,用户策略包含以下几个元素:

  • Effect:当用户请求特定操作(可以是允许或拒绝)时的效果。如果没有显式授予(允许)对资源的访问权限,则说明此条策略不生效。也可显式拒绝对资源的访问,这样可确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也是如此。
  • 资源:存储空间(Bucket)、对象(Object)以及相对应的子资源。
  • 操作:对于每个资源,所支持的一组操作。
  • 指定条件:在授予权限时指定的条件。访问请求只有在满足指定条件时,访问策略才可以生效。

下面是一条用户策略示例。此策略允许对 examplebucket 存储桶具有ks3:listbucket和ks3:getobject的权限。创建完此策略后,将策略授权给子用户,子用户就拥有了相对应的权限。其他示例请参阅用户权限示例

{
    "Version":"2015-11-01",
    "Statement": [
    {
        "Sid":"1",
        "Effect":"Allow",
        "Action":[
            "ks3:ListBucket",
            "ks3:GetObject"
        ],
        "Resource":["krn:ksc:ks3:::examplebucket","krn:ksc:ks3:::examplebucket/*"]
    }
   ]
}

注意:和空间策略(Bucket policy)不同,用户策略中不必指定被授权人,因为用户策略直接附加到特定用户。

在策略中指定资源

在KS3中,使用资源名称(KRN)来标识资源,KRN的格式如下:

krn:ksc:ks3:::bucketname
krn:ksc:ks3:::bucketname/keyname

其中bucketname表示存储空间名称,keyname表示对象/文件(Object)的名称,支持通配符*(匹配多个字符)和?(匹配单个字符)。

以下为 KS3 资源KRN的示例:

  • 该KRN表示 mybucket 存储桶
krn:ksc:ks3:::mybucket

在策略中指定被授权人

用户策略中不必指定,因为用户策略直接附加到特定用户。如何将自定义策略授权给IAM子用户或用户组或角色,请参照访问控制

在策略中指定权限

KS3在策略中指定的一组权限。每一个权限,都会映射到特定 KS3 操作。权限分为Service级别操作、Bucket级别操作以及Object级别的操作。各API接口功能描述的更多信息,请参见API概览

Service级别

Service级别操作对应的是ks3:ListBuckets,用来列举所有属于该用户的Bucket列表。

权限关键字 对应的KS3操作
ks3:ListBuckets 查询Bucket列表

注意:
ListBuckets是服务级别的操作,与Bucket级别ListBucket不同,ListBuckets能查看到所有的Bucket列表,但不能看到Bucket中具体的Object内容,而ListBucket可以看到Bucket下的Object信息。

Bucket级别

Bucket级别操作的对象均为Bucket,权限关键字与对应的操作如下:

权限关键字 对应的KS3操作
ks3:GetBucketLocation 查询Bucket归属region
ks3:PutBucket 新建Bucket
ks3:DeleteBucket 删除Bucket
ks3:ListBucket 列举Bucket下的文件和查询bucket信息
ks3:GetBucketAcl 获取Bucket的ACL信息
ks3:PutBucketAcl 设置Bucket的ACL信息
ks3:PutBucketPolicy 创建Bucket的空间策略信息
ks3:GetBucketPolicy 获取Bucket的空间策略信息
ks3:DeleteBucketPolicy 删除Bucket的空间策略信息
ks3:GetBucketCORS 获取Bucket的CORS配置信息
ks3:PutBucketCORS 设置Bucket的CORS
ks3:DeleteBucketMirror 删除(清空)Bucket回源规则
ks3:GetBucketMirror 获取Bucket的CORS配置信息
ks3:PutBucketMirror 设置Bucket回源规则

Object级别

Object级别操作的对象均为Object,权限关键字与对应的操作如下:

权限关键字 对应的KS3操作
ks3:PutObject 上传文件,包含post、PUT和分块上传
ks3:DeleteObject 删除文件
ks3:GetObject GET Object 和 HEAD Object
ks3:GetObjectAcl 获取文件的ACL信息
ks3:PutObjectAcl 设置文件的ACL
ks3:ListBucketMultipartUploads 列出分段上传
ks3:ListMultipartUploadParts 列出分段
ks3:AbortMultipartUpload 取消分块上传
ks3:PutBucketLifecycle 创建生命周期管理规则
ks3:DeleteBucketLifecycle 删除生命周期管理规则
ks3:GetBucketLifecycle 查看生命周期管理规则
ks3:PostObjectRestore 解冻归档文件
ks3:PutObjectTagging 添加/更新对象的标签
ks3:GetObjectTagging 查询对象的标签
ks3:DeleteObjectTagging 删除对象的标签

在策略中指定条件

访问策略语言可使您在授予权限时指定条件。在 Condition 元素(或 Condition 块)中,可以指定策略生效的条件。

KS3支持的Condition如下:

Condition 功能
ksc:SourceIp 指定IP地址

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈