システム権限ポリシーが要件を満たせない場合は、カスタムポリシーを作成して最小権限の原則を実装できます。カスタムポリシーは、きめ細かい権限管理を実現し、リソースアクセスセキュリティを効果的に向上させるのに役立ちます。このトピックでは、Intelligent Media Management(IMM)のライブトランスコード機能のカスタムポリシーのシナリオと例について説明します。
サービスロールへのカスタム権限の付与
IMM プロジェクトを作成するときは、プロジェクトのサービスロールを指定して、IMM がそのロールを偽装して Object Storage Service(OSS)などの他の Alibaba Cloud サービスの承認済みリソースにアクセスできるようにする必要があります。
サービスロールの作成
サンプルポリシー
特定の OSS バケットに対する読み取りおよび書き込み権限を付与する
次の RAM ポリシーは、my-bucket という名前のバケットに対する読み取りおよび書き込み権限をサービスロールに付与するために使用されます。
パラメーターの説明
OSS の Resource フィールドは、acs:oss:*:*:<BucketName>/* 形式です。パラメーターを実際のリソース名に置き換えてください。
パラメーター | 説明 |
| OSS バケットの名前。OSS コンソールの [バケット] ページで名前を確認できます。 |
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:PutObject"
],
"Resource": "acs:oss:*:*:my-bucket/*",
"Effect": "Allow"
},
{
"Action": "ram:PassRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"acs:Service": "imm.aliyuncs.com"
}
}
}
]
}RAM ユーザーへのカスタム権限の付与
RAM は、異なる権限を持つ RAM ユーザーを作成することにより、永続的な権限制御メカニズムを提供します。 RAM ユーザーの AccessKey ペアが漏洩した場合、限られた情報のみが潜在的に公開されます。
RAM ユーザーを作成し、権限を付与する
サンプルポリシー
特定のプロジェクトでライブトランスコードに関連する API 操作を呼び出し、特定のバケット内のオブジェクトを IMM を使用して処理する権限を付与する
次の RAM ポリシーは、中国(上海)リージョンの image-process-project プロジェクトで GenerateVideoPlaylist および LiveTranscoding 操作を呼び出し、my-bucket という名前のバケット内のオブジェクトを IMM を使用して処理する権限を RAM ユーザーに付与するために使用されます。
ライブトランスコードは、OSS バケットにバインドされた IMM プロジェクトを使用して実装されます。したがって、RAM ユーザーにバインドされたプロジェクトに関連する API 操作を呼び出す権限を付与する必要があります。
パラメーターの説明
OSS の Resource フィールドは、acs:oss:*:*:<BucketName>/* 形式です。パラメーターを実際のリソース名に置き換えてください。
パラメーター | 説明 |
| OSS バケットの名前。OSS コンソールの [バケット] ページで名前を確認できます。 |
IMM の Resource フィールドは、acs:imm:<RegionId>:<UID>:project/<ProjectName> 形式です。パラメーターを実際のリソース名に置き換えてください。
パラメーター | 説明 |
| リージョン ID。例: |
| アカウント ID。アカウントセンター の [概要] ページで ID を確認できます。 |
| プロジェクトの作成時に指定したプロジェクト名。IMM コンソールで名前を確認できます。 |
Simple Message Queue(SMQ、旧称 MNS)の Resource フィールドは、acs:mns:<RegionId>:<UID>:/queues/<QueueName>/messages 形式です。パラメーターを実際のリソース名に置き換えてください。
パラメーター | 説明 |
| リージョン ID。例: |
| アカウント ID。アカウントセンター の [概要] ページで ID を確認できます。 |
| SMQ キューの名前。SMQ コンソールの [キュー] ページで名前を確認できます。 |
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:PostProcessTask",
"oss:ProcessImm"
],
"Resource": "acs:oss:*:*:my-bucket/*",
"Effect": "Allow"
},
{
"Action": [
"imm:GenerateVideoPlaylist",
"imm:LiveTranscoding"
],
"Resource": "acs:imm:cn-shanghai:150910xxxxxxxxxx:project/video-process-project",
"Effect": "Allow"
}
]
}