访问控制
控制台代理
控制台代理(Console Proxy):可通过代理地址登录云主机控制台。UI界面上显示了当前控制台代理的信息,即打开云主机的控制台时使用的代理信息。
在ZStack Cube 旗舰版主菜单,点击,进入控制台代理界面。

- 控制台代理地址只需要在管理节点修改。
- 默认代理显示的地址为管理节点的IP地址。
- 只有当状态为启用和已连接时,才可正常打开控制台访问云主机。
控制台代理支持以下操作:
| 操作 | 描述 |
|---|---|
| 重连控制台代理 | 重连控制台代理。 Note: 若云主机控制台打开失败,需进行重连操作。重连后状态显示为启用和已连接时,控制台可以正常打开。 |
| 设置控制台代理地址 | 设置控制台代理地址。 Note: 支持在UI界面上设置控制台代理地址。
|
AccessKey管理
AccessKey管理:访问云平台API的身份凭证,具有该云平台完全的权限,包括:AccessKey ID(访问密钥 ID)和AccessKey Secret(秘密访问密钥)。
- 本地AccessKey:
ZStack Cube 旗舰版授权第三方用户调用ZStack Cube 旗舰版 API来访问ZStack Cube 旗舰版云资源的安全凭证,需严格保密。
- 第三方AccessKey:
第三方用户授权ZStack Cube 旗舰版用户调用第三方API来访问第三方云资源的安全凭证,需严格保密。
- AccessKey是云平台对API请求进行安全验证的关键因子,请妥善保管。
- 若某一AccessKey出现泄漏风险,建议及时删除该AccessKey并生成新的AccessKey。
生成本地AccessKey
在ZStack Cube 旗舰版主菜单,点击,进入AccessKey 管理界面。点击生成AccessKey,将生成一个AccessKey。
注意事项
- Admin/平台管理员可以创建多个AccessKey,子账户/租户(项目成员)可以创建两个AccessKey。
- Admin/平台管理员可以随时启用、停用或者删除自己创建的AccessKey以及子账户/租户(项目成员)创建的AccessKey。
- 子账户/租户(项目成员)可以随时启用、停用或者删除自己创建的AccessKey。
- AccessKey具有该创建者完全的权限。

第三方平台使用AccessKey调用ZStack Cube 旗舰版 API
- SDK方式:以创建云主机(CreateVmInstance)为例,使用AccessKey调用ZStack Cube 旗舰版 API时,需输入accessKeyId和accessKeySecret,示例如下:
- Java
SDK
CreateVmInstanceAction action = new CreateVmInstanceAction(); action.name = "vm1"; action.instanceOfferingUuid = "ae97ced44efc3314b8f7798972b4ba1a"; action.imageUuid = "da119f7906513eccabf271991c35a65e"; action.l3NetworkUuids = asList("cc0e4c5e77df3af68e59668e7f9e06c5"); action.dataDiskOfferingUuids = asList("19d22d051b063d379a2816daaf431838","905d94a6abb5398fa1995f6398e3f6fc"); action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae"; action.description = "this is a vm"; action.strategy = "InstantStart"; action.accessKeyId = "Fnxc7KIQAdGTvXfx8OjC"; action.accessKeySecret = "Do0AJUGVPrT9iJZlc1QOtk7kzEusYidyqJxSmKOb"; CreateVmInstanceAction.Result res = action.call(); - Python
SDK
action = CreateVmInstanceAction() action.name = "vm1" action.instanceOfferingUuid = "ae97ced44efc3314b8f7798972b4ba1a" action.imageUuid = "da119f7906513eccabf271991c35a65e" action.l3NetworkUuids = ["cc0e4c5e77df3af68e59668e7f9e06c5"] action.dataDiskOfferingUuids = ["19d22d051b063d379a2816daaf431838", "905d94a6abb5398fa1995f6398e3f6fc"] action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae" action.description = "this is a vm" action.strategy = "InstantStart" action.accessKeyId = "Fnxc7KIQAdGTvXfx8OjC" action.accessKeySecret = "Do0AJUGVPrT9iJZlc1QOtk7kzEusYidyqJxSmKOb" res = action.call()
- Java
SDK
- 直接调用ZStack Cube 旗舰版 RESTful API方式:
- 创建AccessKey:
CreateAccessKey accountUuid=dff4fb9bbff14e97a67ab894c7b8c528 userUuid=dff4fb9bbff14e97a67ab894c7b8c528 { "inventory": { "AccessKeyID": "N3Tf05yXZUmSjCf6mYIB", "AccessKeySecret": "XAlrsYvswmnEV3X1KWNs1WfZHD6aBIIphmI0rX9S", "accountUuid": "dff4fb9bbff14e97a67ab894c7b8c528", "createDate": "Sep 6, 2018 1:50:06 PM", "lastOpDate": "Sep 6, 2018 1:50:06 PM", "userUuid": "dff4fb9bbff14e97a67ab894c7b8c528", "uuid": "ae353717ca7b4182bb87fb5d010235e8" }, "success": true } - 生成date:
python get_time.py Thu, 06 Sep 2018 13:54:10 PRCimport datetime import time date = time.time() #EEE, dd MMM yyyy HH:mm:ss z str = datetime.datetime.fromtimestamp(date).strftime('%a, %d %b %Y %H:%M:%S PRC') print strNote: 时间格式必须为EEE, dd MMM yyyy HH:mm:ss zzz。 - 生成digest:
# python get_accesskey.py "vvSZpmj4cnB53qUDmm6E" "8heumeFTvIeZxkTGfEYvVi9qVVPd9ffQNDALSPPb" \ "GET" "Fri, 06 Aug 2021 17:58:34 PRC" "/v1/vm-instances" args: Namespace(acesskey_id='vvSZpmj4cnB53qUDmm6E', acesskey_secret='8heumeFTvIeZxkTGfEYvVi9qVVPd9ffQNDALSPPb', \ date='Fri, 06 Aug 2021 17:58:34 PRC', method='GET', uri='/v1/vm-instances') Signature: hPToRHeHdV49D4u20G8OlE0yJho= Authoration ZStack vvSZpmj4cnB53qUDmm6E:hPToRHeHdV49D4u20G8OlE0yJho=#/usr/bin/python import base64 import hmac import sha import argparse from hashlib import sha1 parser = argparse.ArgumentParser(description='calculate zstack access key digit.') parser.add_argument('acesskey_id') parser.add_argument('acesskey_secret') parser.add_argument('method') parser.add_argument('date') parser.add_argument('uri') args = parser.parse_args() print "args: %s" % args h = hmac.new(args.acesskey_secret, args.method + "\n" + args.date + "\n" + args.uri, sha1) Signature = base64.b64encode(h.digest()) print "Signature: %s" % Signature print "Authoration %s" % ("ZStack " + args.acesskey_id + ":" + Signature) - 发送请求
curl -H "Authorization:ZStack N3Tf05yXZUmSjCf6mYIB:S3vm7u7/+n+sIQe72lgia08I30U=" \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Date:Thu, 06 Sep 2018 13:54:10 PRC" \ -X GET http://172.20.11.134:8080/zstack/v1/vm-instances
- 创建AccessKey:
本地AccessKey支持以下操作:
| 操作 | 描述 |
|---|---|
| 生成本地AccessKey | 生成一个新的本地AccessKey。 |
| 启用本地AccessKey | 启用处于停用状态的本地AccessKey。 |
| 停用本地AccessKey | 停用选中的本地AccessKey。 |
| 删除本地AccessKey | 删除选中的本地AccessKey。 Note: 删除本地AccessKey,将不能调用API来访问本地云资源。 |
添加第三方AccessKey
在ZStack Cube 旗舰版主菜单,点击,进入AccessKey 管理界面。点击添加AccessKey,弹出添加AccessKey界面。
- 名称:设置第三方AccessKey名称
- 简介:可选项,可留空不填
- AccessKey ID和AccessKey Secret:输入已在第三方申请好的AccessKey ID和AccessKey Secret

第三方Accesskey支持以下操作:
| 操作 | 描述 |
|---|---|
| 添加第三方AccessKey | 添加一个新的第三方AccessKey。 |
| 删除第三方AccessKey | 删除选中的第三方AccessKey。 Note: 删除AccessKey将清除该AccessKey相关的本地资源记录,且该AccessKey授权的API访问权限失效,第三方公有云资源不受影响。 |
注意事项
- admin/平台管理员可以随时删除自己添加的第三方AccessKey以及租户添加的第三方AccessKey。
- 子账户子账户/租户(项目成员)可以随时删除自己添加的第三方AccessKey。
IP黑白名单
IP黑白名单 (IP Blocklist/Allowlist):云平台登录IP的黑白名单,通过对访客身份的识别和过滤,进一步提升云平台登录安全。ZStack Cube 旗舰版支持配置IP黑白名单,对登录云平台的IP进行过滤控制。
进入,设置云平台登录IP黑白名单即可,默认为False。
IP黑白名单工作原理
- 不添加IP黑白名单:默认允许来自任意IP的登录请求。
- 仅添加黑名单:不允许黑名单中的IP登录云平台,其余IP允许登录。
- 添加黑名单+白名单:白名单优先级高于黑名单。
- 允许白名单中的IP登录云平台。
- 如同一个IP同时被添加在黑白名单中,则以白名单为准,允许来自该IP的登录请求。
- 从不允许登录的IP地址访问云平台,系统将在登录时进行拦截。
- 如使用负载均衡转发登录请求到云平台,请在负载均衡设备上正确配置负载均衡X-Forwarded-For转发,如未配置,云平台将无法获取实际的客户端IP,无法准确放行/拦截来自该客户端的访问。
- 白名单不支持单独使用。使用前,请确保平台内已添加至少一条黑名单,否则白名单不生效。
添加IP黑名单/白名单
在IP黑白名单页面,可以选择添加IP黑名单或IP白名单,添加方式一致,以添加IP黑名单为例:
在ZStack Cube 旗舰版主菜单,点击,进入IP黑白名单界面,点击添加IP黑名单,弹出添加IP黑名单界面。
- 名称:设置IP黑名单名称
- 简介:可选项,可留空不填
- IP地址:输入需要加入IP黑名单的IP地址Note:
- 支持输入固定IP地址、IP地址范围、IP/掩码格式,添加多个需要以英文逗号分隔开。
- 支持最多添加100条。

| 操作 | 描述 |
|---|---|
| 添加IP黑/IP白名单 | 添加一个新的IP黑/白名单。 Note: 添加IP黑/白名单,该名单将立即生效,名单中的IP地址将被拒绝/允许登录云平台,请谨慎操作。 |
| 编辑IP黑/白名单 | 编辑IP黑/IP白名单的名称、简介信息。 |
| 删除IP黑/白名单 | 删除选中的IP黑/白名单。 Note: 删除IP黑/白名单,该名单将失效,登录云平台IP无限制,请谨慎操作。 |
