当您使用智能媒体管理(IMM)提供的功能时,需要授予RAM用户相应权限。本文介绍在对象存储OSS上使用智能媒体管理需要的权限。
权限介绍
通过对象存储OSS的x-oss-process
或x-oss-async-process
API使用智能媒体管理(IMM)功能需要授予四种类型的权限,具体如下:
授予用户使用OSS进行数据处理的权限。
授予用户使用IMM对应数据处理功能的权限。
授予IMM服务访问OSS等其他服务的权限。
通过批处理和触发器进行数据处理时,授予IMM服务的权限。
OSS用户权限
您通过x-oss-process
或x-oss-async-process
使用智能媒体管理 (IMM) 数据处理功能需要被授予OSS权限。关于如何授权,请参见为RAM用户授权。
系统权限AliyunOSSFullAccess包含所有OSS权限。若希望自定义权限请确保包含以下OSS权限:
Action | 是否必须 | 策略描述 |
oss:GetObject | 是 | 读取文件(Object)的权限。 |
oss:ProcessImm | 是 | 通过OSS使用IMM进行数据处理的权限。 |
oss:PostProcessTask | 否 | 通过POST请求使用数据处理功能的权限,例如异步处理( |
oss:PutObject | 否 | 上传文件(Object)的权限。使用另存为( |
IMM用户权限
用户通过x-oss-process
或x-oss-async-process
使用智能媒体管理 (IMM) 数据处理功能还需要被授予IMM权限。关于如何配置权限,请参见为RAM用户配置权限。
系统权限AliyunIMMFullAccess包含所有IMM权限。若仅使用部分数据处理功能,也可参考下表仅授予对应功能的IMM权限:
数据处理操作 | 说明 | Action |
image/cropping | 图片自动裁剪 | imm:DetectImageCropping |
image/faces | 图片人脸检测 | imm:DetectImageFaces |
video/convert | 创建视频转码任务 | imm:CreateMediaConvertTask |
video/animation | 创建视频转动图任务 | imm:CreateMediaConvertTask |
video/sprite | 创建视频截雪碧图任务 | imm:CreateMediaConvertTask |
video/snapshots | 创建视频截帧任务 | imm:CreateMediaConvertTask |
video/concat | 创建视频拼接任务 | imm:CreateMediaConvertTask |
video/info | 视频信息提取 | imm:DetectMediaMeta |
audio/convert | 创建音频转码任务 | imm:CreateMediaConvertTask |
audio/concat | 创建音频拼接任务 | imm:CreateMediaConvertTask |
audio/info | 音频信息提取 | imm:DetectMediaMeta |
doc/convert | 文档转换 | imm:CreateOfficeConversionTask |
doc/edit | 文档编辑 | imm:GenerateWebofficeToken |
doc/preview | 文档预览 | imm:GenerateWebofficeToken |
doc/snapshot | 文档缩略图 | imm:CreateOfficeConversionTask |
pointcloud/compress | 点云压缩 | imm:CreateCompressPointCloudTask |
hls/m3u8 | 获取视频播放列表 | imm:GenerateVideoPlaylist |
hls/ts | 实时转码 | imm:LiveTranscoding |
由于每个Bucket必须要绑定一个IMM Project,创建Project时会指定一个ServiceRole(默认为AliyunIMMDefaultRole)。如果您使用RAM用户或RAM角色访问,则必须有该ServiceRole的PassRole权限。
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
}
IMM服务权限
智能媒体管理(IMM)进行数据处理时需要访问其他服务,例如:从OSS读取源文件、向OSS写入结果文件、数据处理任务结束时向MNS发送通知等时,您需要授予智能媒体管理(IMM)服务角色的权限。
一般情况下,默认服务角色在开通智能媒体管理时已经授予。若需要对服务角色权限进行缩小或调整,智能媒体管理 (IMM) 允许在创建IMM项目时设置服务角色。更多信息,请参见为项目配置服务角色。
批处理和触发器权限
使用批处理和触发器,您需要授权给IMM服务访问其他云资源(例如OSS)的权限。没有服务角色时,您可以在云资源访问授权页面创建默认角色。
常见授权示例
完全授权
RAM Policy将允许用户通过OSS访问数据处理所有功能,示例代码如下。
{
"Statement":[
{
"Effect":"Allow",
"Action":"oss:*",
"Resource":"*"
},
{
"Effect":"Allow",
"Action":"imm:*",
"Resource":"*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
}
],
"Version":"1"
}
授权特定的操作
RAM Policy将允许用户通过OSS访问特定Bucket的文档处理功能,示例代码如下。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:PutObject",
"oss:PostProcessTask",
"oss:ProcessImm"
],
"Resource": [
"acs:oss:*:*:bucketname1/*",
"acs:oss:*:*:bucketname2/*"
]
},
{
"Action": [
"imm:CreateOfficeConversionTask",
"imm:GetWebofficeURL"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
}
],
"Version": "1"
}
批处理和触发器服务角色权限
授权给IMM服务以访问OSS的权限,示例代码如下。
{
"Statement":[
{
"Action":[
"oss:Get*",
"oss:List*",
"oss:Process*",
"oss:PostProcess*",
"oss:Put*",
"oss:PutBucketInventory",
"oss:GetBucketInventory",
"oss:ListBucketInventory",
"oss:DeleteBucketInventory",
"oss:PutBucketNotification",
"oss:DeleteBucketNotification",
"oss:StartEventRecord",
"oss:StopEventRecord",
"oss:GetEventRecordStatus"
],
"Resource":"*",
"Effect":"Allow"
}
],
"Version":"1"
}