访问管理 策略变量

场景假设:你希望给每个 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}"}} } ]}

注意:说明:

三、策略变量列表

目前支持的策略变量列表如下:

变量名 变量含义
${uin} 当前访问者的子账号 uin 。对于访问者是主账号的情况,它和主账号 uin 一致。
${qcs:user} 当前访问者的子账号的用户名 。
${owner_uin} 当前访问者所属的主账号 uin 。
${app_id} 当前访问者所属的主账号的 APPID 。
赞 (0)
上一篇 4天前
下一篇 4天前