Intelligent Media Management (IMM) の機能をRAMユーザーとして使用するには、RAMユーザーに必要な権限を付与する必要があります。 このトピックでは、Object Storage Service (OSS) でIMM機能を使用するために必要な権限について説明します。
権限の概要
ossのx-oss-processまたはx-OSS-async-process操作を使用してIMM機能にアクセスする場合、必要な権限を付与する必要があります。
RAMユーザーにOSSで操作を実行する権限を付与します。
RAMユーザーに、IMMの対応するデータ処理機能を使用する権限を付与します。
OSSおよびその他の関連サービスにアクセスする権限をIMMサービスに付与します。
バッチプロセッサまたはトリガーに基づいて、データ処理シナリオで必要な権限をIMMサービスに付与します。
OSSのアクセス権限をRAMユーザーに付与する
x-oss-processまたはx-oss-async-process操作に基づいてIMMのデータ処理機能をRAMユーザーとして使用するには、RAMユーザーに必要なOSSアクセス権限を付与する必要があります。 RAMユーザーに権限を付与する方法の詳細については、「RAMユーザーに権限を付与する」を参照してください。
システムポリシーまたはカスタムポリシーを使用して権限を付与できます。 システムポリシーAliyunOSSFullAccessは、OSSへのフルアクセスを許可します。 カスタムポリシーを使用してカスタム権限を付与する場合は、次の表に示す権限がポリシーに含まれていることを確認してください。
権限 | 必須 / 任意 | 説明 |
oss:GetObject | 可 | OSSオブジェクトへの読み取りアクセスを許可します。 |
oss:ProcessImm | 可 | OSSでIMMのデータ処理機能を使用できるようにします。 |
oss:PostProcessTask | 不可 | POSTメソッドを使用してデータ処理機能へのアクセスを許可します。 たとえば、この権限は |
oss:PutObject | 不可 | OSSへのデータのアップロードを許可します。 この権限は、データをOSS ( |
RAMユーザーにIMMのアクセス権限を付与する
x-oss-processまたはx-oss-async-process操作に基づいてIMMのデータ処理機能をRAMユーザーとして使用するには、RAMユーザーに必要なIMMアクセス権限を付与する必要があります。 権限の設定方法の詳細については、「RAMユーザーへの権限の付与」をご参照ください。
システムポリシーAliyunIMMFullAccessは、IMMへのフルアクセスを許可します。特定の機能のみが必要な場合は、カスタムポリシーを使用して必要な権限のみを付与できます。 次の表に、IMM操作に対応する権限を示します。
API 操作 | 説明 | 権限 |
画像 /トリミング | イメージを自動的にトリミングします。 | imm:DetectImageCropping |
イメージ /顔 | 画像内の顔を検出します。 | imm:DetectImageFaces |
ビデオ /変换 | ビデオをトランスコードします。 | imm:CreateMediaConvertTask |
ビデオ /アニメーション | ビデオからアニメーション画像を作成します。 | imm:CreateMediaConvertTask |
ビデオ /スプライト | ビデオからスプライトを生成します。 | imm:CreateMediaConvertTask |
ビデオ /スナップショット | ビデオからフレームをキャプチャします。 | imm:CreateMediaConvertTask |
ビデオ /concat | ビデオをマージします。 | imm:CreateMediaConvertTask |
ビデオ /情報 | ビデオ情報を抽出します。 | imm:DetectMediaMeta |
オーディオ /変换 | オーディオファイルをトランスコードします。 | imm:CreateMediaConvertTask |
オーディオ /concat | オーディオファイルをマージします。 | imm:CreateMediaConvertTask |
オーディオ /情報 | オーディオ情報を抽出します。 | imm:DetectMediaMeta |
doc/convert | ドキュメントを指定した形式に変換します。 | imm:CreateOfficeConversionTask |
doc/edit | ドキュメントを編集します。 | imm:GenerateWebofficeToken |
doc /プレビュー | ドキュメントをプレビューします。 | imm:GenerateWebofficeToken |
doc /スナップショット | ドキュメントのサムネイルを作成します。 | imm:CreateOfficeConversionTask |
pointcloud/compress | 点群ファイルを圧縮します。 | imm:CreateCompressPointCloudTask |
hls/m3u8 | ビデオプレイリストを生成します。 | imm:GenerateVideoPlaylist |
hls/ts | ライブコード変換タスクを作成します。 | imm:LiveTranscoding |
IMM機能を使用してOSSバケット内のデータを処理するには、バケットをIMMプロジェクトにバインドする必要があります。 IMMプロジェクトを作成するときは、サービスロールを指定する必要があります。 デフォルトでは、ロールAliyunIMMDefaultRoleが適用されます。 RAMユーザーまたはRAMロールを使用してサービスにアクセスする場合、プロジェクトに指定されたサービスロールにPassRole操作を実行する権限が必要です。 次のサンプルステートメントは、PassRole操作を実行する権限を付与します。
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
}他のクラウドサービスへのアクセス許可をIMMに付与する
IMMは、データ処理のために他の関連サービスへのアクセスを要求する。 たとえば、OSSに保存されているデータを処理し、出力データをOSSに書き込み、シンプルメッセージキュー (SMQ) に通知を送信するには、OSSとSMQへのアクセスをIMMに許可する必要があります。
デフォルトのサービスロールにより、IMMは関連するサービスにアクセスできます。 権限を絞り込む場合は、必要な権限のみを持つサービスロールを作成し、プロジェクトの作成時にサービスロールを指定できます。 詳細については、「プロジェクトのサービスロールの設定」をご参照ください。
バッチプロセッサまたはトリガーシナリオに必要な権限を付与する
バッチプロセッサとトリガーを使用するには、OSSなどの他のクラウドサービスへのアクセスをIMMに許可する必要があります。 使用可能なサービスロールがない場合は、[クラウドリソースアクセス権限付与] ページでデフォルトのサービスロールを作成できます。
例
フルアクセス権限の付与
次のサンプルRAMポリシーでは、ユーザーはOSSからIMMのすべてのデータ処理機能にアクセスできます。
{
"Statement":[
{
"Effect":"Allow",
"Action":"oss:*",
"Resource":"*"
},
{
"Effect":"Allow",
"Action":"imm:*",
"Resource":"*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
}
],
"Version":"1"
}特定の操作に対する権限の付与
次のサンプルRAMポリシーを使用すると、ユーザーは特定のOSSバケットのドキュメント処理機能にアクセスできます。
{
"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"
}バッチプロセッサまたはトリガーシナリオで必要な権限を付与する
次のサンプルRAMポリシーにより、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"
}