访问管理 CAM

最近更新时间: 2026-06-30 15:06:00

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 版服务的完全管理权限(创建、管理等全部操作)。

  1. 登录 访问管理控制台
  2. 在左侧菜单栏中,单击 策略
  3. 在策略列表中,单击新建自定义策略
  4. 在选择创建策略方式的弹窗中,选择按策略生成器创建
  5. 在编辑策略页面,单击右上角导入策略语法
  6. 在导入策略语法页面,搜索“TDMQ”,在搜索结果中勾选 QcloudTDMQFullAccess,单击确定
  7. 在编辑策略页面,单击下一步,填写策略名称和描述,选择您要关联的用户/用户组。
  8. 单击完成,完成策略创建与授权。

资源只读策略

以授权单个集群的只读权限为例。

  1. 登录 访问管理控制台。

  2. 在左侧菜单栏中,单击策略

  3. 在策略列表中,单击新建自定义策略

  4. 在选择创建策略方式的弹窗中,选择按策略生成器创建,填写策略信息。

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

  6. 单击完成,完成策略创建与授权。