如果视频点播的系统权限策略不能满足您的需求,您可以通过创建自定义权限策略实现精细化权限管理,例如仅允许指定用户访问视频点播中的资源、仅授予使用媒体审核的权限等。
创建方式
RAM提供所见即所得的可视化编辑界面,您只需选择效果、云服务、操作、资源和条件,就可以生成自定义权限策略。同时,提供的智能校验功能,帮助您提高权限策略的正确性和有效性。该方式操作简单,易于上手。
RAM提供JSON脚本编辑界面,您需要按照权限策略语法和结构编写自定义权限策略。该方式使用灵活,适用于对权限策略语法比较熟悉的用户。
基于长期的业务实践,RAM提供了常见场景的权限策略模板。例如:系统管理员、财务人员、网络管理员等。您只需要导入合适的权限策略模板,然后基于模板进行简单修改,就能一键轻松创建自定义策略。
您可以通过导入一个系统策略模板,然后基于规范化的系统策略模板修改适合实际业务的内容,更加方便快捷地创建自定义权限策略。
如何创建
下述示例以脚本配置方式举例说明。
前提条件
当采用脚本配置方式自定义授权时,请务必先了解权限策略的基本元素和语法结构,请参见权限策略基本元素和权限策略语法和结构。
操作步骤
使用阿里云账号(主账号)或具有管理权限的RAM用户登录RAM控制台。
在左侧导航栏,选择 。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
输入权限策略内容,然后单击继续编辑基本信息。
关于权限策略语法结构的详情,请参见权限策略语法和结构。
输入权限策略名称和备注。
检查并优化权限策略内容。
基础权限策略优化
系统会对您添加的权限策略语句自动进行基础优化。基础权限策略优化会完成以下任务:
删除不必要的条件。
删除不必要的数组。
可选:高级权限策略优化
您可以将鼠标悬浮在可选:高级策略优化上,单击执行,对权限策略内容进行高级优化。高级权限策略优化功能会完成以下任务:
拆分不兼容操作的资源或条件。
收缩资源到更小范围。
去重或合并语句。
单击确定。
自定义权限策略内容示例
下述示例中Action
下列举的API操作名称请从视频点播API概览或对象存储OSS API概览中获取。
禁止上传Object ACL权限为公共读的文件到OSS自有Bucket中
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"oss:PostObject",
"oss:CopyObject",
"oss:AppendObject",
"oss:InitiateMultipartUpload",
"oss:MultipartUpload",
"oss:UploadPart",
"oss:UploadPartCopy",
"oss:PutObjectAcl",
"oss:PutObject"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"oss:x-oss-object-acl": [
"public-read-write",
"public-read"
]
}
}
}
]
}
只允许IP来源为192.168.XX.XX的请求者访问播放接口
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:GetPlayInfo",
"vod:GetVideoPlayAuth",
"vod:GetVideoPlayInfo",
"vod:GetVideoInfo"
],
"Resource": "*",
"Effect": "Allow",
"Condition":
{
"IpAddress":
{
"acs:SourceIp": "192.168.XX.XX"
}
}
}
]
}
授予使用媒体审核的权限
为保证权限完整性,当媒体审核功能的API分组下增加了新的接口时,您需要同步更新下述示例中的Action
列表。
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:SetAuditSecurityIp",
"vod:ListAuditSecurityIp",
"vod:CreateAudit",
"vod:GetAuditHistory",
"vod:SubmitAIMediaAuditJob",
"vod:GetAIMediaAuditJob",
"vod:GetMediaAuditResult",
"vod:GetMediaAuditResultDetail",
"vod:GetMediaAuditResultTimeline"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
授予使用云剪辑的权限
为保证权限完整性,当媒体审核功能的API分组下增加了新的接口时,您需要同步更新下述示例中的Action
列表。
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:ProduceEditingProjectVideo",
"vod:AddEditingProject",
"vod:UpdateEditingProject",
"vod:DeleteEditingProject",
"vod:GetEditingProject",
"vod:SearchEditingProject",
"vod:SetEditingProjectMaterials",
"vod:GetEditingProjectMaterials"
],
"Resource": "*",
"Effect": "Allow"
}
]
}