视频点播会对每一次发起操作请求的用户身份进行验证,通过AccessKey验证该账号是否拥有相应的权限。视频点播支持主账号AK、RAM用户AK和STS临时AK,本文为您介绍这三种方式和对比,以及阿里云提供的系统授权策略。
账号权限验证
您可以使用视频点播(VOD)提供的API接口或SDK(包括接口、上传、播放和短视频SDK)开发包访问VOD。
VOD会针对每一次发起的请求,根据当前的操作验证用户身份,验证该账号是否拥有相应的权限。验证用户身份都需要使用AccessKey。
基本概念
访问控制(RAM)
RAM(Resource Access Management)是阿里云提供的用户身份管理与资源访问控制服务。更多信息,请参见什么是访问控制。
说明RAM服务提供的权限的分割和管理,而并非资源本身的隔离,也就是RAM用户从属于主账号,并且这些子账号下不能拥有实际的任何资源,所有资源都属于主账号。如果想要进行资源隔离,可配合使用点播多应用体系,更多信息,请参见多应用体系概述。
阿里云账号
阿里云账号是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。
RAM用户
根据阿里云的主账号创建的RAM用户,每个RAM用户拥有自己AccessKey,可以和阿里云主账号一样正常的完成有权限的操作。一般来说,这里的RAM用户可以理解为具有某种权限的用户,可以被认为是一个具有某些权限的操作发起者。
角色(Role)
表示某种操作权限的虚拟概念,但是没有独立的登录密码和AccessKey。RAM用户可以扮演角色,扮演角色的时候的权限是该角色自身的权限。
说明RAM用户和角色可以类比为个人和其身份的关系:某人在公司的角色是员工,在家里的角色是父亲,在不同的场景扮演不同的角色,但是还是同一个人。在扮演不同的角色的时候也就拥有对应角色的权限。单独的员工或者父亲概念并不能作为一个操作的实体,只有有人扮演了之后才是一个完整的概念。
这里还可以体现一个重要的概念,那就是角色可以被多个不同的个人同时扮演。完成角色扮演之后,该个人就自动拥有该角色的所有权限。
授权策略(RAM Policy)
授权策略使用语法结构描述一组权限,它可以精确地描述被授权的资源集、操作集以及授权条件。通过设置权限策略,并给用户或用户组附加授权,就可以精确控制用户访问您名下哪些资源或服务的权限,比如限制您的用户只拥有上传、播放或审核权限。
更多关于访问控制的概念,请参见基本概念。
AccessKey(访问密钥)
AccessKey(简称AK),包括访问身份验证中用到的AccessKey ID和AccessKey Secret。VOD通过使用AccessKey ID和AccessKey Secret对称加密的方法,来验证某个请求的发送者身份。
AccessKey ID:用于标识用户。
AccessKey Secret:用户用于加密签名字符串,以及VOD用来验证签名字符串的密钥,AccessKey Secret必须保密。
AK对:指AccessKey ID和AccessKey Secret。
目前访问VOD使用的AK有如下3种类型:
主账号AK
主账号AK特指VOD开通者(即阿里云网站注册的账号)的AK,每个阿里云主账号提供的AK对拥有的资源有完全的权限。每个阿里云主账号能够同时拥有不超过5个启用或者禁用 AK对。
您可以登录AccessKey管理控制台,申请新增或删除AK对。每个AK对都有启用/禁用两种状态,只有启用的AK对才能在身份验证时使用。
警告由于主账号AK对拥有的资源有完全的权限,一旦泄露,将存在巨大的安全风险或造成资损。不建议使用主账号AK访问VOD服务。
RAM用户AK
RAM是阿里云提供的资源访问控制服务。RAM用户AK指的是通过RAM被授权的AK。这组AK只能按照RAM定义的规则去访问VOD的资源。通过RAM,您可以集中管理您的用户(比如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。比如能够限制您的用户只拥有视频播放权限。RAM用户从属于主账号,并且这些账号下不能拥有实际的任何资源,所有资源都属于主账号。
您可以登录RAM访问控制台创建RAM用户,获取AK,并授予相应权限。
警告您需要根据实际需求授予RAM用户相应权限,防止过度授权而引发的安全风险。关于更细粒度的授权策略配置详情,请参见创建自定义权限策略。
STS临时AK
STS(Security Token Service)是阿里云提供的临时访问凭证服务。STS临时AK指的是通过STS颁发的带时效性AK。这组AK只能按照STS定义的规则去访问VOD的资源,且会定期失效。
不同验证方式的对比
验证方式 | 风险 | 权限 | 时效 | 适用场景 |
主账号AK | 极大 | 管理和操作VOD所有资源的权限 | 启用后一直有效 | 超级管理员进行操作,不建议在程序里使用,尤其不要放到客户端。 |
RAM用户AK | 较大 | 根据授权策略获得相应的权限 | 启用后一直有效 | 授权进行具体的上传、播放、管理等操作,可准备多个子账号,如遇AK泄露(人员离职等)需要更换;建议在服务端使用。 |
STS临时AK | 安全 | 根据授权策略获得相应的权限 | 自定义过期时间 | 移动端或Web端使用,需要自己部署服务端生成STS临时AK,要处理好临时AK失效的情况。 |
除了以上三种验证方式,还可以使用上传凭证、播放凭证解决媒体上传和播放过程中的授权和安全问题。凭证方式与STS方式的对比,请参见上传(播放)凭证和STS方式对比。
视频点播系统授权策略
VOD提供了四种系统授权策略,可对RAM用户或STS账号进行方便、精确的授权。
策略名称 | 说明 | 操作权限 |
AliyunVODFullAccess | 管理和操作VOD所有资源的权限 | VOD所有API |
AliyunVODReadOnlyAccess | 只读访问VOD所有资源的权限 | VOD所有读取类API,如以Get、Describe、Search、List开头的接口 |
AliyunVODPlayAuth | 使用VOD播放视频的权限,包括使用播放器SDK或播放相关的API | 播放API: |
AliyunVODUploadAuth | 使用VOD上传的权限,包括使用上传SDK或上传相关的API | 上传API: |
其他关联云产品授权策略
根据您的业务需要,您还可以对RAM用户或STS账号进行授予下面的业务关联权限。
策略名称 | 说明 | 操作权限 |
AliyunOSSFullAccess | 管理对象存储服务(OSS)权限 | 操作VOD存储相关内容,需要该权限。 |
AliyunMNSFullAccess | 管理轻量消息队列(原 MNS)的权限 | 使用VOD消息回调功能时,需要该权限。 |
AliyunKMSFullAccess | 管理密钥管理服务(KMS)的权限 | 使用VOD标准加密、私有加密功能时,需要该权限。 |
AliyunCDNFullAccess | 管理CDN的权限 | 使用点播CDN相关功能时,需要该权限。 |