文档中心>访问管理>用户指南>策略>授权指南>通过标签授权创建自定义策略

通过标签授权创建自定义策略

最近更新时间:2026-04-29 18:41:52

我的收藏

操作场景

本文档介绍如何通过标签授权创建自定义策略,策略生成后该策略将具有一类标签属性资源的权限。策略的相关定义,请参见相关概念

操作步骤

1. 在访问管理控制台的 策略 页面,单击左上角的新建自定义策略
2. 在弹出的选择创建方式窗口中,单击按标签授权,进入按标签授权页面。
3. 可视化策略生成器中的服务操作栏中,按需补充以下信息,编辑一个授权声明。

服务(必选):选择需要授权的产品。
操作(必选):选择需要授权的操作。
说明
操作中包含该服务所有接口,您可以通过是否支持按标签授权筛选是否支持按标签授权的接口。
是:支持按标签授权接口,将包含关联对应标签资源的操作权限。
否:不支持按标签授权接口,将包含所有资源的操作权限。
若要支持多个服务的授权,可单击左上角添加,继续添加多个授权声明,对其他服务进行策略配置。
选择单个服务时,可以选择多个操作。
选择多个服务时, 操作只能选择 *。
一条策略中可以添加多条声明。
选择标签栏,选择需要授权的标签信息,可添加多个标签。
说明:
如需创建标签,具体操作请参见 创建标签
选择条件键栏,按需选择条件后,配置条件运算符和关联资源。
实例/资源匹配规则:用 resource_tag 筛选实例(例如:匹配 env:test,env1:test 的测试实例)。
resource_tag(或)
resource_tag(组)
选择标签栏,选择上述示例的两组标签(env:test,env1:test),条件运算符选择:“或”,指如果子账号访问某个资源请求与指定资源的任何一个标签匹配,则视为成功,即该子账号可以成功访问对应资源。

选择标签栏,选择上述示例的两组标签(env:test,env1:test),条件运算符选择:“组” ,需结合 request_tag 判断标签值是否完全相同,当规则中配置的标签值与请求携带的 request_tag 或实例的 request_tag 完全一致时,匹配成功。
注意:
列表类接口不支持“组”。

请求匹配规则:用 request_tag 筛选请求(例如:匹配 env:test 的测试请求)。
request_tag(或)
request_tag(与)
在权限策略中,若规则要求“请求中任意一个标签的键为“env”,则用 for_any_value 修饰标签匹配条件,只要有一个标签的键是“env”,该条件就成立 。
在标签过滤中,若要求“某资源的多个标签值中存在“test”,则用 for_any_value 表示只要有一个标签值等于“test”即视为匹配成功。

在标签过滤中,若要求“某资源的多个标签键都必须等于“env”,则用 for_all_value 修饰标签匹配条件。

4. 无论选择单个或多个服务,都需要选择是否授予不支持标签的接口"resource": "*"权限
说明:
选择单个服务时,可以选择多个操作。
选择多个服务时, 操作只能选择 *。
选择“是” :通过严格限制用户的操作范围,可以有效避免因误操作或恶意操作带来的安全风险,可以更精细地控制用户对资源的访问权限,确保只有符合特定条件的资源才能被操作。不需要为不支持标签的接口单独授权。
选择“否” :需要为每个不支持标签的接口单独设置策略,会增加策略管理的复杂度。
说明:
务选择全部业务(*),是否授予不支持标签的接口"resource": "*"权限默认选择“否”,不可以选择“是”


5. 单击下一步,进入关联用户/用户组/角色页面。
说明
若系统提示:当前策略内容过多,超出策略字符限制,需要拆分多条策略。可以单击自动拆分,系统会协助拆分策略。

策略自动拆分的逻辑:系统会自动对字符数超过 6144 的策略进行拆分。
6. 关联用户/用户组/角色页面补充策略名称和描述信息,可同时在关联用户/用户组/角色模块快速给需要的用户/用户组/角色授权该策略,单击完成,完成按策略生成器创建自定义策略的操作。
说明:
策略名称由控制台自动生成,默认为 "PolicyByTag" ,后缀数字根据创建日期生成,您也可以自定义策略名称。
本文以超出策略字符限制为例,设置的策略被自动拆分为两个策略。


后续操作

若您创建了策略,但未授权给用户/用户组/角色,后续如需将该策略授权给用户/用户组/角色,详情请参见 授权管理

附录:通过标签授权策略案例说明

qcs:resource_tag 案例

假设您拥有多个 VPC 实例,并希望限制子用户 demo 仅能查看带有 env:test 标签的 VPC 实例,不能查看到全部的 VPC 实例。此时,可以通过 qcs:request_tag 来实现该功能。

策略语法

{
"version": "2.0",
"statement": [
{
"effect": "allow",
"condition": {
"for_any_value:string_equal": {
"qcs:resource_tag": [
"env&test"
]
}
},
"action": [
"vpc:DescribeVpcs"
],
"resource": "*"
}
]
}

操作步骤

1. 私有网络 VPC 控制台,创建一个 VPC 实例后,并给该实例绑定标签 env:test。
说明:
如需创建 VPC 实例,请参见 创建私有网络
如需创建标签并绑定资源,请参见 创建标签并绑定资源

2. 前往 访问管理 > 策略 页面,单击新建自定义策略,选择按标签授权
3. 可视化策略生成器页面,服务选择私有网络 (vpc)操作选择 DescribeVpcs,选择标签 env:test,选择条件 resource_tag,单击下一步

4. 关联用户/用户组/角色页面,单击选择用户,在弹出的窗口中选择 demo,单击确定,然后单击完成。

5. 使用子账号 demo 登录 VPC 控制台,demo 只能查看绑定了 env:test 标签的 VPC 实例,符合预期。


qcs:request_tag 案例

假设您的业务需求是只允许在创建 VPC 时必须包含 env:test 标签,可以通过 qcs:request_tag 来实现该需求。

策略语法

{
"version": "2.0",
"statement": [
{
"effect": "allow",
"condition": {
"for_any_value:string_equal": {
"qcs:request_tag": [
"env&test"
]
}
},
"action": [
"vpc:CreateVpc",
"vpc:CreateSubnet"
],
"resource": [
"qcs::vpc::uin/1000112*****:subnet/*",
"qcs::vpc::uin/1000112*****:vpc/*",
"qcs::vpc::uin/1000112*****:vpce/*"
]
},
{
"effect": "allow",
"resource": "*",
"action": [
"vpc:DescribeIngressRouteTables",
"vpc:DescribeIngressRoutes"
]
}
]
}

操作步骤

1. 前往 访问管理 > 策略 页面,单击新建自定义策略,选择按标签授权
2. 可视化策略生成器页面,服务选择私有网络 (vpc)操作选择 CreateSubnetCreateVpc,选择标签 env:test ,选择条件 request_tag。
说明:
如果涉及其他不支持标签的接口也可以正常勾选,建议勾选下方“是否授予不支持标签的接口"resource": "*"权限”模块的,勾选后无需再为不支持标签的接口单独授权。

3. 关联用户/用户组/角色页面,单击选择用户,在弹出的窗口中选择 demo,单击确定,然后单击完成。

4. 使用子账号 demo 登录 VPC 控制台,创建 VPC 时,只能选择标签 env:test 才能创建成功。

5. 创建成功的 VPC 实例,会带有 env:test 的标签。