如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍轻量消息队列(原 MNS)使用自定义权限策略的场景和策略示例。
什么是自定义权限策略
在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。
创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。
已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。
自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。
操作文档
控制台自定义授权策略
当您使用控制台页面或者OpenAPI访问轻量消息队列(原 MNS)资源时,支持以下自定义权限策略。
队列管理
API | 说明 | 操作(Action) | 资源(Resource) |
获取队列列表 | mns:ListQueue | acs:mns:${regionId}:${accountId}:/queues | |
创建队列 | mns:CreateQueue | acs:mns:${regionId}:${accountId}:/queues/${queueName} | |
删除队列 | mns:DeleteQueue | ||
获取队列属性 | mns:GetQueueAttributes | ||
设置队列属性 | mns:SetQueueAttributes |
主题管理
API | 说明 | 操作(Action) | 资源(Resource) |
获取主题列表 | mns:ListTopic | acs:mns:${regionId}:${accountId}:/topics | |
创建主题 | mns:CreateTopic | acs:mns:${regionId}:${accountId}:/topics/${topicName} | |
删除主题 | mns:DeleteTopic | ||
获取主题属性 | mns:GetTopicAttributes | ||
设置主题属性 | mns:SetTopicAttributes |
订阅管理
API | 说明 | 操作(Action) | 资源(Resource) |
获取订阅列表,若传入Topic名称,则基于主题进行过滤 | mns:ListSubscriptionByTopic | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions | |
获取订阅属性 | mns:GetSubscriptionAttributes | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} | |
设置订阅属性 | mns:SetSubscriptionAttributes | ||
绑定订阅者到主题上 | mns:Subscribe | ||
从主题上解绑订阅者 | mns:Unsubscribe |
常见策略场景及示例
客户端自定义授权策略
当您使用客户端SDK进行消息收发时,轻量消息队列(原 MNS)支持以下自定义权限策略。
队列消息收发
API | 说明 | 操作(Action) | 资源(Resource) |
发送消息 | mns:SendMessage | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages | |
批量发送消息 | mns:SendMessage | ||
消费消息 | mns:ReceiveMessage | ||
批量消费消息 | mns:ReceiveMessage | ||
删除消息 | mns:DeleteMessage | ||
批量删除消息 | mns:DeleteMessage | ||
查看消息 | mns:PeekMessage | ||
批量查看消息 | mns:PeekMessage | ||
修改消息的下次可消费时间 | mns:ChangeMessageVisibility |
主题消息收发
API | 说明 | 操作(Action) | 资源(Resource) |
从主题发布消息 | mns:PublishMessage | acs:mns:${regionId}:${accountId}:/topics/${topicName}/messages |