You need to enable JavaScript to run this app.
导航
创建自定义权限策略
最近更新时间:2025.02.14 15:42:50首次发布时间:2024.07.29 11:18:54

如果视频点播的系统权限策略不能满足您的需求,您可以通过创建自定义权限策略实现精细化权限管理。

前提条件

阅读本文前,请确保您已了解火山引擎访问管理的核心概念,详见账号与授权概述

创建方式

  • 通过可视化编辑器创建:提供所见即所得的可视化编辑界面。您无需深入了解策略语法,仅需在界面中配置效果、服务、操作、资源、条件等策略内容,系统即可自动生成自定义权限策略。该方式操作简单,易于上手。
  • 通过 JSON 编辑器创建:提供 JSON 脚本编辑界面,您需要按照权限策略语法和结构编写自定义权限策略。该方式使用灵活,适用于对权限策略语法比较熟悉的用户。
  • 导入系统预设策略后修改:您可以导入一个系统预设策略,然后基于规范化的系统策略模板修改适合实际业务的内容,更加方便快捷地创建自定义权限策略。

通过可视化编辑器创建

  1. 登录访问控制控制台
  2. 单击左侧导航栏策略管理
  3. 单击新建自定义策略
  4. 输入策略名称和备注。
  5. 可视化编辑器页签下,配置权限声明。一个自定义策略中可包含一个或多个权限声明。如需多条权限声明,可单击添加权限声明
    Image
    • 效果:(必填)选择允许拒绝
    • 服务:(必填)选择希望授权的云产品或云服务。您可搜索并选择视频点播(vod)
    • 操作:(必填)选择全部操作指定操作。系统会根据您上一步选择的服务,自动匹配可配置的操作。如果您选择了指定操作,还需继续选择具体的操作。
    • 资源:(必填)选择全部资源指定资源。系统会根据您上一步选择的服务和操作,自动匹配可配置的资源类型。如果您选择了指定资源,还需继续配置具体资源的 TRN。

    注意

    • 视频点播暂不支持配置条件。
    • 在配置权限声明过程中,您也可根据需求切换 JSON 编辑器,根据策略语法规则编写对应的策略,系统会自动将可视化编辑器内的选项内容同步至 JSON 编辑器。反之,您在 JSON 编辑器中编写的策略内容,系统也会自动同步至可视化编辑器。
  6. 单击提交

通过 JSON 编辑器创建

  1. 登录访问控制控制台
  2. 单击左侧导航栏策略管理
  3. 单击新建自定义策略
  4. 输入策略名称和备注。
  5. 单击 JSON 编辑器页签,输入策略内容。策略语法的详细说明,请见下方策略语法规范
    Image
  6. 单击提交

策略语法规范

火山引擎访问控制权限策略通过 JSON 格式的 PolicyDocument 表达,由以下几个元素组成:

元素名

说明

Statement

策略声明,对策略语句进行封装。

说明

更多介绍,请见权限声明 (Statement)

Effect

指定策略所产生的结果是 “允许” 还是 “显式拒绝”,可选项为:

  • Allow(允许)
  • Deny(拒绝)

说明

更多介绍,请见效果 (Effect)

Action

指定具体的操作,与云服务 API 的 Action 含义相同,因此在描述 Action 时需要添加前缀指定所属的云服务,Action 部分支持使用 *? 两种通配符。视频点播服务的前缀为 vod

说明

更多介绍,请见操作 (Action)

Resource

指定 Action 作用的资源。资源以 Trn 的形式配置,格式为:trn: {service}:{region}:{account}:{resourceType}/{spaceName},其中:

  • trn:固定前缀
  • {service}:云服务代码。视频点播固定为 vod
  • {region}:资源所在的地域。对于不区分地域的全局资源,此参数值为空。
  • {account}:资源所属的火山引擎账号 ID,可在火山引擎控制台右上角获取。
  • {resourceType}:资源类型。对于视频点播,可设为 space(空间)。
  • {spaceName}:视频点播空间名称。

说明

更多介绍,请见资源 (Resource)

自定义权限策略内容示例

说明

下述示例中 Action 下列举的 API 操作名称,请从视频点播 API 列表获取。

策略名称示例

策略内容示例

${产品英文名}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 用户进行授权,具体操作请参见创建子账号并授权