全部產品
Search
文件中心

Object Storage Service:許可權

更新時間:Dec 27, 2024

當您使用Intelligent Media Management(IMM)提供的功能時,需要授予RAM使用者相應許可權。本文介紹在Object Storage Service上使用Intelligent Media Management需要的許可權。

許可權介紹

通過Object Storage Service的x-oss-processx-oss-async-processAPI使用Intelligent Media Management(IMM)功能需要授予四種類型的許可權,具體如下:

  • 授予使用者使用OSS進行資料處理的許可權。

  • 授予使用者使用IMM對應資料處理功能的許可權。

  • 授予IMM服務訪問OSS等其他服務的許可權。

  • 通過批處理和觸發器進行資料處理時,授予IMM服務的許可權。

OSS使用者權限

您通過x-oss-processx-oss-async-process使用Intelligent Media Management (IMM) 資料處理功能需要被授予OSS許可權。關於如何授權,請參見為RAM使用者授權。 系統許可權AliyunOSSFullAccess包含所有OSS許可權。若希望自訂許可權請確保包含以下OSS許可權:

Action

是否必須

策略描述

oss:GetObject

讀取檔案(Object)的許可權。

oss:ProcessImm

通過OSS使用IMM進行資料處理的許可權。

oss:PostProcessTask

通過POST請求使用資料處理功能的許可權,例如非同步處理(x-oss-async-process)。

oss:PutObject

上傳檔案(Object)的許可權。使用另存新檔(sys/saveas) 時請添加此許可權。

IMM使用者權限

使用者通過x-oss-processx-oss-async-process使用Intelligent Media Management (IMM) 資料處理功能還需要被授予IMM許可權。關於如何配置許可權,請參見為RAM使用者配置許可權

系統許可權AliyunIMMFullAccess包含所有IMM許可權。若僅使用部分資料處理功能,也可參考下表僅授予對應功能的IMM許可權:

資料處理操作

說明

Action

image/cropping

圖片自動裁剪

imm:DetectImageCropping

image/faces

圖片臉部偵測

imm:DetectImageFaces

video/convert

建立視頻轉碼任務

imm:CreateMediaConvertTask

video/animation

建立視頻轉動圖任務

imm:CreateMediaConvertTask

video/sprite

建立視頻截雪碧圖任務

imm:CreateMediaConvertTask

video/snapshots

建立視頻截幀任務

imm:CreateMediaConvertTask

video/concat

建立視頻拼接任務

imm:CreateMediaConvertTask

video/info

視頻資訊提取

imm:DetectMediaMeta

audio/convert

建立音頻轉碼任務

imm:CreateMediaConvertTask

audio/concat

建立音頻拼接任務

imm:CreateMediaConvertTask

audio/info

音頻資訊提取

imm:DetectMediaMeta

doc/convert

文檔轉換

imm:CreateOfficeConversionTask

doc/edit

文檔編輯

imm:GenerateWebofficeToken

doc/preview

文檔預覽

imm:GenerateWebofficeToken

doc/snapshot

文檔縮圖

imm:CreateOfficeConversionTask

pointcloud/compress

點雲壓縮

imm:CreateCompressPointCloudTask

hls/m3u8

擷取視頻播放清單

imm:GenerateVideoPlaylist

hls/ts

即時轉碼

imm:LiveTranscoding

由於每個Bucket必須要綁定一個IMM Project,建立Project時會指定一個ServiceRole(預設為AliyunIMMDefaultRole)。如果您使用RAM使用者或RAM角色訪問,則必須有該ServiceRole的PassRole許可權。

{
   "Effect": "Allow",
   "Action": "ram:PassRole",
   "Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"  
}

IMM服務許可權

Intelligent Media Management(IMM)進行資料處理時需要訪問其他服務,例如:從OSS讀取源檔案、向OSS寫入結果檔案、資料處理任務結束時向MNS發送通知等時,您需要授予Intelligent Media Management(IMM)服務角色的許可權。

一般情況下,預設服務角色在開通Intelligent Media Management時已經授予。若需要對服務角色許可權進行縮小或調整,Intelligent Media Management (IMM) 允許在建立IMM專案時設定服務角色。更多資訊,請參見為專案佈建服務角色

批處理和觸發器許可權

使用批處理和觸發器,您需要授權給IMM服務訪問其他雲資源(例如OSS)的許可權。沒有服務角色時,您可以在雲資源訪問授權頁面建立預設角色。

關於如何為批處理添加服務角色,請參見批處理。關於如何為觸發器添加服務角色,請參見觸發器

常見授權樣本

完全授權

RAM Policy將允許使用者通過OSS訪問資料處理所有功能,範例程式碼如下。

{
    "Statement":[
        {
            "Effect":"Allow",
            "Action":"oss:*",
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":"imm:*",
            "Resource":"*"
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
        }
    ],
    "Version":"1"
}

授權特定的操作

RAM Policy將允許使用者通過OSS訪問特定Bucket的文檔處理功能,範例程式碼如下。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:PutObject",
                "oss:PostProcessTask",
                "oss:ProcessImm"
            ],
            "Resource": [
                "acs:oss:*:*:bucketname1/*",
                "acs:oss:*:*:bucketname2/*"
            ]
        },
        {
            "Action": [
                "imm:CreateOfficeConversionTask",
                "imm:GetWebofficeURL"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
        }
    ],
    "Version": "1"
}

批處理和觸發器服務角色許可權

授權給IMM服務以訪問OSS的許可權,範例程式碼如下。

{
    "Statement":[
        {
            "Action":[
                "oss:Get*",
                "oss:List*",
                "oss:Process*",
                "oss:PostProcess*",
                "oss:Put*",
                "oss:PutBucketInventory",
                "oss:GetBucketInventory",
                "oss:ListBucketInventory",
                "oss:DeleteBucketInventory",
                "oss:PutBucketNotification",
                "oss:DeleteBucketNotification",
                "oss:StartEventRecord",
                "oss:StopEventRecord",
                "oss:GetEventRecordStatus"
            ],
            "Resource":"*",
            "Effect":"Allow"
        }
    ],
    "Version":"1"
}