tencent cloud

文档反馈

自定义策略

最后更新时间:2022-02-21 11:25:44
    注意:

    本文档主要介绍短信 SMS 访问管理功能的相关内容,其他产品访问管理相关内容请参见 支持 CAM 的产品

    在 SMS 访问管理中使用 预设策略 来实现授权虽然方便,但权限控制粒度较粗,不能细化到 SMS 应用和 云 API 粒度。如果开发者要求精细的权限控制能力,则需要创建自定义策略。

    自定义策略创建方法

    自定义策略有多种创建方法,下方表格展示各种方法的对比,具体操作流程请参考下文。

    创建入口  创建方法  效力(Effect)  资源 (Resource)  操作 (Action)  灵活性 
    CAM 控制台  策略生成器  手动选择  语法描述  手动选择  中 
    CAM 控制台  策略语法  语法描述  语法描述  语法描述  高 
    CAM 服务端 API  CreatePolicy  语法描述  语法描述  语法描述  高 
    说明:

    • SMS 不支持按产品功能或项目来创建自定义策略。
    • 手动选择指用户在控制台所展示的候选项列表中选择对象。
    • 语法描述指通过 授权策略语法 来描述对象。

    授权策略语法

    资源语法描述

    如上文所述,SMS 权限管理的资源粒度是应用。应用的策略语法描述方式遵循 CAM 资源描述方式。在下文的示例中,开发者的主账号 ID 是12345678,开发者创建了三个应用:App 分别是1400000000、1400000001和1400000002。

    • 短信所有应用的策略语法描述

      "resource": ["qcs::sms::uin/12345678:app/*"]
      
    • 单个应用的策略语法描述

      "resource": [ "qcs::sms::uin/12345678:app/1400000001"]
      
    • 多个应用的策略语法描述

      "resource": [ "qcs::sms::uin/12345678:app/1400000000","qcs::sms::uin/12345678:app/1400000001"]
      

    操作语法描述

    如上文所述,短信权限管理的操作粒度是云 API,详情请参见 可授权的资源及操作。在下文的示例中,以 DescribeAppList(获取应用列表)、DescribeAppInfo(获取应用信息)等云 API 为例。

    • 短信所有云 API 的策略语法描述

      "action": [
      "name/sms:*"
      ]
      
    • 单个云 API 操作的策略语法描述

      "action": [
      "name/sms:DescribeAppList"
      ]
      
    • 多个云 API 操作的策略语法描述

      "action": [
      "name/sms:DescribeAppList",
      "name/sms:DescribeAppInfo"
      ]
      

    自定义策略使用示例

    使用策略生成器

    在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001这个短信应用进行任何操作,除了 DeleteAppInfo 这个控制台 API。

    1. 以腾讯云 主账号 的身份访问 CAM 控制台的【策略】,单击【新建自定义策略】。
    2. 选择【按策略生成器创建】,进入策略创建页面。
    3. 选择服务和操作。
      ● 【效果(Effect)】配置项选择【允许】。
      ● 【服务(Service)】配置项选择【短信】。
      ● 【操作(Action)】配置项勾选所有项。
      ● 【资源(Resource)】配置项按照 资源语法描述 说明填写qcs::sms::uin/12345678:app/1400000001
      ● 【条件(Condition)】配置项无需配置。
      ● 单击【添加声明】,页面最下方会出现一条“允许对短信应用1400000001进行任何操作”的声明。
    4. 在同个页面中继续添加另一条声明。
      ● 【效果(Effect)】配置项选择【拒绝】。
      ● 【服务(Service)】配置项选择【短信】。
      ● 【操作(Action)】配置项勾选 DeleteAppInfo(可通过搜索功能快速查找)。
      ● 【资源(Resource)】配置项按照 资源语法描述 说明填写qcs::sms::uin/12345678:app/1400000001
      ● 【条件(Condition)】配置项无需配置。
      ● 单击【添加声明】,页面最下方会出现一条“拒绝对短信应用1400000001进行 DeleteAppInfo 操作”的声明。
    5. 单击【下一步】,按需修改策略名称(也可以不修改)。
    6. 单击【完成】完成自定义策略的创建。
      后续将该策略授予其他子账号的方法同 将 SMS 全读写访问权限授予已存在的子账号

    使用策略语法

    在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001和1400000002这两个短信应用进行任何操作,但不允许对1400000001进行 DeleteAppInfo 操作。

    1. 以腾讯云 主账号 的身份访问 CAM 控制台的【策略】,单击【新建自定义策略】。
    2. 选择【按策略语法创建】,进入策略创建页面。
    3. 在【选择模板类型】框下选择【空白模板】。
      说明:

      策略模板,指新策略是现有策略(预置策略或自定义策略)的一个拷贝,然后在此基础上做调整。在实际使用中,开发者可以根据情况选择合适的策略模板,降低编写策略内容的难度和工作量。

    4. 单击【下一步】,按需修改策略名称(也可以不修改)。
    5. 在【策略内容】编辑框中填写策略内容。本示例的策略内容为:
      {
      "version": "2.0",
      "statement": [
       {
            "effect": "allow",
            "action": [
                "name/SMS:*"
            ],
            "resource": [
                "qcs::sms::uin/12345678:app/1400000001",
                "qcs::sms::uin/12345678:app/1400000002"
            ]
        },
        {
            "effect": "deny",
            "action": [
                "name/SMS: DeleteAppInfo "
            ],
            "resource": [
                "qcs::SMS::uin/12345678:app/1400000001"
            ]
        }
      ]
      }
      
    说明:

    策略内容需遵循 CAM 策略语法逻辑,其中资源和操作两个元素的语法请参见上文 资源语法描述 和 操作语法描述 所述。
    6. 单击【完成】完成自定义策略的创建。
    后续将该策略授予其他子账号的方法同 将 SMS 全读写访问权限授予已存在的子账号

    联系我们

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

    技术支持

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

    7x24 电话支持