权限及授权项说明
如果您需要对您所拥有的CPH进行精细的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用CPH服务的其它功能。
默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使用户组中的用户获得相应的权限,这一过程称为授权。授权后,用户就可以基于已有权限对云服务进行操作。
权限根据授权的精细程度,分为角色和策略。角色以服务为粒度,是IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。策略以API接口为粒度进行权限拆分,授权更加精细,可以精确到某个操作、资源和条件,能够满足企业对权限最小化的安全管控要求。
如果您要允许或是禁止某个接口的操作权限,请使用策略。
账号具备所有接口的调用权限,如果使用账号下的IAM用户发起API请求时,该IAM用户必须具备调用该接口所需的权限,否则,API请求将调用失败。每个接口所需要的权限,与各个接口所对应的授权项相对应,只有发起请求的用户被授予授权项所对应的策略,该用户才能成功调用该接口。例如,用户要调用接口来查询云服务器列表,那么这个IAM用户被授予的策略中必须包含允许“cph:servers:list”的授权项,该接口才能调用成功。
支持的授权项
策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下:
- 权限:允许或拒绝某项操作。
- 对应API接口:自定义策略实际调用的API接口。
- 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。
- 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效,目前CPH暂不支持企业项目授权。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。
“√”表示支持,“×”表示暂不支持。
CPH的支持自定义策略授权项如表1所示。
表1 CPH自定义策略授权项 权限
对应API接口
授权项(Action)
IAM项目
(Project)
企业项目
(Enterprise Project)
创建云手机服务器
POST /v2/{project_id}/cloud-phone/servers
cph:servers:create
√
√
切换云手机服务器
POST /v2/{project_id}/cloud-phone/servers/{server_id}/change
cph:servers:change
√
√
查询云手机服务器列表
GET /v1/{project_id}/cloud-phone/servers
cph:servers:list
√
√
查询云手机服务器详情
GET /v1/{project_id}/cloud-phone/servers/{server_id}
cph:servers:get
√
√
查询云手机服务器规格列表
GET /v1/{project_id}/cloud-phone/server-models
cph:system:listServerTypes
√
×
修改云手机服务器名称
PUT /v1/{project_id}/cloud-phone/servers/{server_id}
cph:servers:updateName
√
√
变更云手机服务器规格
POST /v1/{project_id}/cloud-phone/servers/change-server-model
cph:servers:changeType
√
√
重启云手机服务器
POST /v1/{project_id}/cloud-phone/servers/batch-restart
cph:servers:restart
√
√
推送共享存储文件
POST /v1/{project_id}/cloud-phone/phones/share-files
cph:servers:pushShareFiles
√
√
查询共享存储文件
GET /v1/{project_id}/cloud-phone/servers/share-files
cph:servers:getShareFiles
√
√
删除共享存储文件
POST /v1/{project_id}/cloud-phone/phones/share-files
cph:servers:deleteShareFiles
√
√
推送共享应用
POST /v1/{project_id}/cloud-phone/phones/share-apps
cph:servers:pushShareApps
√
√
删除共享应用
DELETE /v1/{project_id}/cloud-phone/phones/share-apps
cph:servers:deleteShareApps
√
√
更改密钥对
PUT /v1/{project_id}/cloud-phone/servers/open-access
cph:servers:updateKeypair
√
√
查询编码服务
GET /v1/{project_id}/cloud-phone/encode-servers
cph:servers:listEncodeServers
√
√
重启编码服务
POST /v1/{project_id}/cloud-phone/encode-servers/batch-restart
cph:servers:restartEncodeServers
√
√
查询带宽信息
GET /v1/{project_id}/cloud-phone/bandwidths
cph:bandwidths:list
√
×
修改共享带宽
PUT /v1/{project_id}/cloud-phone/bandwidths/{band_width_id}
cph:bandwidths:put
√
×
查询云手机列表
GET /v1/{project_id}/cloud-phone/phones
cph:phones:list
√
√
查询云手机详情
GET /v1/{project_id}/cloud-phone/phones/{phone_id}
cph:phones:get
√
√
查询云手机规格列表
GET /v1/{project_id}/cloud-phone/phone-models
cph:system:listPhoneSpecifications
√
×
重置云手机实例
POST /v1/{project_id}/cloud-phone/phones/batch-reset
cph:phones:reset
√
√
重启云手机实例
POST /v1/{project_id}/cloud-phone/phones/batch-restart
cph:phones:restart
√
√
关闭云手机实例
POST /v1/{project_id}/cloud-phone/phones/batch-stop
cph:phones:stop
√
√
修改云手机名称
PUT /v1/{project_id}/cloud-phone/phones/{phone_id}
cph:phones:updateName
√
√
更新云手机属性
POST /v1/{project_id}/cloud-phone/phones/batch-update-property
cph:phones:updateProperty
√
√
导出云手机数据
POST /v1/{project_id}/cloud-phone/phones/batch-storage
cph:phones:storage
√
√
恢复云手机数据
POST /v1/{project_id}/cloud-phone/phones/batch-restore
cph:phones:restore
√
√
云手机流量导流
POST /v1/{project_id}/cloud-phone/phones-traffic
cph:phones:createTrafficRoute
√
√
云手机磁盘扩容
POST /v1/{project_id}/cloud-phone/phones/expand-volume
cph:phones:expandVolume
√
√
获取云手机连接信息
POST /v1/{project_id}/cloud-phone/phones/batch-connection
cph:phones:getConnections
√
√
异步执行adb shell命令
POST /v1/{project_id}/cloud-phone/phones/commands
cph:phones:execCommands
√
√
同步执行adb shell命令
POST /v1/{project_id}/cloud-phone/phones/sync-commands
cph:phones:execSyncCommands
√
√
查询任务执行状态
GET /v1/{project_id}/cloud-phone/jobs/{job_id}
cph:jobs:get
√
×
查询任务执行状态列表
GET /v1/{project_id}/cloud-phone/jobs
cph:jobs:list
√
×
批量添加标签
POST /v1/{project_id}/{resource_type}/{resource_id}/tags/action
cph:resource:tagResource
√
√
批量删除标签
POST /v1/{project_id}/{resource_type}/{resource_id}/tags/action
cph:resource:unTagResource
√
√
查询资源实例
POST /v1/{project_id}/{resource_type}/resource_instances/action
cph:resource:listResourcesByTag
√
√
查询资源标签
GET /v1/{project_id}/{resource_type}/{resource_id}/tags
cph:resource:listTagsForResource
√
√
查询项目标签
GET /v1/{project_id}/{resource_type}/tags
cph:resource:listTags
√
√
获取手机镜像列表
GET /v1/{project_id}/cloud-phone/images
cph:images:list
√
×
删除手机镜像
DELETE /v1/{project_id}/cloud-phone/images/{image_id}
cph:images:delete
√
×
手机镜像共享
POST /v1/{project_id}/cloud-phone/images/{image_id}/members
cph:images:addMembers
√
×
获取手机镜像共享用户列表
GET /v1/{project_id}/cloud-phone/images/{image_id}/members
cph:images:listMembers
√
×
手机镜像取消共享
DELETE /v1/{project_id}/cloud-phone/images/{image_id}/members/{member_id}
cph:images:deleteMembers
√
×
获取可用区列表
GET /v1/{project_id}/cloud-phone/availability-zones
cph:system:listServerTypesSoldOutStatus
√
×
获取子网列表
GET /v1/{project_id}/cloud-phone/subnets
cph:system:listSubnets
√
×
查询对等连接配置
GET /v1/{project_id}/cloud-phone/peering-routes
cph:system:listPeerings
√
×
删除对等连接配置
DELETE /v1/{project_id}/cloud-phone/peering-routes
cph:system:deletePeerings
√
×
添加对等连接配置
POST /v1/{project_id}/cloud-phone/peering-routes
cph:system:createPeerings
√
×
导出云手机详情
GET /v1/{project_id}/cloud-phone/phones/phone-export
cph:phones:exportDetails
√
√
创建委托
POST /v1/{project_id}/agencies
cph:system:createAgencies
√
×
检查委托
GET /v1/{project_id}/agencies
cph:system:checkAgencies
√
×