身份策略授权参考
云服务在IAM预置了常用的权限,称为系统身份策略。如果IAM系统身份策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建IAM自定义身份策略来进行精细的访问控制,IAM自定义身份策略是对系统身份策略的扩展和补充。
除IAM服务外,Organizations服务中的服务控制策略(Service Control Policy,以下简称SCP)也可以使用这些授权项元素设置访问控制策略。
SCP不直接进行授权,只划定权限边界。将SCP绑定到组织单元或者成员账号时,并没有直接对组织单元或成员账号授予操作权限,而是规定了成员账号或组织单元包含的成员账号的授权范围。IAM身份策略授予权限的有效性受SCP限制,只有在SCP允许范围内的权限才能生效。
IAM服务与Organizations服务在使用这些元素进行访问控制时,存在着一些区别,详情请参见:IAM服务与Organizations服务权限访问控制的区别。
本章节介绍IAM服务身份策略授权场景中自定义身份策略和组织服务中SCP使用的元素,这些元素包含了操作(Action)、资源(Resource)和条件(Condition)。
操作(Action)
操作(Action)即为身份策略中支持的授权项。
- “访问级别”列描述如何对操作进行分类(List、Read和Write等)。此分类可帮助您了解在身份策略中相应操作对应的访问级别。
- “资源类型”列指每个操作是否支持资源级权限。
- 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在身份策略语句的Resource元素中指定所有资源类型(“*”)。
- 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。
- 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。
关于AICS定义的资源类型的详细信息请参见资源类型(Resource)。
- “条件键”列包括了可以在身份策略语句的Condition元素中支持指定的键值。
- 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。
- 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。
- 如果此列条件键没有值(-),表示此操作不支持指定条件键。
关于AICS定义的条件键的详细信息请参见条件(Condition)。
- “别名”列包括了可以在身份策略中配置的策略授权项。通过这些授权项,可以控制支持策略授权的API访问。详细信息请参见身份策略兼容性说明。
您可以在身份策略语句的Action元素中指定以下AICS的相关操作。
| 授权项 | 描述 | 访问级别 | 资源类型(*为必须) | 条件键 | 别名 |
|---|---|---|---|---|---|
| aics::listClusters | 授予查询集群列表的权限。 | List | - | - | - |
| aics::getCluster | 授予查询集群详情的权限。 | Read | - | - | - |
| aics::deleteCluster | 授予删除集群的权限。 | Write | - | - | - |
| aics:hypernode:create | 授予创建超节点的权限。 | Write | hypernode * | - | - |
| - | |||||
| aics:hypernode:list | 授予查询超节点列表的权限。 | List | hypernode * | - | - |
| aics:hypernode:get | 授予查询超节点详情的权限。 | Read | hypernode * | - | |
| aics:hypernode:updateMetadata | 授予更新超节点元数据的权限。 | Write | hypernode * | - | |
| aics:hypernode:deleteMetadata | 授予删除超节点元数据的权限。 | Write | hypernode * | - | |
| aics:node:list | 授予查询节点列表的权限。 | List | node * | - | - |
| hypernode | - | ||||
| - | |||||
| aics:node:get | 授予查询节点详情的权限。 | Read | node * | - | |
| hypernode | |||||
| aics:node:stop | 授予节点关机的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:start | 授予节点开机的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:reimage | 授予节点切换操作系统镜像的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:reinstall | 授予节点重装操作系统的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:reboot | 授予节点重启的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:attachVolume | 授予节点绑定磁盘的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:detachVolume | 授予节点解绑磁盘的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:attachInterface | 授予节点绑定网卡的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:detachInterface | 授予节点解绑网卡的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:bindPublicip | 授予节点绑定弹性公网IP的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:node:unbindPublicip | 授予节点解绑弹性公网IP的权限。 | Write | node * | - | |
| hypernode | |||||
| aics:hypernode:listTags | 授予查询hypernode标签集合的权限。 | List | - | - | - |
| aics:hypernode:listResourcesByTag | 授予按标签统计hypernode资源数量、列举hypernode资源实例的权限。 | List | - | - | |
| aics:hypernode:listTagsForResource | 授予查询单个hypernode标签详情的权限。 | List | hypernode * | - | |
| aics:hypernode:tagResource | 授予创建或覆盖hypernode标签的权限。 | Tagging | hypernode * | - | |
| - | |||||
| aics:hypernode:unTagResource | 授予删除hypernode标签的权限。 | Tagging | hypernode * | - | |
| - | |||||
| aics:node:listTags | 授予查询node标签集合的权限。 | List | - | - | - |
| aics:node:listResourcesByTag | 授予按标签统计node资源数量、列举node资源实例的权限。 | List | - | - | |
| aics:node:listTagsForResource | 授予查询单个node标签详情的权限。 | List | node * | - | |
| hypernode | |||||
| aics:node:tagResource | 授予创建或覆盖node标签的权限。 | Tagging | node * | - | |
| hypernode | |||||
| - | |||||
| aics:node:unTagResource | 授予删除node标签的权限。 | Tagging | node * | - | |
| hypernode | |||||
| - | |||||
| aics::createCluster | 授予创建集群的权限。 | Write | - | - | - |
| aics::listImages | 授予查询镜像列表的权限。 | List | - | - | - |
| aics::listHypernodeTypes | 授予查询超节点规格列表的权限。 | List | - | - | - |
| aics::getHypernodeType | 授予查询超节点规格详情的权限。 | Read | - | - | - |
| aics::listSoftware | 授予查询软件列表的权限。 | List | - | - | - |
| aics::listOperations | 授予查询操作记录列表的权限。 | List | - | - | - |
| aics::getOperation | 授予查询操作记录详情的权限。 | Read | - | - | - |
| aics::listScheduledEvents | 授予查询计划事件列表的权限。 | List | - | - | - |
| aics::acceptScheduledEvent | 授予接受并授权执行计划事件操作的权限。 | Write | - | - | - |
| aics::listClusterCapacityEvaluation | 授予查询集群可售情况的权限。 | List | - | - | - |
| aics::listCapacityEvaluation | 授予查询指定超节点规格可售情况的权限。 | List | - | - | - |
| aics::listFeatureConfigs | 授予查询特性配置的权限。 | List | - | - | - |
| aics::listHyperGroupCapacityEvaluation | 授予查询超节点组可售情况的权限。 | List | - | - | - |
| aics::listHyperGroups | 授予查询超节点组列表的权限。 | List | - | - | - |
AICS的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。
| API | 对应的授权项 | 依赖的授权项 |
|---|---|---|
| aics:hypernode:create |
| |
| aics:hypernode:list | - | |
| aics:hypernode:get | - | |
| aics:hypernode:updateMetadata | - | |
| DELETE /v2/{project_id}/hypernodes/{hypernode_id}/metadata/{key} | aics:hypernode:deleteMetadata | - |
| aics:node:list | eip:publicIps:list | |
| aics:node:get | eip:publicIps:list | |
| aics:node:stop |
| |
| aics:node:start |
| |
| aics:node:reimage |
| |
| aics:node:reinstall |
| |
| aics:node:reboot |
| |
| aics:node:attachVolume |
| |
| DELETE /v2/{project_id}/nodes/{node_id}/volume-attachments/{volume_id} | aics:node:detachVolume | ecs:cloudServers:detachVolume |
| aics:node:attachInterface |
| |
| DELETE /v2/{project_id}/nodes/{node_id}/interface-attachments/{port_id} | aics:node:detachInterface | ecs:cloudServerNics:delete |
| aics:node:bindPublicip |
| |
| DELETE /v2/{project_id}/nodes/{node_id}/publicips/{publicip_id} | aics:node:unbindPublicip |
|
| aics:hypernode:listTags | - | |
| aics:node:listTags | - | |
| aics:hypernode:listResourcesByTag | - | |
| aics:node:listResourcesByTag | - | |
| aics:hypernode:listResourcesByTag | - | |
| aics:node:listResourcesByTag | - | |
| aics:hypernode:listTagsForResource | - | |
| aics:node:listTagsForResource | - | |
| aics:hypernode:tagResource | - | |
| aics:node:tagResource | - | |
| aics:hypernode:unTagResource | - | |
| aics:node:unTagResource | - | |
| aics::createCluster | ecs:cloudServers:listServersDetails | |
| aics::listClusters | - | |
| aics::getCluster | - | |
| aics::deleteCluster | - | |
| aics::listImages | - | |
| aics::listHypernodeTypes | - | |
| aics::getHypernodeType | - | |
| aics::listSoftware | - | |
| aics::listOperations | - | |
| aics::getOperation | - | |
| aics::listScheduledEvents | - | |
| POST /v2/{project_id}/scheduled-events/{schedule_event_id}/accept | aics::acceptScheduledEvent | - |
| aics::listClusterCapacityEvaluation | - | |
| aics::listCapacityEvaluation | - | |
| aics::listFeatureConfigs | - | |
| aics::listHyperGroupCapacityEvaluation | - | |
| aics::listHyperGroups | - |
资源类型(Resource)
资源类型(Resource)用于定义身份策略生效的资源范围。如表3中某项操作已指定了对应的资源类型,则在包含该操作的身份策略语句中选择填写对应资源的URN时,身份策略仅对该指定资源生效;未填写对应资源的URN时,身份策略将对指定资源类型下所有资源生效;如未指定资源类型,Resource默认取值为“*”,身份策略将作用于所有资源。此外,您也可在身份策略中设置条件,进一步精细化限定资源类型。
AICS定义了以下可以在自定义身份策略的Resource元素中使用的资源类型。