如果视频点播的系统权限策略不能满足您的需求,您可以通过创建自定义权限策略实现精细化权限管理。
前提条件
阅读本文前,请确保您已了解火山引擎访问管理的核心概念,详见账号与授权概述。
创建方式
- 通过脚本编辑模式:提供 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"
]
}
]
}
|