如果系统权限策略无法满足您的需求,您可以创建自定义权限策略以实现最小授权。使用自定义权限策略有助于实现权限的精细化管理,是提升资源访问安全性的有效手段。您可以通过该文档了解IMM进行图片处理时自定义权限策略的场景与示例。
自定义项目服务角色权限
在创建IMM项目时,需要为项目设置服务角色,以便IMM服务能够以该角色访问您已授权的其他云资源,例如阿里云对象存储(OSS)。
创建自定义服务角色
自定义服务角色权限策略示例
仅允许对指定的OSS Bucket进行文件的读取和写入操作
RAM Policy将允许读取和写入名称为my-bucket
的Bucket,可以向上海地域名称为test-topic
的主题发布MNS消息。
示例参数说明
OSS Resource格式为:acs:oss:*:*:<BucketName>/*
,配置时请根据实际参数进行替换,相关参数说明如下:
参数 | 说明 |
| OSS Bucket名称,可以在OSS控制台 的Bucket列表查看。 |
MNS Resource格式为:acs:mns:<RegionId>:<UID>:/topics/<TopicName>/messages
,配置时请根据实际参数进行替换,相关参数说明如下所示:
参数 | 说明 |
| 地域ID,例如 |
| 账号ID,可以在账号中心的概览中查看。 |
| MNS主题名称,可以在MNS控制台 的主题列表查看。 |
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:PutObject"
],
"Resource": "acs:oss:*:*:my-bucket/*",
"Effect": "Allow"
},
{
"Action":"mns:PublishMessage",
"Resource": "acs:mns:cn-shanghai:150910xxxxxxxxxx:/topics/test-topic/messages",
"Effect": "Allow"
},
{
"Action": "ram:PassRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"acs:Service": "imm.aliyuncs.com"
}
}
}
]
}
自定义调用IMM的RAM用户权限
RAM提供了一种持久有效的权限控制机制,通过设立不同权限的RAM用户,将各类权限分配给不同用户。即使RAM用户的AccessKey发生泄露,也不会导致全局信息的泄露。
创建RAM用户并授权
自定义RAM用户权限策略示例
仅可使用指定项目调用IMM图片处理和查询任务相关接口
RAM Policy限定用户仅在上海地域的image-process-project
项目中调用智能媒体管理的以下接口:
EncodeBlindWatermark
, CreateDecodeBlindWatermarkTask
, GetDecodeBlindWatermarkResult
, CreateImageToPDFTask
, AddImageMosaic
, CreateImageSplicingTask
, DetectImageScore
, DetectImageLabels
, DetectImageCodes
, DetectImageFaces
, DetectImageCropping
, CompareImageFaces
, DetectImageCars
, DetectImageBodies
, DetectImageTexts
, ListTasks
, GetTask
,请根据使用情况按需添加。
示例参数说明
IMM Resource格式为:acs:imm:<RegionId>:<UID>:project/<ProjectName>
,配置时请根据实际参数进行替换,相关参数的说明如下:
参数 | 说明 |
| 地域ID,例如 |
| 账号ID,可以在账号中心的概览中查看。 |
| 项目名称,IMM创建项目时指定的名称,可以在智能媒体控制台中查看。 |
MNS Resource格式为:acs:mns:<RegionId>:<UID>:/queues/<QueueName>/messages
,配置时请根据实际参数进行替换,相关参数的说明如下:
参数 | 说明 |
| 地域ID,例如 |
| 账号ID,可以在账号中心的概览中查看。 |
| MNS队列名称,可以在MNS控制台 的队列列表查看。 |
{
"Version": "1",
"Statement": [
{
"Action": [
"imm:EncodeBlindWatermark",
"imm:CreateDecodeBlindWatermarkTask",
"imm:GetDecodeBlindWatermarkResult",
"imm:CreateImageToPDFTask",
"imm:AddImageMosaic",
"imm:CreateImageSplicingTask",
"imm:ListTasks",
"imm:GetTask",
"imm:DetectImageScore",
"imm:DetectImageLabels",
"imm:DetectImageCodes",
"imm:DetectImageFaces",
"imm:DetectImageCropping",
"imm:CompareImageFaces",
"imm:DetectImageCars",
"imm:DetectImageBodies",
"imm:DetectImageTexts"
],
"Resource": "acs:imm:cn-shanghai:150910xxxxxxxxxx:project/image-process-project",
"Effect": "Allow"
},
{
"Action": ["mns:ReceiveMessage", "mns:DeleteMessage"],
"Resource": "acs:mns:cn-shanghai:150910xxxxxxxxxx:/queues/test-queue/messages",
"Effect": "Allow"
}
]
}