Intelligent Media Management (IMM) プロジェクトを作成する際、プロジェクトにサービスロールを割り当てる必要があります。これにより、IMM サービスがそのロールを引き受け、Object Storage Service (OSS) などの他の承認済みクラウドリソースにアクセスできるようになります。このトピックでは、サービスロールを設定し、権限を付与する方法について説明します。
サービスロールの作成、プロジェクトの作成、またはプロジェクトのサービスロールの変更を行う際は、そのロールに割り当てられているすべての権限を所有している必要があります。そうでない場合、操作は失敗します。操作には十分ご注意ください。
サービスロールの作成と権限付与
デフォルトサービスロールの権限付与
-
初めてプロジェクトを作成する際は、以下の手順に従ってクラウドリソースへのアクセスを承認します。
[プロジェクトの作成] ページで、[サービスロール] ドロップダウンリストを展開します。AliyunIMMDefaultRole (デフォルトロール) のステータスは「未承認」です。[権限付与] をクリックします。
-
クラウドリソースアクセス承認ページで、デフォルトの承認ロール AliyunIMMDefaultRole の情報を確認し、[承認の確認] をクリックします。
サービスロールが作成された後、RAM コンソールで詳細な権限を設定できます。
このロールは、AliyunIMMRolePolicy システムポリシーに関連付けられています。
AliyunIMMDefaultRole は OSS への広範なアクセス権限を付与することにご注意ください。ご利用の Alibaba Cloud アカウント内の RAM ユーザーが CreateProject / UpdateProject などの IMM 権限を持っている場合、そのユーザーは AliyunIMMDefaultRole をプロジェクトに割り当て、メタデータインデックス作成機能を使用して OSS 内のファイルを一覧表示または分析できます。これらの権限をより正確に制御するには、カスタムサービスロールを作成してください。
カスタムサービスロールの作成
RAM コンソールでカスタムサービスロールを作成し、権限を付与できます。詳細な手順については、「サービスリンクロールを作成する」をご参照ください。
-
プリンシパルタイプには、Alibaba Cloud サービスを選択します。
-
ロール名を入力し、ロールタイプと信頼できるサービスを選択します。ロールタイプには 通常のサービスロール を選択します。信頼できるサービスには Intelligent Media Management を選択します。
この例では、ロール名は
TestIMMRoleOSSMyBucketAccessで、説明はAllow access to a specific bucketです。 -
OK をクリックして、カスタムサービスロールを作成します。
ロールが作成されると、成功メッセージが表示され、権限の追加を促されます。[権限付与] または [正確な権限付与] をクリックしてロールに権限を付与するか、[閉じる] をクリックしてロールリストに戻ることができます。
-
新しい RAM ロールには、デフォルトでは権限がありません。ユースケースに必要な権限 (少なくとも OSS と Message Service (MNS) の権限を含む) を付与する必要があります。
RAM コンソールでポリシーを作成できます。ポリシーの作成には JSONを使用します。
以下のポリシーは、「my-bucket」という名前の OSS バケットに対する権限のみを付与します。このポリシーを使用する際は、「my-bucket」をご利用のバケット名に置き換えてください。
{ "Version": "1", "Statement": [ { "Action": [ "oss:Get*", "oss:List*", "oss:PutBucketLifecycle", "oss:PutBucketNotification", "oss:DeleteBucketNotification", "oss:PutBucketAcl", "oss:PutObjectAcl", "oss:CopyObject", "oss:AppendObject", "oss:PutSymlink", "oss:PutObject", "oss:StartEventRecord", "oss:StopEventRecord", "oss:GetEventRecordStatus" ], "Resource": "acs:oss:*:*:my-bucket/*", "Effect": "Allow" }, { "Action":"mns:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "imm.aliyuncs.com" } } } ] } -
作成したポリシーをサービスロールにアタッチします。詳細については、「RAM ロールの権限を管理する」をご参照ください。
権限が付与されると、アタッチされたカスタムポリシー (例: TestIMMPolicyO...) がロール詳細ページの [権限] タブに表示されます。リソーススコープはアカウントレベルです。
サービスロールの使用
サービスロールが作成された後、[サービスロール] フィールドの横にある更新アイコンをクリックし、新しいロールを選択して IMM プロジェクトを作成します。
[サービスロール] ドロップダウンリストから TestIMMRoleOSSMyBucketAccess を選択し、[OK] をクリックしてプロジェクトを作成します。
(オプション) サービスロール権限の変更
RAM コンソールでサービスロールの権限を変更できます。詳細については、「RAM ロールの権限を管理する」をご参照ください。
サービスロールの権限を変更する際は、ユースケースに必要な OSS と MNS の最小限の権限が含まれていることを確認してください。そうでない場合、API 呼び出しが失敗する可能性があります。