注意:在给子用户或协作者授予 API 操作权限时,请务必根据业务需要,按照最小权限原则进行授权。如果你直接授予子用户或者协作者所有资源(resource:*),或所有操作(action:*)权限,则存在由于权限范围过大导致数据安全风险。
一、概述
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 | 约束条件,可以不填,具体说明请参见 condition 说明。 |
有关 CI 的 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
数据万象 SDK 提供了完整的临时密钥使用 Demo、集成服务接口、计算签名等能力。你可通过 SDK 方便快捷地调用接口,点此查看 SDK 文档。