使用标签授权常见的需求场景是给子账号授权管理多个标签关联资源的权限,这里一般是需要取多个标签关联资源的并集,这种情况直接在访问管理控制台通过"按标签授权"就能直接生成对应的策略,如下形式
{ "version": "2.0", "statement": [ { "effect": "allow", "action": "*", "resource": "*", "condition": { "for_any_value:string_equal": { "qcs:tag": [ "key1&value1", "key2&value2" ] } } } ] }
但少数场景用户可能需要授权多个标签各自关联资源集的交集的权限,由于列表类API不支持这种能力,可以把列表类API用单独的statement列出来授权查看整个列表的权限,针对其他CURD API授权标签交集的权限,比如当需要授权的是cvm的权限时,可把策略写成如下形式
{ "version": "2.0", "statement": [ { "effect": "allow", "action": "cvm:DescribeInstances", "resource": "*" }, { "effect": "allow", "action": "*", "resource": "*", "condition": { "for_all_value:string_equal": { "qcs:tag": [ "key1&value1", "key2&value2" ] } } } ] }
注意,当需要标签取交集时condition运算符用for_all_value,而不是for_any_value。
原创声明,本文系作者授权云+社区发表,未经许可,不得转载。
如有侵权,请联系 yunjia_community@tencent.com 删除。
我来说两句