分两个部分:
RAM子帐号权限
1.建立子帐号,生成AccessKeyID和AccessKeySecret
2.建立一个受权策略,能够上传和读取视频OSS的bucket
3.将管理视频点播的权限(AliyunVODFullAccess)、管理视频直播(Live)的权限(AliyunLiveFullAccess)、管理短视频生产平台(SVGP)的权限(AliyunSVGPFullAccess)、调用STS服务AssumeRole接口的权限(AliyunSTSAssumeRoleAccess)以及上面新建的受权策略受权给这个子帐号php
临时用户权限
1.建立角色
2.将视频点播服务播放权限(AliyunVODPlayAuth)、只读访问视频直播的权限(AliyunLiveReadOnlyAccess)以及子帐号创建的受权策略一块儿给这个角色编程
示例:ide
1.阿里云https://ram.console.aliyun.com/,建立用户video-manager,描述名称就是视频管理,访问方式选择“编程访问”阿里云
2.建立帐号成功,保存下子帐号的key和密钥3d
3.进入视频点播控制台(https://vod.console.aliyun.com/),查看视频点播的OSS-bucket,而且记录下来,这里是baae800163e1a3b4a.oss-cn-shanghai.aliyuncs.com,可是咱们只要baae800163e1a3b4a和cn-shanghaicode
4.回到RAM权限控制台,选择“权限管理”---“权限策略管理”--“新增”,到了”新建自定义权限策略(https://ram.console.aliyun.com/policies/new)"视频
策略名称:video-upload-playblog
备注:视频点播,OSS临时用户权限接口
配置模式:选择“脚本配置”ci
策略内容以下:(注意baae800163e1a3b4a是OSS bucket的名称,按照你本身实际的状况来写,Action:我这里是所有权限)
{ "Statement": [ { "Action": "oss:*", "Effect": "Allow", "Resource": "acs:oss:*:*:baae800163e1a3b4a/*" } ], "Version": "1" }
5.给video-manager授予权限(https://ram.console.aliyun.com/users/video-manager),可直接“用户管理”--“用户”,点击“video-manager”,增长
AliyunSTSAssumeRoleAccess
AliyunLiveFullAccess
AliyunVODFullAccess
AliyunSVGPFullAccess
video-upload-play 自定义的受权策略
子帐号的权限已经弄好了
临时用户权限:
1.建立角色: 选择"阿里云帐号"
2.输入角色名称video-upload-play,备注为“视频上传播放角色”,选择云帐号“当前云帐号”
3.为角色受权
4.为角色受权,为角色增长之前权限
AliyunLiveReadOnlyAccess
AliyunVODPlayAuth
video-upload-play
5.获取ARN
<?php use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; //构建一个阿里云客户端,用于发起请求。 //构建阿里云客户端时须要设置AccessKey ID和AccessKey Secret。 AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>') ->regionId('cn-hangzhou') ->asDefaultClient(); //设置参数,发起请求。 try { $result = AlibabaCloud::rpc() ->product('Sts') // ->scheme('https') // https | http ->version('2015-04-01') ->action('AssumeRole') ->method('POST') ->host('sts.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => "cn-hangzhou", 'RoleArn' => "<RoleArn>", //这里填写上面获取到的Arn便可 'RoleSessionName' => "<RoleSessionName>", //这里随便填写,好比xxxxx ], ]) ->request(); print_r($result->toArray()); } catch (ClientException $e) { echo $e->getErrorMessage() . PHP_EOL; } catch (ServerException $e) { echo $e->getErrorMessage() . PHP_EOL; }
至此结束