如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍云消息队列 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 版的授权信息。详细内容请参见授权信息。