注意
在给子用户或协作者授予 API 操作权限时,请务必根据业务需要,按照最小权限原则进行授权。如果您直接授予子用户或者协作者所有资源
(resource:*)
,或所有操作(action:*)
权限,则存在由于权限范围过大导致数据安全风险。概述
数据万象(Cloud Infinite,简称CI)使用临时密钥服务时,不同的 API 操作需要不同的操作权限,而且可以同时指定一个操作或一序列操作。
CI 的API 授权策略(policy)是一种 JSON 字符串。例如,授予 APPID 为1250000000,地域为 ap-beijing,存储桶为 examplebucket-1250000000 ,路径前缀为 doc 的媒体处理、文件压缩、文档预览任务创建操作的权限如下所示:
{"version": "2.0","statement": [{"action": [//创建文件处理任务"ci:CreateFileProcessJobs
",//创建文档预览任务"ci:CreateDocProcessJobs
",//创建媒体任务"ci:CreateMediaJobs
",],"effect": "allow","resource": ["qcs::ci:ap-beijing:uid/1250000000:bucket/examplebucket-1250000000/doc/*"]}]}
授权策略(policy)元素说明
名称 | 描述 |
version | 策略语法版本,默认为2.0。 |
effect | 有 allow (允许)和 deny (显式拒绝)两种情况。 |
resource | 授权操作的具体数据,可以是任意资源、指定路径前缀的资源、指定绝对路径的资源或它们的组合。 规则为: qcs::ci:{region}:uid/{appid}:bucket/{bucket}/{path} 列举几种典型的授权场景:
1、允许访问所有对象:"*"
2、允许访问指定的对象:"a/a1.txt", "b/b1.txt"
3、允许访问指定前缀的对象:"a*", "a/*", "b/*" 注意:若路径为中文,则保持中文输入即可。例如 examplebucket-1250000000/文件夹/文件名.txt 。 |
action | 此处是指 CI 的 API,根据需求指定一个或者一序列操作的组合或所有操作( * ),例如 action 为 ci:CreateMediaJobs ,请注意区分英文大小写。 |
condition |
Service API
媒体处理任务
以媒体转码接口为例,API 接口为
CreateMediaJobs
,若授予其操作权限,则策略的 action 为 ci:CreateMediaJobs
。 媒体任务中涉及到以下几种权限的接口 :
cos:GetObject 获取cos资源权限,
ci:CreateMediaJobs 创建任务,
ci:CreateMediaTemplate 创建模板,
ci:UpdateMediaTemplate 更新模板,
ci:DescribeMediaJob 任务查询,
ci:DescribeMediaJobs 任务列表查询,
ci:CancelMediaJob 任务取消。
示例
授予查询存储桶列表操作权限的策略详细内容如下:
{"version": "2.0","statement": [{"action": ["cos:GetObject
","ci:CreateMediaJobs
","ci:CreateMediaTemplate
","ci:UpdateMediaTemplate
","ci:DescribeMediaJob
","ci:DescribeMediaJobs
","ci:CancelMediaJob
"],"effect": "allow","resource": ["qcs::ci:ap-beijing:uid/1250000000:bucket/examplebucket-1250000000/*"]}]}
推荐使用 SDK