tencent cloud

文档反馈

通过 API 设置权限

最后更新时间:2020-06-22 17:21:37

    子用户密钥

    使用子账号登录访问管理控制台的【云 API 密钥】,找到子用户的密钥。密钥用于生成签名,认证通过后可访问相关腾讯云资源。

    签名的作用

    • 验证请求用户身份:通过用户密钥来确认。
    • 防止内容被篡改:通过对请求内容使用 hash 算法进行签名,通过签名的一致性来判定内容是否被篡改。
    • 防止重放攻击:签名内容中包括请求时间、签名时间及有效期,可避免过期请求重放。同时云服务也可以通过请求时间来拒绝过期请求。

    API 调用示例

    接口协议

    • 编码类型:UTF8
    • 编码格式:JSON
    • 传输方式:POST
    • 请求协议:HTTP

    调用规范示例:

    {
        "version": 1,
        "componentName": "MC",
        "eventId": 123456,
        "interface": {
            "interfaceName": "接口名",
            "para": {
                接口对应参数
            }
        }
    }

    返回结果:

    {
        "version": 1,
        "eventId": 123456,
        "componentName": "CONSOLE_LOGICAL_SERVER",
        "returnValue": 0,
        "returnCode": 0,
        "returnMessage": "OK",
        "data": {
            "ownerUin": 123,
            "uin": 124,
            "ownerAppid": 323
        }
    }

    当返回结果出错时,则 returnCode 不为0,returnMessage 内容为出错信息。
    输入参数中的 interfaceName 、para 和输出参数中的 data 说明详见 调用说明

    接口说明

    有关 CAM 用户与权限的详细 API 接口介绍,可查看 CAM API 文档

    调用示例

    新增策略(CreateCamStrategy)

    策略示例:设置某个子用户(Uin 为“3232”)具有 list 账户下所有 queue 的权限,且对北京 region 的 horacetest1 有消费消息、批量删除消息的权限。

    • 字段解析
    参数 描述 示例取值
    strategyName 策略名称。 strategy1
    strategyInfo 策略描述的内容(这里要传一个 JSON 字符串)。 示例代码
    remark 策略的备注。 hello test
    resource CMQ 的资源六段式描述,例如qcs::cmqqueue:bj:uin/1238423:queueName/uin/3232/myqueue
    第一段为固定格式 qcs;
    第二段为空;
    第三段表示消息队列的类型,队列模型为 cmqqueue,主题模型为 cmqtopic;
    第四段为地域信息,例如 gz、bj、sh 若为全地域,则设置为空;
    第五段为主账号 uin/{主账号uin}
    第六段为资源的描述,当为队列模式时,则 queueName/uin/{创建者Uin}/{队列名字} ,当为主题模式时该值取 topicName/uin/{创建者Uin}/{主题名字}。创建者的 Uin 可以通过控制台详情页获取,或者通过 yunapi 接口 GetQueueAttributes 或者GetTopicAttributes 的返回值 createUin 获取。
    *
    • 示例代码:
      {
      "strategyName":"strategy1",
      "strategyInfo":{"version":"2.0","principal":{"qcs":["qcs::cam::uin/1238423:uin/3232/myqueue","qcs::cam::uin/1238423:groupid/13"]},"statement":[{"effect":"allow","action":"name/cmqqueue:ListQueue","resource":"*"},{"effect":"allow","action":["name/cmqqueue:ReceiveMessage","name/cmqqueue:BatchDeleteMessage"],"resource":["qcs::cmqqueue:bj:uin/1238423:queueName/uin/3232/myqueue","qcs::cmqqueue:bj:uin/1238423:queueName/uin/3232/*"]}]},
      "remark":"horace test"
      }

      说明:

      在第六段的资源的描述中,uin/后的创建者 ID 可以在创建策略时查看。

    子账户关联/移除策略(OperateCamStrategy)

    此接口可给用户或者用户组联/移除策略。

    • 策略示例:将 UIN 为“123456”的用户关联到策略 ID 为“666”的策略。

    • 字段解析:

    参数 描述 示例取值
    groupId 如果是关联用户,则 groupId 传-1;
    如果是关联用户组,则 groupId 传具体组 ID。
    -1
    relateUin 如果是关联用户,则 relateUin 传具体用户 uin;如果是关联用户组,则 relateUin 传-1。 123456
    strategyId 需要关联的策略 ID。 666
    actionType 值为“1”表示关联策略;值为“2”表示移除策略。 1
    • 示例代码:
      {
        "groupId":-1,
        "relateUin":123456,
        "strategyId":666,
        "actionType":1
      }

    ">

    调用说明

    该说明适用于各种业务的用户与权限管理,在设置 CMQ 业务时,请根据以下说明判断 CMQ 的相关取值。

    1. principal 可以不填,后续通过关联策略接口关联用户。
    2. principal、action、resource,当只有一个元素时,可以不加[]
    3. 资源(resource)描述格式通常采用六段式,格式为qcs:project:serviceType:region:account:resource
      • project:可以用id/0*或者id/*表示所有项目。授权时 project 为空表示id/0,鉴权时 project 为空表示可在任意项目中出现。默认为空。
      • serviceType:为 cos、cdn、vpc 等,*表示所有业务。不可以为空。
      • region:为地域,值为空,表示所有地域,其他地域分别是"gz"、"st"、"tj"、"sh"、"hk"、"ca"、"shjr"、"bj"。默认为空。
      • account:表示为uin/${uin}或者uid/${uid}。为空时,对于 CDN 业务和 VPC 等业务的资源,填充为uin/${uin},对于 COS 业务的资源,填充化为uid/${uid}${uin}${uid}表示访问者的 uin 或者 uid。默认为空。
        还有一种特殊情况,uin/-1一般是预设策略才出现,扩展表展开后会把-1变成开发商的uin,另外预设策略只允许子账户或角色的授权,所以可以直接用子账户或角色所属的根账户 uin 来替换-1。
      • resource 由 name/value 构成。name 表示业务对资源的定义。如 cmq 的为 queueName 和 topicName。cos 是用 prefix 描述,cdn 用 host 描述等。*表示所有资源,归一化为*/*的形式。不可以为空。
      • 用户、策略也是一种资源。CAM 根账户描述为qcs::cam::uin/1238423: uin/1238423,CAM 子账户描述为qcs::cam::uin/1238423: uin/3236671,匿名用户描述为qcs::cam::anonymous:anonymous
      • resource 为空时表示操作不需要关联对象。在系统中归一化为*
      • 对资源描述中 uin 或 uid 是否真的是该资源的拥有者,需要由业务来校验。强制要求业务在鉴权通过后必须校验,建议在授权时也进行校验。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持