访问管理

最近更新时间: 2023-03-22 13:54:17

访问管理概述

如果您在云平台中使用到了云服务器(CVM,CloudVirtualMachine)、私有网络、数据库等服务,这些服务由不同的人管理,但都共享您的云账号密钥,将存在以下问题:

 • 您的密钥由多人共享,泄密风险高;
 • 您无法限制其它人的访问权限,易产生误操作造成安全风险。
这个时候,您就可以通过子帐号实现不同的人管理不同的服务,以避免以上的问题。默认情况下,子帐号没有使用CVM的权利或者CVM相关资源的的权限。因此,我们就需要创建策略来允许子帐号使用他们所需要的资源或者权限。
访问管理(CAM,CloudAccessManagement)是云平台提供的一套Web服务,它主要用于帮助客户安全管理云平台账户下的资源的访问权限。通过CAM,您可以创建、管理和销毁用户(组),并通过身份管理和策略管理控制哪些人可以使用哪些云平台资源。
当您使用CAM的时候,可以将策略与一个用户或者一组用户关联起来,策略能够授权或者拒绝用户使用指定资源完成指定任务。
如果您不需要对子账户进行CVM相关资源的访问管理,您可以跳过此章节。跳过这些部分并不影响您对文档中其余部分的理解和使用。
该功能目前处于灰度中,可提工单申请。

入门

CAM策略必须授权使用一个或多个CVM操作或者必须拒绝使用一个或多个CVM操作。同时还必须指定可以用于操作的资源(可以是全部资源,某些操作也可以是部分资源),策略还可以包含操作资源所设置的条件。
CVM部分API操作支持资源级权限,意味着,对于该类API操作,您不能在使用该类操作的时候指定某个具体的资源来使用,而必须要指定全部资源来使用。

授权策略语法

策略语法
CAM策略:

{ "version":"2.0", "statement": [ { "effect":"effect", "action":["action"], "resource":["resource"], "condition":{"key":{"value"}} } ] }

 • 版本version是必填项,目前仅允许值为"2.0"。  • 语句statement是用来描述一条或多条权限的详细信息。该元素包括effect、action、resource,condition等多个其他元素的权限或权限集合。一条策略有且仅有一个statement元素。   1. 操作action用来描述允许或拒绝的操作。操作可以是API(以name前缀描述)或者功能集(一组特定的API,以permid前缀描述)。该元素是必填项。   2. 资源resourcce描述授权的具体数据。资源是用六段式描述。每款产品的资源定义详情会有所区别。有关如何指定资源的信息,请参阅您编写的资源声明所对应的产品文档。该元素是必填项。   3. 生效条件condition描述策略生效的约束条件。条件包括操作符、操作键和操作值组成。条件值可包括时间、IP地址等信息。有些服务允许您在条件中指定其他值。该元素是非必填项。   4. 影响effect描述声明产生的结果是“允许”还是“显式拒绝”。包括allow(允许)和deny(显式拒绝)两种情况。该元素是必填项。

CVM的操作
在CAM策略语句中,您可以从支持CAM的任何服务中指定任意的API操作。对于CVM,请使用以name/cvm:为前缀的API。例如:name/cvm:RunInstances或者name/cvm:ResetInstancesPassword。如果您要在单个语句中指定多个操作的时候,请使用逗号将它们隔开,如下所示:

"action":["name/cvm:action1","name/cvm:action2"]

您也可以使用通配符指定多项操作。例如,您可以指定名字以单词"Describe"开头的所有操作,如下所示:

"action":["name/cvm:Describe*"]
如果您要指定CVM中所有操作,请使用\*通配符,如下所示: "action":["name/cvm:*"]

CVM的资源路径
每个CAM策略语句都有适用于自己的资源。资源路径的一般形式如下:

qcs:project_id:service_type:region:account:resource

project_id:描述项目信息,仅为了兼容CAM早期逻辑,无需填写。
service_type:产品简称,如CVM。
region:地域信息,如bj。
account:资源拥有者的根帐号信息,如uin/164256472。
resource:各产品的具体资源详情,如instance/instance_id1或者instance/*。 例如,您可以使用特定实例(i-15931881scv4)在语句中指定它,如下所示:

"resource":["qcs::cvm:bj:uin/164256472:instance/i-15931881scv4"]

您还可以使用*通配符指定属于特定账户的所有实例,如下所示:

"resource":["qcs::cvm:bj:uin/164256472:instance/*"]

您要指定所有资源,或者如果特定API操作不支持资源级权限,请在Resource元素中使用*通配符,如下所示:

"resource":["*"]
如果您想要在在一条指令中同时指定多个资源,请使用逗号将它们隔开,如下所示为指定两个资源的例子: "resource":["resource1","resource2"]

下表描述了CVM能够使用的资源和对应的资源描述方法。
在下表中,$为前缀的单词均为代称。-其中,project指代的是项目ID。-其中,region指代的是地域。-其中,account指代的是账户ID。

CVM的条件密钥
在策略语句中,您可以选择性指定控制策略生效时间的条件。每个条件都包含一个或多个密钥值对。条件密钥不区分大小写。
  • 如果您指定了多个条件或在单一条件中指定了多个密钥,我们将通过逻辑AND操作对其进行评估。
  • 如果您在单一条件中指定了一个具有多个值的密钥,我们将通过逻辑OR操作对其进行评估。必须匹配所有条件才能授予权限。下表描述了CVM用于特定于服务的条件键。

条件键 参考类型 键值对
cvm:instance_type String cvm:instance_type=instance_type
o 其中instance_type指代的是实例类型(例如S1.SMALL1)。
cvm:image_type String cvm:image_type=image_type
o 其中image_type指代的是镜像类型(例如IMAGE_PUBLIC)
vpc:region String vpc:region=region
o 其中region指代的是地域(例如ap-guangzhou)
cvm:disk_size Integer cvm:disk_size=disk_size
o 其中disk_size指代的是磁盘大小(例如500)
cvm:disk_type String cvm_disk_type=disk_type
o 其中disk_type指代的是磁盘类型(例如CLOUD_BASIC)
cvm:region String cvm:region=region
o 其中region指代的是地域(例如ap-guangzhou)