用户策略

最近更新时间:2024-11-06 09:45:32

我的收藏
腾讯云主账户可以在 访问管理(Cloud Access Management,CAM) 控制台创建 CAM 用户,并关联策略,授予 CAM 用户使用腾讯云资源的权限。

概述

用户可以在 CAM 中,对于主账号名下的不同类型用户,授予不同的权限。这些权限通过访问策略语言描述,并以用户为出发点进行授权,因此被称为用户策略

用户策略与存储桶策略的区别

用户策略与存储桶策略的最大差别是:用户策略只描述效力(Effect)、操作(Action)、资源(Resource)和条件(Condition,可选),不描述身份(Principal)。因此,用户策略的使用方式为:
用户策略需要撰写完成后,再对子用户、用户组或角色执行关联操作。
用户策略不支持将操作和资源权限授予匿名用户

预设策略和自定义策略

用户策略包括两类,预设策略和自定义策略,您可以使用 预设策略进行关联授权,也可以 自行撰写用户策略 再进行关联授权,详见访问管理的 授权指南

适用场景

当您关心用户能做什么,推荐用户策略时,可通过查找 CAM 用户,并检查其所属用户组的权限来了解用户能做什么。推荐场景有:
要配置对象存储(Cloud Object Storage,COS)服务级权限时,例如创建桶(PutBucket)、列举桶(GetService)。
需要使用主账号下所有 COS 桶和对象。
要对主账号下的大量 CAM 用户授予相同权限。

用户策略语法

策略语法

和存储桶策略一样,用户策略使用 JSON 语言描述,遵循 访问策略语言 的统一规范(委托人、效力、操作、资源、条件等)。但由于用户策略是直接关联到用户/用户组上的,因此用户策略不需要填写委托人(Principal)。
下表是用户策略和存储桶策略的区别对比:
元素
用户策略
存储桶策略
委托人
不填
必填
效力
必填
必填
操作
必填
必填
资源
必填
该存储桶内资源
条件
选填
选填

策略示例

以下是一个典型的用户策略示例,策略含义为:授权位于广州的存储桶 examplebucket-1250000000 所有 COS 操作的策略。您需要将策略保存后再关联到 CAM 子用户、用户组或角色方可生效:
{
"Statement": [
{
"Effect": "Allow",
"Action": ["cos:*"],
"Resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*",
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/"
]
}
],
"Version": "2.0"
}

通过用户策略授权子账号访问 COS

前提条件

已创建 CAM 子账号,创建方法可参考 创建子账号

配置步骤

CAM 提供了 预设策略和自定义策略。预设策略为 CAM 提供的系统预设策略,COS 相关策略见 预设策略;自定义策略支持用户自定义资源、操作等元素,更加灵活。下面说明如何新建一个自定义策略,为子账户授权:
1. 登录 CAM 控制台
2. 选择策略 > 新建自定义策略 > 按策略语法创建,进入策略创建页面。
3. 您可按照实际需求选择空白模板 自定义授权策略,或选择与 COS 相关联的系统模板。这里以选择空白模板为例。
4. 选择空白模板,输入您的策略语法。需要包括以下基本元素:
resource:授权资源
所有资源("*"
指定存储桶("qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*")
存储桶内指定目录或对象("qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/test/*")
action:授权操作
effect:效力。选择 "allow" (允许)或 "deny"(拒绝)。
condition:生效条件。可选项。
COS 提供了用户策略示例,您也可以参考以下文档,直接将策略内容复制粘贴到策略内容编辑框内,确认输入无误后单击完成即可。
5. 创建完成后,您可在 CAM 控制台策略 > 自定义策略中查看已创建的自定义策略,并将策略关联到子账号。
6. 勾选子账号并单击确定授权后,即可使用子账号访问所限定的 COS 资源。

预设策略

1. CAM 提供了一些预设策略,您可以在 CAM 控制台策略 > 预设策略中查看,搜索“COS”筛选。
2. 单击策略名,进入策略语法 > JSON 查看具体的策略内容。预设策略的资源(resource)被设置为 COS 所有资源("*"),且不支持修改。若您需要对部分 COS 存储桶、对象授权,可以复制 JSON 的预设策略,创建 自定义策略


表1和表2列出了 CAM 提供的 COS 相关的预设策略及说明。
表1:COS 预设策略
预设策略
说明
JSON策略
QcloudCOSBucketConfigRead
拥有该权限的用户可以读取 COS 存储桶配置
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cos:GetBucket*",
"cos:HeadBucket"
],
"resource": "*"
}
]
}
QcloudCOSBucketConfigWrite
拥有该权限的用户可以修改 COS 存储桶配置
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cos:PutBucket*"
],
"resource": "*"
}
]
}
QcloudCOSDataFullControl
包含 COS 存储桶内数据读、写、删除、列出的访问权限
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cos:GetService",
"cos:GetBucket",
"cos:ListMultipartUploads",
"cos:GetObject*",
"cos:HeadObject",
"cos:GetBucketObjectVersions",
"cos:OptionsObject",
"cos:ListParts",
"cos:DeleteObject",
"cos:PostObject",
"cos:PostObjectRestore",
"cos:PutObject*",
"cos:InitiateMultipartUpload",
"cos:UploadPart",
"cos:UploadPartCopy",
"cos:CompleteMultipartUpload",
"cos:AbortMultipartUpload",
"cos:DeleteMultipleObjects"
],
"resource": "*"
}
]
}
表2:COS 操作与预设策略的关系
说明
操作
QcloudCOS
Bucket
ConfigRead
QcloudCOS
Bucket
ConfigWrite
QcloudCOS
Data
FullControl
QcloudCOS
Data
ReadOnly
QcloudCOS
Data
WriteOnly
QcloudCOS
Full
Access
QcloudCOS
GetService
Access
QcloudCOS
ListOnly
QcloudCOS
Read
OnlyAccess
列举桶
GetService
创建桶
PutBucket
删除桶
DeleteBucket
获取桶基本信息
HeadBucket
获取桶的配置项
GetBucket*
修改桶的配置项
PutBucket*
获取桶的访问权限
GetBucketAcl
修改桶的访问权限
PutBucketAcl
列举桶内对象
GetBucket
列举桶内对象的所有版本
GetBucketObjectVersions
上传对象
PutObject
分块上传
ListParts
InitiateMultipartUpload
UploadPart
UploadPartCopy
CompleteMultipartUpload
AbortMultipartUpload
ListMultipartUploads
下载对象
GetObject
查看对象元数据
HeadObject
跨域(CORS)预检
OptionsObject

更多用户策略示例