简介
本文档将会为您介绍存储网关(Cloud Storage Gateway,CSG)相关的授权策略语法,方便您进行更细致的授权操作。
策略语法
CSG 支持的 CAM 策略:
{"version":"2.0","statement":[{"effect":"effect","action":["action"],"resource":["resource"],}]}
版本 version 是必填项,目前仅允许值为"2.0"。
语句 statement 是用来描述一条或多条权限的详细信息。该元素包括 effect、action、resource,condition 等多个其他元素的权限或权限集合。一条策略有且仅有一个 statement 元素。
影响 effect 描述声明产生的结果是“允许”还是“显式拒绝”。包括 allow(允许)和 deny(显式拒绝)两种情况。该元素是必填项。
操作 action 用来描述允许或拒绝的操作。操作可以是 API (以 name 前缀描述)或者功能集(一组特定的 API,以 permid 前缀描述)。该元素是必填项。
资源 resource 描述授权的具体数据。资源是用六段式描述。每款产品的资源定义详情会有所区别。有关如何指定 CSG 资源的信息,请参阅本文档后续内容。该元素是必填项。
CSG 的操作
在访问管理(Cloud Access Management,CAM)策略语句中,您可以从支持 CAM 的任何服务中指定任意的 API 操作。对于 CSG,请使用以
name/csg:
为前缀的 API。例如: name/csg:ListGateways
或者 name/csg:DescribeGatewayInformation
。
如果您要在单个语句中指定多个操作的时候,请使用逗号将它们隔开,如下所示:"action":["name/csg:action1","name/csg:action2"]
您也可以使用通配符指定多项操作。例如,您可以指定名字以单词“Describe”开头的所有操作,如下所示:
"action":["name/csg:Describe*"]
如果您要指定 CVM 中所有操作,请使用 * 通配符,如下所示:
"action":["name/csg:*"]
CSG 的资源路径
每个 CAM 策略语句都有适用于自己的资源。
资源路径的一般形式如下:
qcs:project_id:service_type:region:account:resource
project_id:描述项目信息,仅为了兼容 CAM 早期逻辑,无需填写。
service_type:产品简称,如:CSG。
region:地域信息,如:ap-guangzhou。
account:资源拥有者的根账号信息,如:
uin/1575000548
。resource:各产品的具体资源详情,如:
gateway/gateway_id
或者 gateway/*
以及 gateway/gateway_id/fileshare/fileshare_id
或者 gateway/gateway_id/fileshare/*
。
例如,您可以指定存储网关实例 (csg-d3e2c66f) ,如下所示:"resource":["qcs::csg:ap-guangzhou:uin/1575000548:gateway/csg-d3e2c66f"]
您也可以指定到存储网关实例 (csg-d3e2c66f) 下的文件系统实例 (nfs-1aeae873) ,如下所示:
"resource":["qcs::csg:ap-guangzhou:uin/1575000548:gateway/csg-d3e2c66f/fileshare/nfs-1aeae873"]
您还可以使用 * 通配符指定属于特定账户的所有实例,如下所示:
"resource":["qcs::csg:ap-guangzhou:uin/1575000548:gateway/*"]
您要指定所有资源,或者如果特定 API 操作不支持资源级权限,请在 Resource 元素中使用 * 通配符,如下所示:
"resource": ["*"]
如果您想要在一条指令中同时指定多个资源,请使用逗号将它们隔开,如下所示为指定两个资源的例子:
"resource":["resource1","resource2"]
下表描述了 CSG 能够使用的资源和对应的资源描述方法。在下表中,$为前缀的单词均为代称。
其中,region 指代的是地域。
其中,account 指代的是账户 ID。
资源 | 授权策略中的资源描述方法 |
网关实例 | qcs::${csg}:${Region}:uin/${OwnerUin}:gateway/${gatewayid} |
文件系统实例 | qcs::${csg}:${Region}:uin/${OwnerUin}:gateway/${gatewayid}/fileshare/${fileshareid} |