文档中心>数据万象>实践教程>API 授权策略使用指引

API 授权策略使用指引

最近更新时间:2024-10-28 16:06:21

我的收藏
注意
在给子用户或协作者授予 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
约束条件,可以不填,具体说明请参见 condition 说明。
有关 CI 的 API 授权策略,请参见 数据万象全局访问管理

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

数据万象 SDK 提供了完整的临时密钥使用 Demo、集成服务接口、计算签名等能力。您可通过 SDK 方便快捷地调用接口,点此查看 SDK 文档