身份认证(Identity)¶
目录
- 身份认证(Identity)
- 概览(Overview)
- 权限控制(Permission Control)
- 管理员账户(Admin Account)
- 共享资源(Shared Resources)
- 操作(Operations)
- 创建账户(Create Account)
- 创建用户(Create Users)
- 创建组(Create Groups)
- 创建策略(Create Polices)
- 添加用户到组中(Add Users into Groups)
- 挂载策略到组上(Attach Polices to Groups)
- 挂载策略到用户上(Attach Polices to Users)
- 从组卸载策略(Detach Polices from Groups)
- 从用户卸载策略(Detach Polices from Users)
- 重置账户口令(Reset Account Password)
- 重置用户口令(Reset User Password)
- 删除组(Delete Groups)
- 删除用户(Delete Users)
- 删除策略(Delete Policies)
- 删除账户(Delete Accounts)
- 更新账户配额(Update Account Quota)
- 共享资源(Share Resources)
- 召回共享资源(Revoke Shared Resources)
- 查询账户(Query Accounts)
- 查询用户(Query Users)
- 查询策略(Query Policy)
- 查询组(Query Groups)
- 参考信息(Reference)
概览(Overview)¶
ZStack的身份认证服务(identity service)负责提供ZStack资源的访问控制( access control). 系统中定义了账户(account), 用户(user), 组(group), 策略(policy), 和配额(quota)等概念. 身份认证系统的整体结构如图所示:
账户(Account)¶
人们需要创建作为拥有所有他们资源的根身份认证(root identity)的账户, 才能对资源实施操作. 有两种账户类型: 管理员(admin)和普通用户(normal). 管理员账户拥有不受限的权限, 通常由系统管理管理员拥有. 普通用户账户, 只能对虚拟机, 计算规格(instance offerings), 云盘规格(disk offerings), L3网络, 镜像(images)等资源的权限, 普通用户账户是由管理员账户创建的,从而使他们可以操作他们的资源.
API被分为了管理员权限(admin-only)API和非管理员权限(non-admin)API两类. 在:ref:`admin-only APIs <admin-only APIs>`章节中可以查看到管理员权限API的列表, 在:ref:`non-admin APIs <non-admin APIs>`中可以找到非管理员权限API的列表.
用户(Users)¶
由于非管理员权限账户拥有对其所拥有资源的不受限权限, 创建的用户可以用来实现更细粒度(finely-grained)的权限控制. 用户只可以使用:ref:`policies <policy>`中指派(assigned)的API.
组(Groups)¶
账户可以创建组来管理用户. 通过给组指定策略, 账户可以为一个组的用户设置相同的权限.
策略(Policies)¶
策略是定义了用户可以使用哪些API的权限信息. 一个策略包含了由申明(statements)组成的数组,每个申明又定义了访问API的权限信息.
策略的清单(Policy Inventory)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
uuid | 请参见 资源属性 | 0.8 | ||
name | 策略的名字, 请参见 资源属性 | 0.8 | ||
description | 请参见 资源属性 | 是 | 0.8 | |
accountUuid | 拥有该组的账户的uuid, 请参见 account | 0.8 | ||
statements | 定义API权限的:ref:`statements <statements>`列表 | 0.8 | ||
createDate | 请参见 资源属性 | 0.8 | ||
lastOpDate | 请参见 资源属性 | 0.8 |
示例¶
{
"inventories": [
{
"accountUuid": "3153a08ab21f46ca9e8b40ecfeec4255",
"name": "DEFAULT-READ-3153a08ab21f46ca9e8b40ecfeec4255",
"statements": [
{
"actions": [
".*:read"
],
"effect": "Allow",
"name": "read-permission-for-account-3153a08ab21f46ca9e8b40ecfeec4255"
}
],
"uuid": "b5169828533b47988a0d09f262b5769c"
}
]
}
申明(Statements)¶
申明是一个JSON文本, 其中包含了用于匹配API标识(API identities)的字符串以及对应的权限信息: Allow or Deny. 例如:
{
"actions": [
".*:read",
"instance:APICreateVmInstanceMsg"
],
"effect": "Allow",
"name": "read-permission-for-account-3153a08ab21f46ca9e8b40ecfeec4255"
}
actions**是一个用于匹配一个或多个标识的动作字符串(action strings)组成的列表. API标识是唯一标识一个API的字符串,其格式为***api_category:api_name*. 动作字符串可以是唯一识别单个API的完整的标识如*instance:APICreateVmInstanceMsg*, 也可以是一个匹配很多个API的正则表达式(regular expression), 例如, *instance:.** 会和所有***instance***类别下的API匹配. 大多数的API只有一个***api_category:api_name***格式的标识; 但有些API拥有多个标识,因此可以使用正则表达式来匹配这些API.
effect 指示API调用匹配一个操作字符串时对应的决定是什么, 允许(allow)还是拒绝(deny).
在:ref:`API identities <API identities>`中可以找到API标识的列表.
申明的清单(Statement Inventory)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
name | 申明的名字 | 0.8 | ||
effect | 决定访问权限(permission decision) |
|
0.8 | |
actions | 匹配API标识的字符串列表 | 0.8 |
权限控制(Permission Control)¶
身份认证系统最让人激动的功能是可以控制API的访问权限, 可以控制什么人可以访问什么. 当用户登录进入ZStack时, 根据他们登录方式的不同, 会获得不同的API访问权限.
管理员(Administrators): 以管理员账户登录后, 可以调用所有的API.
非管理员账户(Non-admin Account): 以非管理员账户登录时, 只能执行管理员权限的API.
用户(User): 以账户所属的用户登陆后, 只能执行挂载到该用户上或通过组作用到该用户上的策略赋予的权限的API.
使用用户和组(Using users and groups)¶
在ZStack中最好的控制访问权限的方法是是允许登录为用户. 假设你是一个团队的经理,并且你需要从你公司的IT部门申请一些由ZStack管理的虚拟机. 首先你需要让ZStack管理员为你创建非管理员账户; 有了这个账户后, 你可以创建一些用户和组并挂载合适的策略; 这时你可以将这些用户提供给你的团队成员,他们可以使用这些用户依照你创建的权限策略操作ZStack中的资源.
用一个实例来做说明, 假设你想在你的团队中创建下面这样的组织结构:
在这个组织结构中, 你有一个负责管理虚拟机的基础设施小组; 这个组有三个成员: David, Tony, Frank; 你还有另一个工作小组在这些虚拟机上实施他们的工作, 这个小组同样有三个成员: Lucy, Arhbi, Jeff. 基础设施小组拥有管理虚拟机生命周期的权限而另一个工作小组只能通过虚拟机的终端访问并使用这些虚拟机. 此外, 作为经理的你拥有所有的你的团队账户的API访问权限. 要创建这样一个组织结构:
创建账户ops-team:
>>>CreateAccount name=ops-team password=password
使用账户ops-team登录:
>>>LogInByAccount accountName=ops-team password=password
创建用户:
>>>CreateUser name=david password=password
对所有的用户重复以上操作 (tony, frank, lucy, arhbi, jeff, mgr)
创建组:
>>>CreateUserGroup name=infra
队另一个组重复上面这个操作(ops)
添加用户到组中:
>>>AddUserToGroup userUuid=d7646ae8af2140c0a3ccef2ad8da816d groupUuid=92c523a43651442489f8d2d598c7c3da
重复上面的操作,将所有用户添加到对应的组中. infra组(david, tony, frank), ops组(lucy, arhbi, jeff).
创建策略
创建第一个策略, 允许调用所有的虚拟机相关的API:
>>>CreatePolicy name=vm-management statements='[{"actions":["instance:.*"], "effect":"Allow"}]'
创建第二个策略, 允许访问虚拟机的终端:
>>>CreatePolicy name=vm-console statements='[{"actions":["instance:APIRequestConsoleAccessMsg"], "effect":"Allow"}]'
创建第三个策略, 允许访问使用的AP:
>>>CreatePolicy name=all statements='[{"actions":[".*"], "effect":"Allow"}]'
挂载策略到组上(Attach policies to groups)
将策略*vm-management*挂载到基础设施小组:
>>>AttachPolicyToUserGroup groupUuid=92c523a43651442489f8d2d598c7c3da policyUuid=afb3bfbb911a42e0a662286728e49891
将策略*vm-console*挂载到另一个工作小组:
>>>AttachPolicyToUserGroup groupUuid=0939fc6f772d44d6a8f9d45c89c2a716 policyUuid=3bddf41e2ba6469881a65287879e5d58
挂载策略到经理的用户(mgr)
挂载策略*all*到经理的用户(user: mgr):
>>>AttachPolicyToUser userUuid=d55c5fba4d1b4533961db9952dc15b00 policyUuid=36c27e8ff05c4780bf6d2fa65700f22e
到这里,你的组织结构就创建完成了, 你的组员可以使用他们的用户名口令登录.
权限判断(Permission Evaluation)¶
一个策略中包含了由申明组成的列表,而每个申明又定义了对于API的访问权限(允许或拒绝); 用户可以挂载多个策略, 可以挂载到用户上或者他们所在的组上. 当用户访问API的时候, 总会优先从用户上挂载的策略开始做判断,之后是他们所属的组上挂载的策略,直到权限被确定(允许或者拒绝). 默认会拒绝没有匹配任何策略的API访问.
默认只读权限策略(Default Read Policy)¶
当用户被创建时, 一个默认的只读权限策略 (action: .*:read, effect: Allow) 会被挂载到新用户上, 因此用户可以查询资源(例如虚拟机, L3网络).
管理员账户(Admin Account)¶
在安装好ZStack之后, 默认会创建一个管理员账户(账户名: admin, 口令: password). 系统管理员可以使用这个账户来创建管理员用户, 这些用户拥有和管理员一样的不受限的访问权限, 这样可以允许不同的管理员用他们自己的账号口令登录. 管理员账户的口令可是使用API*UpdateAccount*来更改.
操作(Operations)¶
创建账户(Create Account)¶
管理员账户登陆后可以使用CreateAccount创建非管理员账户. 例如:
CreateAccount name=frank password=123456
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
name | 资源的名字, 请参见 资源属性 | 0.8 | ||
resourceUuid | 资源的uuid, 请参见 创建(Create Resources) | 是 | 0.8 | |
description | 资源的描述, 请参见 资源属性 | 是 | 0.8 | |
name | 账户的名字 | 0.8 | ||
password | 账户的口令 | 0.8 |
创建用户(Create Users)¶
一个账户可以使用CreateUser来创建一个用户. 例如:
>>>CreateUser name=david password=123456
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
name | 资源的名字, 请参见 资源属性 | 0.8 | ||
resourceUuid | 资源的uuid, 请参见 创建(Create Resources) | 是 | 0.8 | |
description | 资源的描述, 请参见 资源属性 | 是 | 0.8 | |
name | 用户的名字 | 0.8 | ||
password | 用户的口令 | 0.8 |
创建组(Create Groups)¶
一个账户可以使用CreateUserGroup来创建一个组. 例如:
>>>CreateUserGroup name=group
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
name | 资源的名字, 请参见 资源属性 | 0.8 | ||
resourceUuid | 资源的uuid, 请参见 创建(Create Resources) | 是 | 0.8 | |
description | 资源的描述, 请参见 资源属性 | 是 | 0.8 | |
name | 组的名字 | 0.8 |
创建策略(Create Polices)¶
一个账户可以使用CreatePolicy来创建一个策略. 例如:
>>>CreatePolicy name=all statements='[{"actions":[".*"], "effect":"Allow"}]'
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的额参数值 | 起始支持版本 |
---|---|---|---|---|
name | 资源的名字, 请参见 资源属性 | 0.8 | ||
resourceUuid | 资源的uuid, 请参见 创建(Create Resources) | 是 | 0.8 | |
name | 策略的名字 | 0.8 | ||
statements | :ref:`statements <statements>`的JSON字符串 | 0.8 |
添加用户到组中(Add Users into Groups)¶
一个账户可以使用AddUserToGroup来添加一个用户到组中. 例如:
>>>AddUserToGroup userUuid=d7646ae8af2140c0a3ccef2ad8da816d groupUuid=92c523a43651442489f8d2d598c7c3da
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的额参数值 | 起始支持版本 |
---|---|---|---|---|
userUuid | 用户的uuid | 0.8 | ||
groupUuid | 组的uuid | 0.8 |
挂载策略到组上(Attach Polices to Groups)¶
一个账户可以使用AttachPolicyToUserGroup来挂载一个策略到组上. 例如:
>>>AttachPolicyToUserGroup groupUuid=92c523a43651442489f8d2d598c7c3da policyUuid=afb3bfbb911a42e0a662286728e49891
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
groupUuid | 组的uuid | 0.8 | ||
policyUuid | 策略的uuid | 0.8 |
挂载策略到用户上(Attach Polices to Users)¶
账户可以使用AttachPolicyToUser来挂载一个策略到用户上. 例如:
>>>AttachPolicyToUser userUuid=d55c5fba4d1b4533961db9952dc15b00 policyUuid=36c27e8ff05c4780bf6d2fa65700f22e
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
userUuid | 用户的uuid | 0.8 | ||
policyUuid | 策略的uuid | 0.8 |
从组卸载策略(Detach Polices from Groups)¶
一个账户可以使用DetachPolicyFromUserGroup来从组卸载一个策略. 例如:
>>>DetachPolicyFromUserGroup groupUuid=f1a092c6914840c9895c564abbc55375 policyUuid=afb3bfbb911a42e0a662286728e49891
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
groupUuid | 组的uuid | 0.8 | ||
policyUuid | 策略的uuid | 0.8 |
从用户卸载策略(Detach Polices from Users)¶
一个账户可以使用DetachPolicyFromUser来从用户卸载一个策略. 例如:
>>>DetachPolicyFromUser policyUuid=36c27e8ff05c4780bf6d2fa65700f22e userUuid=d7646ae8af2140c0a3ccef2ad8da816d
重置账户口令(Reset Account Password)¶
一个账户可以使用UpdateAccount来重置它的口令. 例如:
>>>UpdateAccount password=password
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
password | 新的口令 | 0.8 | ||
uuid | 需要重置口令的账户的uuid. 主要用于管理员账户重置其他账户的口令, 由于ZStack可以从当前会话(current session)中获取账户的uuid信息, 因此该域可忽略. | 是 | 0.8 |
重置用户口令(Reset User Password)¶
一个账户或一个用户可以使用UpdateUser来重置用户的口令. 例如:
>>>UpdateUser password=password
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
password | 新的口令 | 0.8 | ||
uuid | 用户的uuid. 主要用于账户更改用户的口令. 用户改变自己的口令时,由于ZStack可以从当前会话(current session)中获取用户的uuid信息, 因此这个域可以忽略For user changing own. | 是 | 0.8 |
删除组(Delete Groups)¶
一个账户可以使用DeleteUserGroup来删除一个组. 例如:
>>>DeleteUserGroup uuid=bb0e50fe0cfa4ec1af1835f9c210ae8e
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
deleteMode | 请参见 删除资源(Delete Resources) | 是 |
|
0.8 |
uuid | 组的uuid | 0.8 |
删除用户(Delete Users)¶
一个账户可以使用DeleteUser来删除一个用户. 例如:
>>>DeleteUser uuid=fa4ec1af1835f9c210ae8e
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
deleteMode | 请参见 删除资源(Delete Resources) | 是 |
|
0.8 |
uuid | 用户的uuid | 0.8 |
删除策略(Delete Policies)¶
一个账户可以使用DeletePolicy来删除一个策略. 例如:
>>>DeletePolicy uuid=bb0e50fe0cfa4ec1af1835f9c210ae8e
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
deleteMode | 请参见 删除资源(Delete Resources) | 是 |
|
0.8 |
uuid | 策略的uuid | 0.8 |
删除账户(Delete Accounts)¶
管理员账户可以使用DeleteAccount来删除一个非管理员账户. 例如:
>>>DeleteAccount uuid=bb0e50fe0cfa4ec1af1835f9c210ae8e
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
deleteMode | 请参见 删除资源(Delete Resources) | 是 |
|
0.8 |
uuid | 账户的uuid | 0.8 |
更新账户配额(Update Account Quota)¶
管理员账户可以使用UpdateQuota来更新一个账户的配额. 例如:
>>>UpdateQuota identityUuid=bb0e50fe0cfa4ec1af1835f9c210ae8e name=vm.num value=100
参数(Parameters)¶
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
identityUuid | 账户的uuid | 0.8 | ||
name | 配额的名字(quota name) |
|
0.8 |
查询账户(Query Accounts)¶
一个账户可以使用QueryAccount来查询它自己的账户, 而管理员账户则可以查询所有账户. 例如:
>>>QueryAccount name=test
>>>QueryAccount group.name=group1
请参见 account inventory
域(Field) | 清单(Inventory) | 描述 | 起始支持版本 |
---|---|---|---|
group | group inventory | 所拥有的组 | 0.6 |
user | user inventory | 所拥有的用户 | 0.6 |
policy | policy inventory | 所拥有的策略 | 0.6 |
quota | 所拥有的配额 | 0.6 |
查询用户(Query Users)¶
一个账户可以使用QueryUser来查询用户. 例如:
>>>QueryUser name=frank
>>>QueryUser name=frank policy.name=allow
请参见 user inventory
域(Field) | 清单(Inventory) | 描述 | 起始支持版本 |
---|---|---|---|
account | 请参见 account inventory | 所属的账户 | 0.6 |
group | 请参见 group inventory | 用户所属的组 | 0.6 |
policy | 请参见 policy inventory | 该用户挂载的策略 | 0.6 |
查询策略(Query Policy)¶
一个账户可以使用QueryPolicy来查询策略. 例如:
>>>QueryPolicy name=vm-management
>>>QueryPolicy user.name=frank
请参见 policy inventory
域(Field) | 清单(Inventory) | 描述 | 起始支持版本 |
---|---|---|---|
account | 请参见 account inventory | 所属账户 | 0.6 |
group | 请参见 group inventory | 该策略所挂载的组 | 0.6 |
user | 请参见 user inventory | 该策略所挂载的用户 | 0.6 |
查询组(Query Groups)¶
一个账户可以使用QueryUserGroup来查询组. 例如:
>>>QueryUserGroup name=group1
>>>QueryUserGroup user.name=frank
请参见 group inventory
域(Field) | 清单(Inventory) | 描述 | 起始支持版本 |
---|---|---|---|
account | 请参见 account inventory | 所属账户 | 0.6 |
user | 请参见 user inventory | 该组中的用户 | 0.6 |
policy | 请参见 policy inventory | 该组上挂载的策略 | 0.6 |
参考信息(Reference)¶
管理员权限API(Admin-only APIs)¶
QueryGlobalConfig
GetGlobalConfig
UpdateGlobalConfig
GetHostAllocatorStrategies
GetCpuMemoryCapacity
ChangeInstanceOffering
IsReadyToGo
GetPrimaryStorageTypes
AttachPrimaryStorageToCluster
GetPrimaryStorageCapacity
UpdatePrimaryStorage
QueryPrimaryStorage
ChangePrimaryStorageState
SyncPrimaryStorageCapacity
DeletePrimaryStorage
ReconnectPrimaryStorage
DetachPrimaryStorageFromCluster
GetPrimaryStorageAllocatorStrategies
GetVolumeSnapshotTree
QueryBackupStorage
AttachBackupStorageToZone
GetBackupStorageTypes
ChangeBackupStorageState
GetBackupStorageCapacity
DetachBackupStorageFromZone
UpdateBackupStorage
DeleteBackupStorage
AddNetworkServiceProvider
AttachNetworkServiceProviderToL2Network
DetachNetworkServiceProviderFromL2Network
AttachL2NetworkToCluster
QueryL2VlanNetwork
CreateL2VlanNetwork
DetachL2NetworkFromCluster
DeleteL2Network
CreateL2NoVlanNetwork
UpdateL2Network
GetL2NetworkTypes
DeleteSearchIndex
SearchGenerateSqlTrigger
CreateSearchIndex
QueryManagementNode
CreateMessage
QueryCluster
DeleteCluster
UpdateCluster
CreateCluster
ChangeClusterState
CreateAccount
LogInByUser
SessionMessage
UpdateQuota
QueryAccount
LogInByAccount
ValidateSession
LogOut
UpdateZone
DeleteZone
CreateZone
QueryZone
ChangeZoneState
ChangeHostState
ReconnectHost
UpdateHost
DeleteHost
GetHypervisorTypes
QueryHost
QueryApplianceVm
AddIscsiFileSystemBackendPrimaryStorage
QueryIscsiFileSystemBackendPrimaryStorage
UpdateIscsiFileSystemBackendPrimaryStorage
AddLocalPrimaryStorage
UpdateKVMHost
AddKVMHost
AddNfsPrimaryStorage
QuerySftpBackupStorage
ReconnectSftpBackupStorage
UpdateSftpBackupStorage
AddSftpBackupStorage
非管理员权限API(Non-admin APIs)¶
UpdateVmInstance
GetVmAttachableL3Network
MigrateVm
StopVmInstance
GetVmAttachableDataVolume
QueryVmNic
AttachL3NetworkToVm
DestroyVmInstance
GetVmMigrationCandidateHosts
QueryVmInstance
DetachL3NetworkFromVm
RebootVmInstance
CreateVmInstance
StartVmInstance
ChangeImageState
UpdateImage
DeleteImage
CreateDataVolumeTemplateFromVolume
CreateRootVolumeTemplateFromRootVolume
QueryImage
CreateRootVolumeTemplateFromVolumeSnapshot
AddImage
RequestConsoleAccess
BackupDataVolume
AttachDataVolumeToVm
UpdateVolume
QueryVolume
CreateDataVolumeFromVolumeSnapshot
CreateDataVolumeFromVolumeTemplate
DetachDataVolumeFromVm
CreateDataVolume
GetDataVolumeAttachableVm
GetVolumeFormat
DeleteDataVolume
CreateVolumeSnapshot
ChangeVolumeState
DeleteDiskOffering
QueryInstanceOffering
UpdateInstanceOffering
CreateInstanceOffering
CreateDiskOffering
DeleteInstanceOffering
ChangeInstanceOfferingState
QueryDiskOffering
UpdateDiskOffering
ChangeDiskOfferingState
QueryVolumeSnapshotTree
DeleteVolumeSnapshot
UpdateVolumeSnapshot
DeleteVolumeSnapshotFromBackupStorage
QueryVolumeSnapshot
RevertVolumeFromSnapshot
BackupVolumeSnapshot
AddDnsToL3Network
CreateL3Network
GetFreeIp
UpdateL3Network
DeleteIpRange
ChangeL3NetworkState
AddIpRange
GetL3NetworkTypes
AddIpRangeByNetworkCidr
QueryIpRange
RemoveDnsFromL3Network
GetIpAddressCapacity
DeleteL3Network
UpdateIpRange
QueryL3Network
AttachNetworkServiceToL3Network
QueryNetworkServiceL3NetworkRef
QueryNetworkServiceProvider
GetNetworkServiceTypes
QueryL2Network
QueryUserTag
QuerySystemTag
DeleteTag
CreateUserTag
CreateSystemTag
QueryTag
AttachPolicyToUserGroup
RemoveUserFromGroup
AttachPolicyToUser
UpdateUser
AddUserToGroup
QueryQuota
ShareResource
DeleteAccount
CreateUserGroup
CreateUser
DetachPolicyFromUserGroup
QueryPolicy
QueryUser
DeletePolicy
RevokeResourceSharing
UpdateAccount
DeleteUser
DeleteUserGroup
CreatePolicy
DetachPolicyFromUser
QueryUserGroup
ReconnectVirtualRouter
QueryVirtualRouterOffering
CreateVirtualRouterOffering
QueryVirtualRouterVm
AttachPortForwardingRule
DetachPortForwardingRule
GetPortForwardingAttachableVmNics
ChangePortForwardingRuleState
UpdatePortForwardingRule
CreatePortForwardingRule
QueryPortForwardingRule
DeletePortForwardingRule
DetachEip
GetEipAttachableVmNics
UpdateEip
QueryEip
ChangeEipState
DeleteEip
CreateEip
AttachEip
ChangeSecurityGroupState
DetachSecurityGroupFromL3Network
DeleteSecurityGroupRule
CreateSecurityGroup
QueryVmNicInSecurityGroup
QuerySecurityGroup
AddSecurityGroupRule
QuerySecurityGroupRule
DeleteSecurityGroup
UpdateSecurityGroup
DeleteVmNicFromSecurityGroup
GetCandidateVmNicForSecurityGroup
AttachSecurityGroupToL3Network
AddVmNicToSecurityGroup
DeleteVip
UpdateVip
ChangeVipState
CreateVip
QueryVip
API标识(API Identities)¶
ReconnectVirtualRouter: virtualRouter:APIReconnectVirtualRouterMsg
GetNetworkServiceProvider: l2Network:read, l2Network:APIGetNetworkServiceProviderMsg
AddDnsToL3Network: l3Network:APIAddDnsToL3NetworkMsg
DeleteSecurityGroup: securityGroup:APIDeleteSecurityGroupMsg
AddImage: image:APIAddImageMsg
QueryUser: identity:read, identity:APIQueryUserMsg
GetL3NetworkTypes: l3Network:read, l3Network:APIGetL3NetworkTypesMsg
ShareResource: identity:APIShareResourceMsg
QueryVirtualRouterOffering: virtualRouter:read, virtualRouter:APIQueryVirtualRouterOfferingMsg
QueryIpRange: l3Network:read, l3Network:APIQueryIpRangeMsg
AttachDataVolumeToVm: volume:APIAttachDataVolumeToVmMsg
QueryUserGroup: identity:read, identity:APIQueryUserGroupMsg
QueryVmNicInSecurityGroup: securityGroup:read, securityGroup:APIQueryVmNicInSecurityGroupMsg
CreateSystemTag: tag:APICreateSystemTagMsg
CreateVip: vip:APICreateVipMsg
DeleteDiskOffering: configuration:APIDeleteDiskOfferingMsg
StartVmInstance: instance:APIStartVmInstanceMsg
GetVmAttachableL3Network: instance:read, instance:APIGetVmAttachableL3NetworkMsg
DeleteVip: vip:APIDeleteVipMsg
GetDataVolumeAttachableVm: volume:read, volume:APIGetDataVolumeAttachableVmMsg
QuerySystemTag: tag:read, tag:APIQuerySystemTagMsg
AttachL3NetworkToVm: instance:APIAttachL3NetworkToVmMsg
CreateUserTag: tag:APICreateUserTagMsg
CreateVmInstance: instance:APICreateVmInstanceMsg
CreateSecurityGroup: securityGroup:APICreateSecurityGroupMsg
UpdateVolumeSnapshot: volumeSnapshot:APIUpdateVolumeSnapshotMsg
QueryDiskOffering: configuration:read, configuration:APIQueryDiskOfferingMsg
StopVmInstance: instance:APIStopVmInstanceMsg
CreateEip: eip:APICreateEipMsg
ChangePortForwardingRuleState: portForwarding:APIChangePortForwardingRuleStateMsg
UpdateL3Network: l3Network:APIUpdateL3NetworkMsg
ChangeDiskOfferingState: configuration:APIChangeDiskOfferingStateMsg
MigrateVm: instance:APIMigrateVmMsg
ChangeVipState: vip:APIChangeVipStateMsg
AddIpRange: l3Network:APIAddIpRangeMsg
CreateDataVolume: volume:APICreateDataVolumeMsg
CreateDataVolumeFromVolumeSnapshot: volume:APICreateDataVolumeFromVolumeSnapshotMsg
UpdateImage: image:APIUpdateImageMsg
QueryVmNic: instance:read, instance:APIQueryVmNicMsg
QueryTag: tag:read, tag:APIQueryTagMsg
GetPortForwardingAttachableVmNics: portForwarding:APIGetPortForwardingAttachableVmNicsMsg
DeleteInstanceOffering: configuration:APIDeleteInstanceOfferingMsg
AttachPortForwardingRule: portForwarding:APIAttachPortForwardingRuleMsg
DeletePortForwardingRule: portForwarding:APIDeletePortForwardingRuleMsg
CreatePortForwardingRule: portForwarding:APICreatePortForwardingRuleMsg
UpdateIpRange: l3Network:APIUpdateIpRangeMsg
GetFreeIp: l3Network:read, l3Network:APIGetFreeIpMsg
ChangeL3NetworkState: l3Network:APIChangeL3NetworkStateMsg
QueryVip: vip:read, vip:APIQueryVipMsg
UpdateEip: eip:APIUpdateEipMsg
QueryVolumeSnapshotTree: volumeSnapshot:read, volumeSnapshot:APIQueryVolumeSnapshotTreeMsg
DetachDataVolumeFromVm: volume:APIDetachDataVolumeFromVmMsg
RebootVmInstance: instance:APIRebootVmInstanceMsg
UpdateInstanceOffering: configuration:APIUpdateInstanceOfferingMsg
DestroyVmInstance: instance:APIDestroyVmInstanceMsg
UpdateUser: identity:APIUpdateUserMsg
QueryNetworkServiceL3NetworkRef: l3Network:read, l3Network:APIQueryNetworkServiceL3NetworkRefMsg
CreateL3Network: l3Network:APICreateL3NetworkMsg
GetNetworkServiceTypes: l3Network:read, l3Network:APIGetNetworkServiceTypesMsg
GetVmAttachableDataVolume: instance:read, instance:APIGetVmAttachableDataVolumeMsg
QueryL3Network: l3Network:read, l3Network:APIQueryL3NetworkMsg
CreateDataVolumeTemplateFromVolume: image:APICreateDataVolumeTemplateFromVolumeMsg
DeleteSecurityGroupRule: securityGroup:APIDeleteSecurityGroupRuleMsg
QueryUserTag: tag:read, tag:APIQueryUserTagMsg
DeleteVolumeSnapshotFromBackupStorage: volumeSnapshot:APIDeleteVolumeSnapshotFromBackupStorageMsg
CreateDiskOffering: configuration:APICreateDiskOfferingMsg
QuerySecurityGroup: securityGroup:read, securityGroup:APIQuerySecurityGroupMsg
QueryVolumeSnapshot: volumeSnapshot:read, volumeSnapshot:APIQueryVolumeSnapshotMsg
QueryPortForwardingRule: portForwarding:read, portForwarding:APIQueryPortForwardingRuleMsg
UpdateDiskOffering: configuration:APIUpdateDiskOfferingMsg
GetCandidateVmNicForSecurityGroup: securityGroup:read, securityGroup:APIGetCandidateVmNicForSecurityGroupMsg
QueryPolicy: identity:read, identity:APIQueryPolicyMsg
GetEipAttachableVmNics: eip:APIGetEipAttachableVmNicsMsg
CreateInstanceOffering: configuration:APICreateInstanceOfferingMsg
AddIpRangeByNetworkCidr: l3Network:APIAddIpRangeByNetworkCidrMsg
UpdateVmInstance: instance:APIUpdateVmInstanceMsg
QueryVirtualRouterVm: virtualRouter:read, virtualRouter:APIQueryVirtualRouterVmMsg
RequestConsoleAccess: console:APIRequestConsoleAccessMsg
ChangeEipState: eip:APIChangeEipStateMsg
QuerySecurityGroupRule: securityGroup:read, securityGroup:APIQuerySecurityGroupRuleMsg
DetachSecurityGroupFromL3Network: securityGroup:APIDetachSecurityGroupFromL3NetworkMsg
CreateDataVolumeFromVolumeTemplate: volume:APICreateDataVolumeFromVolumeTemplateMsg
DeleteDataVolume: volume:APIDeleteDataVolumeMsg
AddVmNicToSecurityGroup: securityGroup:APIAddVmNicToSecurityGroupMsg
DeleteVolumeSnapshot: volumeSnapshot:APIDeleteVolumeSnapshotMsg
DetachEip: eip:APIDetachEipMsg
DetachPortForwardingRule: portForwarding:APIDetachPortForwardingRuleMsg
CreateVirtualRouterOffering: virtualRouter:APICreateVirtualRouterOfferingMsg
RevertVolumeFromSnapshot: volumeSnapshot:APIRevertVolumeFromSnapshotMsg
DeleteIpRange: l3Network:APIDeleteIpRangeMsg
UpdateVip: vip:APIUpdateVipMsg
AttachNetworkServiceToL3Network: l3Network:APIAttachNetworkServiceToL3NetworkMsg
DeleteTag: tag:APIDeleteTagMsg
RemoveDnsFromL3Network: l3Network:APIRemoveDnsFromL3NetworkMsg
DeleteL3Network: l3Network:APIDeleteL3NetworkMsg
UpdatePortForwardingRule: portForwarding:APIUpdatePortForwardingRuleMsg
ChangeVolumeState: volume:APIChangeVolumeStateMsg
QueryVmInstance: instance:read, instance:APIQueryVmInstanceMsg
GetVmMigrationCandidateHosts: instance:read, instance:APIGetVmMigrationCandidateHostsMsg
UpdateVolume: volume:APIUpdateVolumeMsg
QueryL2Network: l2Network:read, l2Network:APIQueryL2NetworkMsg
BackupVolumeSnapshot: volumeSnapshot:APIBackupVolumeSnapshotMsg
QueryQuota: identity:read, identity:APIQueryQuotaMsg
QueryImage: image:read, image:APIQueryImageMsg
RevokeResourceSharing: identity:APIRevokeResourceSharingMsg
UpdateSecurityGroup: securityGroup:APIUpdateSecurityGroupMsg
ChangeImageState: image:APIChangeImageStateMsg
AddSecurityGroupRule: securityGroup:APIAddSecurityGroupRuleMsg
QueryVolume: volume:read, volume:APIQueryVolumeMsg
AttachSecurityGroupToL3Network: securityGroup:APIAttachSecurityGroupToL3NetworkMsg
DeleteEip: eip:APIDeleteEipMsg
QueryEip: eip:read, eip:APIQueryEipMsg
DeleteImage: image:APIDeleteImageMsg
GetIpAddressCapacity: l3Network:read, l3Network:APIGetIpAddressCapacityMsg
ChangeInstanceOfferingState: configuration:APIChangeInstanceOfferingStateMsg
DeleteVmNicFromSecurityGroup: securityGroup:APIDeleteVmNicFromSecurityGroupMsg
CreateVolumeSnapshot: volumeSnapshot:APICreateVolumeSnapshotMsg
CreateRootVolumeTemplateFromRootVolume: image:APICreateRootVolumeTemplateFromRootVolumeMsg
GetVolumeFormat: volume:read, volume:APIGetVolumeFormatMsg
BackupDataVolume: volume:APIBackupDataVolumeMsg
CreateRootVolumeTemplateFromVolumeSnapshot: image:APICreateRootVolumeTemplateFromVolumeSnapshotMsg
QueryInstanceOffering: configuration:read, configuration:APIQueryInstanceOfferingMsg
ChangeSecurityGroupState: securityGroup:APIChangeSecurityGroupStateMsg
QueryNetworkServiceProvider: l3Network:read, l3Network:APIQueryNetworkServiceProviderMsg
AttachEip: eip:APIAttachEipMsg
DetachL3NetworkFromVm: instance:APIDetachL3NetworkFromVmMsg
默认配额(Default Quotas)¶
名字 | 描述 | 值 | 起始支持版本 |
---|---|---|---|
vip.num | VIP的最大数量 | 20 | 0.8 |
securityGroup.num | 安全组的最大数量 | 20 | 0.8 |
l3.num | L3网络的最大数量 | 20 | 0.8 |
portForwarding.num | 端口转发规则的最大数量 | 20 | 0.8 |
vm.num | 虚拟机的最多个数 | 20 | 0.8 |
vm.cpuNum | VCPU核的最大数量 | 80 | 0.8 |
vm.memorySize | 总内存大小 | 85899345920 bytes (80G) | 0.8 |
volume.data.num | 数据云盘的最大容量 | 40 | 0.8 |
volume.capacity | 数据云盘和根云盘的最大总容量 | 10995116277760 bytes (10T) | 0.8 |
eip.num | EIP的最大数量 | 20 | 0.8 |