文档目录

AccessKey 管理

AccessKey 是 ZSphere 授权第三方平台调用 API 访问虚拟化资源的安全凭证,包括访问密钥 ID (AccessKey ID) 和秘密访问密钥 (AccessKey Secret)。AccessKey 需妥善保管并按需启用、停用或删除。

权限关系

  • 管理员可创建多个 AccessKey,普通用户最多支持创建两个 AccessKey。
  • 管理员可删除普通用户创建的 AccessKey。
  • AccessKey 具有创建者完全的权限。

生成 AccessKey

操作步骤

  1. 在导航栏中,选择系统管理 > AccessKey 管理。
  2. 点击生成 AccessKey。

使用 AccessKey 调用 API

背景信息

第三方平台可以通过 SDK 或 RESTful API 方式使用 AccessKey 调用 ZSphere API。

  • 使用 SDK 方式调用 API。

    以创建虚拟机为例,您在使用 AccessKey 调用 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
      CreateVmInstanceAction action = CreateVmInstanceAction()
      action.name = "vm1"
      action.instanceOfferingUuid = "ae97ced44efc3314b8f7798972b4ba1a"
      action.imageUuid = "da119f7906513eccabf271991c35a65e"
      action.l3NetworkUuids = [cc0e4c5e77df3af68e59668e7f9e06c5]
      action.dataDiskOfferingUuids = [19d22d051b063d379a2816daaf431838, 905d94a
      6abb5398fa1995f6398e3f6fc]
      action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae"
      action.description = "this is a vm"
      action.strategy = "InstantStart"
      action.accessKeyId = "Fnxc7KIQAdGTvXfx8OjC"
      action.accessKeySecret = "Do0AJUGVPrT9iJZlc1QOtk7kzEusYidyqJxSmKOb"
      CreateVmInstanceAction.Result res = action.call()
  • 使用 RESTful API 方式调用 API。
    1. 创建 AccessKey。
      CreateAccessKey accountUuid=dff4fb9bbff14e97a67ab894c7b8c528 userUuid=dff4fb9
      bbff14e97a67ab894c7b8c528
      {
       "inventory": {
       "AccessKeyID": "N3Tf05yXZUmSjCf6mYIB",
       "AccessKeySecret": "XAlrsYvswmnEV3X1KWNs1WfZHD6aBIIphmI0rX9S",
       "accountUuid": "dff4fb9bbff14e97a67ab894c7b8c528",
       "createDate": "Sep 7, 2023 1:50:06 PM",
       "lastOpDate": "Sep 7, 2023 1:50:06 PM",
       "userUuid": "dff4fb9bbff14e97a67ab894c7b8c528",
       "uuid": "ae353717ca7b4182bb87fb5d010235e8"
       },
       "success": true
      }
    2. 生成 date。
      python get_time.py
      Thu, 07 Sep 2023 13:54:10 PRC
      import 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 str
    3. 生成 digest。
      # python get_accesskey.py "vvSZpmj4cnB53qUDmm6E" "8heumeFTvIeZxkTGfEYvV
      i9qVVPd9ffQNDALSPPb" \
      "GET" "Fri, 08 Sep 2023 17:58:34 PRC" "/v1/vm-instances"
      args: Namespace(acesskey_id='vvSZpmj4cnB53qUDmm6E', acesskey_secret
      ='8heumeFTvIeZxkTGfEYvVi9qVVPd9ffQNDALSPPb', \
      date='Fri, 08 Sep 2023 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)
    4. 发送请求。
      curl -H "Authorization:ZStack N3Tf05yXZUmSjCf6mYIB:S3vm7u7/+n
      +sIQe72lgia08I30U=" \
      -H "Content-Type:application/x-www-form-urlencoded" \
      -H "Date:Fri, 08 Sep 2023 18:54:10 PRC" \
      -X GET http://172.20.11.134:8080/zstack/v1/vm-instances

管理 AccessKey

操作步骤

  1. 在导航栏中,选择系统管理 > AccessKey 管理。
  2. 选择目标 AccessKey 并执行操作。
    • 若需对 AccessKey 进行启停操作,点击停用或启用。
    • 若不再需要通过 API 访问虚拟化资源,点击删除。
用户手册 | ZStack ZSphere · ZVF | ZStack 资源中心