图片处理自定义权限配置

如果系统权限策略无法满足您的需求,您可以创建自定义权限策略以实现最小授权。使用自定义权限策略有助于实现权限的精细化管理,是提升资源访问安全性的有效手段。您可以通过该文档了解IMM进行图片处理时自定义权限策略的场景与示例。

自定义项目服务角色权限

在创建IMM项目时,需要为项目设置服务角色,以便IMM服务能够以该角色访问您已授权的其他云资源,例如阿里云对象存储(OSS)。

创建自定义服务角色

  1. 创建普通服务角色具体操作,请参见创建可信实体为阿里云服务的RAM角色

  2. 创建自定义策略。更多信息,请参见创建自定义权限策略

    进行图片处理所需的服务角色权限如下:

    • 图片处理需要从OSS Bucket中读取源文件,必须具备对OSS Bucket的读取权限。部分功能(图片盲水印、图片转PDF、添加图片马赛克、图片拼接等)需要将处理后的文件存储回OSS Bucket,必须具备对OSS Bucket的写入权限。

    • 如需使用MNS接收任务消息,必须具备MNS发消息的权限。

    • 允许IMM服务以该角色访问您已授权的其他云资源,例如OSSMNS。

  3. 为服务角色授权。具体操作,请参见RAM角色授权

自定义服务角色权限策略示例

仅允许对指定的OSS Bucket进行文件的读取和写入操作

RAM Policy将允许读取和写入名称为my-bucketBucket,可以向上海地域名称为test-topic的主题发布MNS消息。

示例参数说明

OSS Resource格式为:acs:oss:*:*:<BucketName>/*,配置时请根据实际参数进行替换,相关参数说明如下:

参数

说明

BucketName

OSS Bucket名称,可以在OSS控制台Bucket列表查看。

MNS Resource格式为:acs:mns:<RegionId>:<UID>:/topics/<TopicName>/messages,配置时请根据实际参数进行替换,相关参数说明如下所示:

参数

说明

RegionId

地域ID,例如cn-shanghaicn-beijing,地域对应的RegionId可以在服务接入点中查看。

UID

账号ID,可以在账号中心概览中查看。

TopicName

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"
                }
            }
        }
    ]
}

自定义调用IMMRAM用户权限

RAM提供了一种持久有效的权限控制机制,通过设立不同权限的RAM用户,将各类权限分配给不同用户。即使RAM用户的AccessKey发生泄露,也不会导致全局信息的泄露。

创建RAM用户并授权

  1. 创建RAM用户。具体操作,请参见创建RAM用户

  2. 创建自定义策略。更多信息,请参见创建自定义权限策略

    进行图片处理,RAM用户所需权限如下:

    • 需具备调用IMM服务图片处理相关接口的权限,请根据使用的API按需配置。

    • 如需查询任务,必须具备调用IMM服务中ListTasksGetTask接口的权限。

    • 若需接收MNS消息,必须具备接收MNS消息及删除MNS消息的权限。

  3. RAM用户授权。具体操作,请参见RAM用户授权

自定义RAM用户权限策略示例

仅可使用指定项目调用IMM图片处理和查询任务相关接口

RAM Policy限定用户仅在上海地域的image-process-project项目中调用智能媒体管理的以下接口:

EncodeBlindWatermarkCreateDecodeBlindWatermarkTaskGetDecodeBlindWatermarkResultCreateImageToPDFTaskAddImageMosaicCreateImageSplicingTaskDetectImageScoreDetectImageLabelsDetectImageCodesDetectImageFacesDetectImageCroppingCompareImageFacesDetectImageCarsDetectImageBodiesDetectImageTextsListTasksGetTask,请根据使用情况按需添加。

示例参数说明

IMM Resource格式为:acs:imm:<RegionId>:<UID>:project/<ProjectName>,配置时请根据实际参数进行替换,相关参数的说明如下:

参数

说明

RegionId

地域ID,例如cn-shanghaicn-beijing,地域对应的RegionId可以在服务接入点中查看。

UID

账号ID,可以在账号中心概览中查看。

ProjectName

项目名称,IMM创建项目时指定的名称,可以在智能媒体控制台中查看。

MNS Resource格式为:acs:mns:<RegionId>:<UID>:/queues/<QueueName>/messages,配置时请根据实际参数进行替换,相关参数的说明如下:

参数

说明

RegionId

地域ID,例如cn-shanghaicn-beijing,地域对应的RegionId可以在服务接入点中查看。

UID

账号ID,可以在账号中心概览中查看。

QueueName

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"
        }
    ]
}