如果視頻點播的系統權限策略不能滿足您的需求,您可以通過創建自定義權限策略實現精細化權限管理,例如僅允許指定用戶訪問視頻點播中的資源、僅授予使用媒體審核的權限等。
創建方式
RAM提供所見即所得的可視化編輯界面,您只需選擇效果、云服務、操作、資源和條件,就可以生成自定義權限策略。同時,提供的智能校驗功能,幫助您提高權限策略的正確性和有效性。該方式操作簡單,易于上手。
RAM提供JSON腳本編輯界面,您需要按照權限策略語法和結構編寫自定義權限策略。該方式使用靈活,適用于對權限策略語法比較熟悉的用戶。
基于長期的業務實踐,RAM提供了常見場景的權限策略模板。例如:系統管理員、財務人員、網絡管理員等。您只需要導入合適的權限策略模板,然后基于模板進行簡單修改,就能一鍵輕松創建自定義策略。
您可以通過導入一個系統策略模板,然后基于規范化的系統策略模板修改適合實際業務的內容,更加方便快捷地創建自定義權限策略。
如何創建
下述示例以腳本配置方式舉例說明。
前提條件
當采用腳本配置方式自定義授權時,請務必先了解權限策略的基本元素和語法結構,請參見權限策略基本元素和權限策略語法和結構。
操作步驟
使用阿里云賬號(主賬號)或具有管理權限的RAM用戶登錄RAM控制臺。
在左側導航欄,選擇 。
在權限策略頁面,單擊創建權限策略。
在創建權限策略頁面,單擊腳本編輯頁簽。
輸入權限策略內容,然后單擊繼續編輯基本信息。
關于權限策略語法結構的詳情,請參見權限策略語法和結構。
輸入權限策略名稱和備注。
檢查并優化權限策略內容。
基礎權限策略優化
系統會對您添加的權限策略語句自動進行基礎優化?;A權限策略優化會完成以下任務:
刪除不必要的條件。
刪除不必要的數組。
可選:高級權限策略優化
您可以將鼠標懸浮在可選:高級策略優化上,單擊執行,對權限策略內容進行高級優化。高級權限策略優化功能會完成以下任務:
拆分不兼容操作的資源或條件。
收縮資源到更小范圍。
去重或合并語句。
單擊確定。
自定義權限策略內容示例
下述示例中Action
下列舉的API操作名稱請從視頻點播API概覽或對象存儲OSS API概覽中獲取。
禁止上傳Object ACL權限為公共讀的文件到OSS自有Bucket中
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"oss:PostObject",
"oss:CopyObject",
"oss:AppendObject",
"oss:InitiateMultipartUpload",
"oss:MultipartUpload",
"oss:UploadPart",
"oss:UploadPartCopy",
"oss:PutObjectAcl",
"oss:PutObject"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"oss:x-oss-object-acl": [
"public-read-write",
"public-read"
]
}
}
}
]
}
只允許IP來源為192.168.XX.XX的請求者訪問播放接口
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:GetPlayInfo",
"vod:GetVideoPlayAuth",
"vod:GetVideoPlayInfo",
"vod:GetVideoInfo"
],
"Resource": "*",
"Effect": "Allow",
"Condition":
{
"IpAddress":
{
"acs:SourceIp": "192.168.XX.XX"
}
}
}
]
}
授予使用媒體審核的權限
為保證權限完整性,當媒體審核功能的API分組下增加了新的接口時,您需要同步更新下述示例中的Action
列表。
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:SetAuditSecurityIp",
"vod:ListAuditSecurityIp",
"vod:CreateAudit",
"vod:GetAuditHistory",
"vod:SubmitAIMediaAuditJob",
"vod:GetAIMediaAuditJob",
"vod:GetMediaAuditResult",
"vod:GetMediaAuditResultDetail",
"vod:GetMediaAuditResultTimeline"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
授予使用云剪輯的權限
為保證權限完整性,當媒體審核功能的API分組下增加了新的接口時,您需要同步更新下述示例中的Action
列表。
{
"Version": "1",
"Statement": [
{
"Action": [
"vod:ProduceEditingProjectVideo",
"vod:AddEditingProject",
"vod:UpdateEditingProject",
"vod:DeleteEditingProject",
"vod:GetEditingProject",
"vod:SearchEditingProject",
"vod:SetEditingProjectMaterials",
"vod:GetEditingProjectMaterials"
],
"Resource": "*",
"Effect": "Allow"
}
]
}