一、操作步骤
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. 单击下一步,进入关联用户/用户组/角色页面。
注意:
6. 在关联用户/用户组/角色页面补充策略名称和描述信息,可同时在关联用户/用户组/角色模块快速给需要的用户/用户组/角色授权该策略,单击完成,完成按策略生成器创建自定义策略的操作。
注意:说明:
二、后续操作
若你创建了策略,但未授权给用户/用户组/角色,后续如需将该策略授权给用户/用户组/角色,详情请参见 授权管理。
三、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。
注意:说明:
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),操作选择 CreateSubnet、CreateVpc,选择标签 env:test ,选择条件 request_tag。
注意:说明:
注意:如果涉及其他不支持标签的接口也可以正常勾选,建议勾选下方“是否授予不支持标签的接口"resource": "*"权限”模块的是,勾选后无需再为不支持标签的接口单独授权。
3. 在关联用户/用户组/角色页面,单击选择用户,在弹出的窗口中选择 demo,单击确定,然后单击完成。
4. 使用子账号 demo 登录 VPC 控制台,创建 VPC 时,只能选择标签 env:test 才能创建成功。
5. 创建成功的 VPC 实例,会带有 env:test 的标签。