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