CAM 基本概念
主账号通过给子账号绑定策略实现授权,策略设置可精确到 [API,资源,用户/用户组,允许/拒绝,条件] 维度。
账户
- 主账号:拥有云平台所有资源,可以访问其任何资源。
- 子账号:包括子用户和协作者。
- 子用户: 由主账号创建,完全归属于创建该子用户的主账号。
- 协作者:本身拥有主账号身份,被添加作为当前主账号的协作者,则为当前主账号的子账号之一,可切换回主账号身份。
- 身份凭证:包括登录凭证和访问证书两种,登录凭证指用户登录名和密码,访问证书指云 API 密钥(SecretId 和 SecretKey)。
资源与权限
- 资源:资源是云服务中被操作的对象,在 TDMQ RabbitMQ 版中,资源有集群、Vhost、Exchange、Queue、routeRelation 等。
- 权限:权限是指允许或拒绝某些用户执行某些操作。默认情况下,主账号拥有其名下所有资源的访问权限,而子账号没有主账号下任何资源的访问权限。
- 策略:策略是定义和描述一条或多条权限的语法规范。主账号通过将策略关联到用户/用户组完成授权。
单击查看更多 CAM 文档
子账号使用 RabbitMQ
为了保证子账号能够顺利使用 RabbitMQ,主账号需要对子账户进行授权。
主账号登录 访问管理控制台,在子账号列表中找到对应的子账号,单击操作列的授权。
RabbitMQ 为子账号提供了两种预设策略:QcloudTDMQReadOnlyAccess 和 QcloudTDMQFullAccess,前者仅能查看控制台的相关信息,后者可以在产品控制台进行读写等相关操作。
支持资源级授权的 API 列表
TDMQ RabbitMQ版支持资源级授权,您可以指定子账号拥有特定资源的接口权限。
支持资源级授权的接口列表如下:
| API名 | API描述 | 资源类型 | 资源六段式示例 |
|---|---|---|---|
| DeleteAMQPCluster | 删除 AMQP 集群 | cluster | qcs::tdmq:${region}:uin/${uin}:cluster/${clusterId} |
| ModifyAMQPCluster | 修改 AMQP 集群 | cluster | qcs::tdmq:${region}:uin/${uin}:cluster/${clusterId} |
| CreateAMQPVHost | 创建 AMQP VHost | cluster | qcs::tdmq:${region}:uin/${uin}:cluster/${clusterId} |
| DescribeAMQPClusters | 查询 AMQP 集群列表 | cluster | qcs::tdmq:${region}:uin/${uin}:cluster/${clusterId} |
| DescribeAMQPCluster | 获取单个 AMQP 集群信息 | cluster | qcs::tdmq:${region}:uin/${uin}:cluster/${clusterId} |
| CreateAMQPExchange | 创建 AMQP Exchange | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| ModifyAMQPVHost | 修改 AMQP VHost | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| DeleteAMQPVHost | 删除 AMQP VHost | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| CreateAMQPQueue | 创建 AMQP 队列 | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| CreateAMQPRouteRelation | 创建 AMQP 路由关系 | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| DescribeAMQPVHostConnections | 查询 AMQP VHost 连接列表 | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| DescribeAMQPVHosts | 查询 AMQP VHost 列表 | vHost | qcs::tdmq:${region}:uin/${uin}:vHost/${clusterId}/${vHostId} |
| DeleteAMQPExchange | 删除 AMQP Exchange | exchange | qcs::tdmq:${region}:uin/${uin}:exchange/${clusterId}/${vHostId}/${exchangeName} |
| ModifyAMQPExchange | 修改 AMQP Exchange | exchange | qcs::tdmq:${region}:uin/${uin}:exchange/${clusterId}/${vHostId}/${exchangeName} |
| DescribeAMQPExchanges | 查询 AMQP Exchange 列表 | exchange | qcs::tdmq:${region}:uin/${uin}:exchange/${clusterId}/${vHostId}/${exchangeName} |
| DeleteAMQPQueue | 删除 AMQP 队列 | queue | qcs::tdmq:${region}:uin/${uin}:queue/${clusterId}/${vHostId}/${queueName} |
| DescribeAMQPQueueConsumers | 获取指定队列下消费者列表 | queue | qcs::tdmq:${region}:uin/${uin}:queue/${clusterId}/${vHostId}/${queueName} |
| ModifyAMQPQueue | 修改 AMQP 队列 | queue | qcs::tdmq:${region}:uin/${uin}:queue/${clusterId}/${vHostId}/${queueName} |
| DescribeAMQPQueues | 查询 AMQP 队列列表 | queue | qcs::tdmq:${region}:uin/${uin}:queue/${clusterId}/${vHostId}/${queueName} |
| DescribeAMQPRouteRelations | 查询 AMQP 路由关系列表 | routeRelation | qcs::tdmq:${region}:uin/${uin}:routeRelation/${clusterId}/${vHostId}/${routeRelationId} |
| DeleteAMQPRouteRelation | 删除 AMQP 路由关系 | routeRelation | qcs::tdmq:${region}:uin/${uin}:routeRelation/${clusterId}/${vHostId}/${routeRelationId} |
不支持资源级授权的 API 列表
| API 名 | API 描述 | 资源六段式 |
|---|---|---|
| CreateAMQPCluster | 创建 AMQP 集群 | * |
| DescribeAMQPCreateQuota | 获取用户配额 | * |
授权方案示例
全读写策略
授权一个子用户以 TDMQ RabbitMQ 版服务的完全管理权限(创建、管理等全部操作)。
- 登录 访问管理控制台。
- 在左侧菜单栏中,单击 策略。
- 在策略列表中,单击新建自定义策略。
- 在选择创建策略方式的弹窗中,选择按策略生成器创建。
- 在编辑策略页面,单击右上角导入策略语法。
- 在导入策略语法页面,搜索“TDMQ”,在搜索结果中勾选 QcloudTDMQFullAccess,单击确定。
- 在编辑策略页面,单击下一步,填写策略名称和描述,选择您要关联的用户/用户组。
- 单击完成,完成策略创建与授权。
资源只读策略
以授权单个集群的只读权限为例。
登录 访问管理控制台。
在左侧菜单栏中,单击策略。
在策略列表中,单击新建自定义策略。
在选择创建策略方式的弹窗中,选择按策略生成器创建,填写策略信息。

参数 说明 效果(Effect) 选择允许 服务(Service) 选择消息队列 TDMQ (tdmq) 操作(Action) 选择读操作 资源(Resource) 选择特定资源,点击添加自定义资源六段式
- 地域:选择资源所在地域
- 账户:系统自动填充
- 资源前缀:cluster
- 填写您要授权的集群 ID条件(Condition) 仅当请求来自指定 IP 地址范围内时才允许访问指定操作 单击下一步,填写策略名称和描述,选择您要关联的用户/用户组。
单击完成,完成策略创建与授权。
