概述
访问策略可用于授予访问腾讯云数据仓库 TCHouse-P 集群的权限。访问策略使用基于 JSON 的访问策略语言。您可以通过访问策略语言授权指定委托人(principal)对指定的腾讯云数据仓库 TCHouse-P 集群资源执行指定的操作。
访问策略中的元素
访问策略语言包含以下基本意义的元素:
语句(statement):描述一条或多条权限的详细信息。该元素包括效力、操作、资源、条件等多个其他元素的权限或权限集合。一条策略有且仅有一个语句元素。
效力(effect):描述声明产生的结果是“允许”还是“显式拒绝”,包括 allow 和 deny 两种情况。该元素是必填项。
操作(action):描述允许或拒绝的操作。操作可以是 API(以 name 前缀描述)或者功能集(一组特定的 API,以 permid 前缀描述)。该元素是必填项。
资源(resource):描述授权的具体数据。资源是用六段式描述。每款产品的资源定义详情会有所区别。该元素是必填项。
条件(condition):描述策略生效的约束条件。条件包括操作符、操作键和操作值组成。条件值可包括时间、IP 地址等信息。有些服务允许您在条件中指定其他值。该元素是选填项。
元素用法
指定效力
如果没有显式授予(允许)对资源的访问权限,则隐式拒绝访问。同时,也可以显式拒绝(deny)对资源的访问,这样可确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也无法访问。下面是指定允许权限的示例:
"effect" : "allow"
指定操作
腾讯云数据仓库 TCHouse-P 定义了可在策略中指定一类控制台的操作,指定的操作按照操作性质分为读取部分接口(cdwpg:Describe*)和全部接口(cdwpg:*)。
指定允许操作的示例如下:
"action": ["name/cdwpg:Describe*"]
指定资源
资源(resource)元素描述一个或多个操作对象,如腾讯云数据仓库 TCHouse-P 集群资源等。所有资源均可采用下述的六段式描述方式。
qcs:project_id:service_type:region:account:resource
参数说明如下:
参数 | 描述 | 是否必选 |
qcs | 是 qcloud service 的简称,表示是腾讯云的云服务 | 是 |
project_id | 描述项目信息,仅为了兼容 CAM 早期逻辑,一般不填 | 否 |
service_type | 这里为 cdwpg | 是 |
region | 描述地域信息 | 是 |
account | 描述资源拥有者的主账号信息,即主账号 UIN,表示为 uin/${OwnerUin} ,如 uin/100000000001 | 是 |
resource | 描述具体资源详情,前缀为 cdwpg-instance | 是 |
下面是一个腾讯云数据仓库 TCHouse-P 集群的六段式信息:
"resource":["qcs::cdwpg:ap-guangzhou:uin/100000000001:cdwpg-instance/snova-73jingds"]
指定条件
访问策略语言可使您在授予权限时指定条件。在腾讯云数据仓库 TCHouse-P 场景下主要是用于设置标签鉴权,标签条件只对绑定了该标签的集群生效,标签策略示例如下:
"condition": {"for_any_value:string_equal": {"qcs:tag": ["jing&jingfdd"]}}
这个语句含义是策略包含标签 key 为 jing,value 为 jingfdd 的资源。
实际案例
如下案例中,策略的含义是允许访问 UIN 为1250000000下面的集群 ID 为 snova-jidnshgdsh 的资源,以及绑定了标签键为 testkey,标签值为 testvalue 的资源。
{"version": "2.0","statement": [{"action": ["name/cdwpg:Describe*",],"condition": {"for_any_value:string_equal": {"qcs:tag": ["testkey&testvalue"]}},"effect": "allow","resource": ["qcs::cdwpg:ap-guangzhou:uin/1250000000:cdwpg-instance/snova-jidnshgdsh"]}]}