云消息队列 RocketMQ 版自定义权限策略

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍云消息队列 RocketMQ 版使用自定义权限策略的场景和策略示例。

什么是自定义权限策略

在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。

  • 创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。

  • 已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。

  • 自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。

操作文档

自定义权限授权示例

重要

如需直接复制示例代码,请替换如下内容:

  • {regionId}:替换为实例所属的地域ID。具体内容,请参见服务接入点

  • {accountId}:替换为您的阿里云账号ID。

  • {InstanceId}:替换为云消息队列 RocketMQ 版的实例ID。

  • {ConsumerGroupId}:替换为Group ID。

  • {TopicName}:替换为Topic名称。

示例一:授予RAM用户对于某个实例的所有操作权限

{
    "Version": "1",
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "rocketmq:ListInstances"
            ],
            "Resource": [
                "acs:rocketmq:{regionId}:{accountId}:instance/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rocketmq:*"
            ],
            "Resource": [
                "acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rocketmq:ListAnalyticsQuery"
            ],
            "Resource": [
                "acs:rocketmq:*:{#accountId}:*/*"
            ]
        }
    ]
}

示例二:授予RAM用户创建实例的权限

{  
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rocketmq:CreateInstance"
            ],
            "Resource": [
                "acs:rocketmq:{regionId}:{accountId}:instance/*" 
            ]
        }
    ]
}       

示例三:授予RAM用户删除某个指定Topic的权限

{  
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rocketmq:DeleteTopic"
            ],
            "Resource": [
                "acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/topic/{TopicName}" 
            ]
        }
    ]
}       

示例四:授予RAM用户所有实例诊断功能的操作权限

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "rocketmq:GetAnalyticsQuery",
                "rocketmq:SubmitAnalyticsQuery",
                 "rocketmq:ListAnalyticsQuery"
            ],
            "Resource":[
                 "acs:rocketmq:*:{#accountId}:*/*"
            ]
        }
    ]
}

授权信息参考

使用自定义权限策略,您需要了解业务的权限管控需求,并了解云消息队列 RocketMQ 版的授权信息。详细内容请参见授权信息