腾讯云实时音视频自定义策略_音视频解决方案_同尘科技
注意本文档主要介绍 实时音视频 TRTC 访问管理功能的相关内容,其他产品访问管理相关内容请参见 支持 CAM 的产品。在 TRTC 访问管理中使用 预设策略 来实现授权虽然方便,但权限控制粒度较粗,不能细化到 TRTC 应用 和 云 API 粒度。如果开发者要求精细的权限控制能力,则需要创建自定义策略。
自定义策略创建方法
自定义策略有多种创建方法,下方表格展示各种方法的对比,具体操作流程请参考下文。
创建入口 | 创建方法 | 效力 (Effect) | 资源 (Resource) | 操作 (Action) | 灵活性 | 难度 |
CAM 控制台 | 策略生成器 | 手动选择 | 语法描述 | 手动选择 | 中 | 中 |
CAM 控制台 | 策略语法 | 语法描述 | 语法描述 | 语法描述 | 高 | 高 |
CAM 服务端 API | CreatePolicy | 语法描述 | 语法描述 | 语法描述 | 高 | 高 |
说明TRTC不支持按产品功能或项目来创建自定义策略。手动选择指用户在控制台所展示的候选项列表中选择对象。语法描述指通过 授权策略语法 来描述对象。
授权策略语法
资源语法描述
如上文所述,TRTC 权限管理的资源粒度是应用级别。应用的策略语法描述方式遵循 CAM 资源描述方式。在下文的示例中,开发者的主账号 ID 是 12345678,开发者创建了三个应用:SDKAppID 分别是 1400000000,1400000001 和 1400000002。实时音视频所有应用的策略语法描述
"resource": [ "qcs::trtc::uin/12345678:sdkappid/*"]
单个应用的策略语法描述
"resource": [ "qcs::trtc::uin/12345678:sdkappid/1400000001"]
多个应用的策略语法描述
"resource": [ "qcs::trtc::uin/12345678:sdkappid/1400000000", "qcs::trtc::uin/12345678:sdkappid/1400000001"]
操作语法描述
如上文所述,实时音视频权限管理的操作粒度是云 API,详情请参见 可授权的资源及操作。在下文的示例中,以 DescribeAppStatList
(获取应用列表)、DescribeSdkAppInfo
(获取应用信息)等云 API 为例。实时音视频所有云 API 的策略语法描述
"action": [ "name/trtc:*"]
单个云 API 操作的策略语法描述
"action": [ "name/trtc:DescribeAppStatList"]
多个云 API 操作的策略语法描述
"action": [ "name/trtc:DescribeAppStatList", "name/trtc:DescribeTrtcAppAndAccountInfo"]
自定义策略使用示例
使用策略生成器
在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001这个实时音视频应用进行任何操作,除了 RemoveUser
这个服务端 API。1. 以腾讯云 主账号 的身份访问 CAM 控制台的策略,单击新建自定义策略。2. 选择按策略生成器创建,进入策略创建页面。3. 选择服务和操作。效果(Effect) 配置项选择允许。服务(Service) 配置项选择实时音视频。操作(Action) 配置项勾选所有项。资源(Resource) 配置项按照 资源语法描述 说明填写 qcs::trtc::uin/12345678:sdkappid/1400000001
。条件(Condition) 配置项无需配置。单击 添加声明,页面最下方会出现一条“允许对实时音视频应用1400000001进行任何操作”的声明。4. 在同个页面中继续添加另一条声明。效果(Effect) 配置项选择拒绝。服务(Service) 配置项选择实时音视频。操作(Action) 配置项勾选RemoveUser
(可通过搜索功能快速查找)。资源(Resource) 配置项按照 资源语法描述 说明填写 qcs::trtc::uin/12345678:sdkappid/1400000001
。条件(Condition)配置项无需配置。单击 添加声明,页面最下方会出现一条“拒绝对实时音视频应用1400000001进行 RemoveUser
操作”的声明。5. 单击下一步,按需修改策略名称(也可以不修改)。6. 单击完成即可完成自定义策略的创建。后续将该策略授予其他子账号的方法同 将 TRTC 全读写访问权限授予已存在的子账号。
使用策略语法
在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001和1400000002这两个实时音视频应用进行任何操作,但不允许对1400000001进行 RemoveUser
操作。1. 以腾讯云 主账号 的身份访问 CAM 控制台的策略,单击新建自定义策略。2. 选择按策略语法创建,进入策略创建页面。3. 在选择模板类型框下选择空白模板。说明 策略模板,指新策略是现有策略(预置策略或自定义策略)的一个拷贝,然后在此基础上做调整。在实际使用中,开发者可以根据情况选择合适的策略模板,降低编写策略内容的难度和工作量。4. 单击下一步,按需修改策略名称(也可以不修改)。5. 在编辑策略内容 编辑框中填写策略内容。本示例的策略内容为:
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "name/trtc:*" ], "resource": [ "qcs::trtc::uin/12345678:sdkappid/1400000001", "qcs::trtc::uin/12345678:sdkappid/1400000002" ] }, { "effect": "deny", "action": [ "name/trtc:RemoveUser" ], "resource": [ "qcs::trtc::uin/12345678:sdkappid/1400000001" ] } ]}
说明策略内容需遵循 CAM 策略语法逻辑,其中资源和操作两个元素的语法请参见上文 资源语法描述 和 操作语法描述 所述。6. 单击创建策略 完成自定义策略的创建。后续将该策略授予其他子账号的方法同 将 TRTC 全读写访问权限授予已存在的子账号。
使用 CAM 提供的服务端 API
对于大多数开发者来说,在控制台完成权限管理操作已经能满足业务需求。但如果需要将权限管理能力自动化和系统化,则可以基于服务端 API 来实现。
策略相关的服务端 API 属于 CAM,具体请参见 CAM 官网文档。此处仅列出几个主要接口:创建策略删除策略绑定策略到用户解除绑定到用户的策略
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?