如果视频点播的系统权限策略不能满足您的需求,您可以通过创建自定义权限策略实现精细化权限管理。
前提条件
阅读本文前,请确保您已了解火山引擎访问管理的核心概念,详见账号与授权概述。
创建方式
- 通过可视化编辑器创建:提供所见即所得的可视化编辑界面。您无需深入了解策略语法,仅需在界面中配置效果、服务、操作、资源、条件等策略内容,系统即可自动生成自定义权限策略。该方式操作简单,易于上手。
- 通过 JSON 编辑器创建:提供 JSON 脚本编辑界面,您需要按照权限策略语法和结构编写自定义权限策略。该方式使用灵活,适用于对权限策略语法比较熟悉的用户。
- 导入系统预设策略后修改:您可以导入一个系统预设策略,然后基于规范化的系统策略模板修改适合实际业务的内容,更加方便快捷地创建自定义权限策略。
通过可视化编辑器创建
- 登录访问控制控制台。
- 单击左侧导航栏策略管理。
- 单击新建自定义策略。
- 输入策略名称和备注。
- 在可视化编辑器页签下,配置权限声明。一个自定义策略中可包含一个或多个权限声明。如需多条权限声明,可单击添加权限声明。

- 效果:(必填)选择允许或拒绝。
- 服务:(必填)选择希望授权的云产品或云服务。您可搜索并选择视频点播(vod)。
- 操作:(必填)选择全部操作或指定操作。系统会根据您上一步选择的服务,自动匹配可配置的操作。如果您选择了指定操作,还需继续选择具体的操作。
- 资源:(必填)选择全部资源或指定资源。系统会根据您上一步选择的服务和操作,自动匹配可配置的资源类型。如果您选择了指定资源,还需继续配置具体资源的 TRN。
注意
- 视频点播暂不支持配置条件。
- 在配置权限声明过程中,您也可根据需求切换 JSON 编辑器,根据策略语法规则编写对应的策略,系统会自动将可视化编辑器内的选项内容同步至 JSON 编辑器。反之,您在 JSON 编辑器中编写的策略内容,系统也会自动同步至可视化编辑器。
- 单击提交。
通过 JSON 编辑器创建
- 登录访问控制控制台。
- 单击左侧导航栏策略管理。
- 单击新建自定义策略。
- 输入策略名称和备注。
- 单击 JSON 编辑器页签,输入策略内容。策略语法的详细说明,请见下方策略语法规范。

- 单击提交。
策略语法规范
火山引擎访问控制权限策略通过 JSON 格式的 PolicyDocument 表达,由以下几个元素组成:
元素名 | 说明 |
---|
Statement | 策略声明,对策略语句进行封装。 |
Effect | 指定策略所产生的结果是 “允许” 还是 “显式拒绝”,可选项为: |
Action | 指定具体的操作,与云服务 API 的 Action 含义相同,因此在描述 Action 时需要添加前缀指定所属的云服务,Action 部分支持使用 * 和 ? 两种通配符。视频点播服务的前缀为 vod 。 |
Resource | 指定 Action 作用的资源。资源以 Trn 的形式配置,格式为:trn: {service}:{region}:{account}:{resourceType}/{spaceName} ,其中: trn :固定前缀{service} :云服务代码。视频点播固定为 vod 。{region} :资源所在的地域。对于不区分地域的全局资源,此参数值为空。{account} :资源所属的火山引擎账号 ID,可在火山引擎控制台右上角获取。{resourceType} :资源类型。对于视频点播,可设为 space (空间)。{spaceName} :视频点播空间名称。
|
自定义权限策略内容示例
策略名称示例 | 策略内容示例 |
---|
${产品英文名}FullAccess
| 需要视频点播服务内全部 API 的权限。对于全部 API,可以直接用通配符 * 来表达。示例如下: {
"Statement": [
{
"Effect": "Allow",
"Action": [
"vod:*"
],
"Resource": [
"*"
]
}
]
}
|
${产品英文名}ReadOnlyAccess
| 仅包含服务内全部读接口的权限,而不包含写接口的权限。基于接口命名规范,数据读取接口命名以 List 和 Get 开头。示例如下: {
"Statement": [
{
"Effect": "Allow",
"Action": [
"vod:List*",
"vod:Get*"
],
"Resource": [
"*"
]
}
]
}
|
${产品英文名}${功能模块名或角色名}Access
| 需要包含指定模块内的接口的权限,可以使用通配符来表达重复的部分。例如接口名中间部分都包含 Resource 字段,因此可以这样来表达: {
"Statement": [
{
"Effect": "Allow",
"Action": [
"vod:*Resource*"
],
"Resource": [
"*"
]
}
]
}
|
${产品英文名}ProductFullAccess
| 仅允许访问指定空间: {
"Statement": [
{
"Effect": "Allow",
"Action": [
"vod:*"
],
"Resource": [
"trn:vod::21000xxxxx:space/1633341028192xxxxxx"
]
}
]
}
|
相关参考
创建自定义权限策略后,可为 IAM 用户进行授权,具体操作请参见创建子账号并授权。