tencent cloud

文档反馈

策略变量

最后更新时间:2024-01-23 17:54:33

    使用场景

    场景假设:您希望给每个 CAM 用户授予其创建资源的访问权限。例如,您想要设置 COS 资源的创建者默认拥有该资源的访问权限。 如果由资源拥有者(主账号)将资源逐个授权给资源创建者,授权成本很高,需要为每种资源都编写策略并授权给创建者。在这种情况下,您可以通过使用策略变量来实现您的需求。在策略的资源定义中增加占位符描述创建人的子账号 uin,该占位符即是策略变量。当鉴权时,策略变量将被替换为来自请求本身的上下文信息。
    授予创建者资源访问权限的策略描述方式如下:
    {
    "version": "2.0",
    "statement": [
    {
    "effect": "allow",
    "action": "cmqqueue:*",
    "resource": "qcs::cmqqueue::uin/1000001:queueName/uin/${uin}/*"
    }
    ]
    }
    策略变量在每个资源的路径中带上创建人的子账号 uin。如子账号uin 为 125000000 的子账号(对应主账号 uin 是1000001)创建了名为 queueName/uin/125000000 的成都地域 cmq 消息队列,则其对应的资源描述方式为
    qcs::cmqqueue:ap-chengdu:uin/1000001:queueName/uin/125000000
    子账号 uin 为 125000000 的子账号访问该资源时,鉴权过程中会把对应的策略信息的占位符替换为访问者,即
    qcs::cmqqueue::uin/1000001:queueName/uin/125000000
    策略中的资源 qcs::cmqqueue::uin/1000001:queueName/uin/125000000 可以通过前缀匹配访问资源 qcs::cmqqueue:ap-chengdu:uin/1000001:queueName/uin/125000000

    策略变量的位置

    资源元素位置 :策略变量可以用在 资源六段式 的最后一段。 条件元素位置 :策略变量可以用在条件值中。
    以下策略表示 VPC 创建者拥有访问权限。
    {
    "version":"2.0",
    "statement": [
    {
    "effect":"allow",
    "action":"name/vpc:*",
    "resource":"qcs::vpc::uin/12357:vpc/*",
    "condition":{"string_equal":{"qcs:create_uin":"${uin}"}}
    }
    ]
    }
    说明:
    对象存储 COS 的资源六段式为 qcs::cos:$region:uid/$appid:$bucketname-$appid/$ResourcesPath,其中 $ResourcesPath 为具体的资源路径,且 $ResourcesPath 中不能使用上述策略变量,完整的 COS 存储桶 Bucket 的资源六段式如下: qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/path_1/path_2/pic.jpeg

    策略变量列表

    目前支持的策略变量列表如下:
    变量名
    变量含义
    ${uin}
    当前访问者的子账号 uin 。对于访问者是主账号的情况,它和主账号 uin 一致。
    ${owner_uin}
    当前访问者所属的主账号 uin 。
    ${app_id}
    当前访问者所属的主账号的 APPID 。
    联系我们

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

    技术支持

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

    7x24 电话支持