Secret Stores API - 参考

Barbican 提供了用于管理部署中可用的密钥存储的 API。提供了用于列出可用密钥存储和管理项目级别密钥存储映射的 API。密钥存储有两种类型。一种是全局默认密钥存储,它用于所有项目。然后是项目 首选 密钥存储,用于存储该项目中创建的所有密钥。有关多存储后端支持的介绍,请参阅 使用多个密钥存储插件。本文档将重点介绍 Barbican /v1/secret-stores REST API 的细节。

如果服务配置中未启用多密钥存储后端支持,则所有这些 API 都将返回资源未找到(http 状态码 404)错误。错误消息文本将突出显示配置中未启用该支持。

GET /v1/secret-stores

项目管理员可以请求可用密钥存储后端的列表。响应包含当前配置在 barbican 部署中的密钥存储列表。如果未启用多存储后端支持,则列表将返回资源未找到 (404) 错误。

请求/响应:

Request:

   GET /secret-stores
   Headers:
      X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"
      Accept: application/json

  Response:

    HTTP/1.1 200 OK
    Content-Type: application/json

   {
      "secret_stores":[
         {
            "status": "ACTIVE",
            "updated": "2016-08-22T23:46:45.114283",
            "name": "PKCS11 HSM",
            "created": "2016-08-22T23:46:45.114283",
            "secret_store_ref": "https://:9311/v1/secret-stores/4d27b7a7-b82f-491d-88c0-746bd67dadc8",
            "global_default": True,
            "crypto_plugin": "p11_crypto",
            "secret_store_plugin": "store_crypto"
         },
         {
            "status": "ACTIVE",
            "updated": "2016-08-22T23:46:45.124554",
            "name": "KMIP HSM",
            "created": "2016-08-22T23:46:45.124554",
            "secret_store_ref": "https://:9311/v1/secret-stores/93869b0f-60eb-4830-adb9-e2f7154a080b",
            "global_default": False,
            "crypto_plugin": None,
            "secret_store_plugin": "kmip_plugin"
         },
         {
            "status": "ACTIVE",
            "updated": "2016-08-22T23:46:45.127866",
            "name": "Software Only Crypto",
            "created": "2016-08-22T23:46:45.127866",
            "secret_store_ref": "https://:9311/v1/secret-stores/0da45858-9420-42fe-a269-011f5f35deaa",
            "global_default": False,
            "crypto_plugin": "simple_crypto",
            "secret_store_plugin": "store_crypto"
         }
   }

响应属性

名称

类型

描述

secret_stores

列表

密钥存储引用的列表

name

字符串

存储和加密插件名称由 + (加号) 分隔。

secret_store _ref

字符串

用于引用特定密钥存储的 URL

HTTP 状态码

代码

描述

200

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

未找到。当未启用多密钥存储后端支持时。

GET /v1/secret-stores/{secret_store_id}

项目管理员(具有管理员角色的用户)可以按其 ID 请求密钥存储的详细信息。返回的响应将突出显示该密钥存储是否当前配置为全局默认值。

请求/响应:

Request:
   GET /secret-stores/93869b0f-60eb-4830-adb9-e2f7154a080b
   Headers:
      X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"
      Accept: application/json

Response:
   HTTP/1.1 200 OK
   Content-Type: application/json

   {
      "status": "ACTIVE",
      "updated": "2016-08-22T23:46:45.124554",
      "name": "KMIP HSM",
      "created": "2016-08-22T23:46:45.124554",
      "secret_store_ref": "https://:9311/v1/secret-stores/93869b0f-60eb-4830-adb9-e2f7154a080b",
      "global_default": False,
      "crypto_plugin": None,
      "secret_store_plugin": "kmip_plugin"
   }

响应属性

名称

类型

描述

name

字符串

存储和加密插件名称由 ‘+’ (加号) 分隔

global_default

布尔值

指示此密钥存储是否为全局默认值的标志

status

列表

密钥存储的状态

updated

time

上次更新密钥存储的日期和时间

创建时间

time

创建密钥存储的日期和时间

secret_store_ref

字符串

用于引用特定密钥存储的 URL

HTTP 状态码

代码

描述

200

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

未找到。当未启用多密钥存储后端支持或该密钥存储 ID 不存在时。

GET /v1/secret-stores/preferred

项目管理员(具有管理员角色的用户)可以请求先前分配的首选密钥存储的引用。当为项目设置首选密钥存储时,该项目的新密钥将使用该存储后端存储。

请求/响应:

Request:

  GET /v1/secret-stores/preferred
  Headers:
    X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"
    Accept: application/json


Response:

  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "ACTIVE",
    "updated": "2016-08-22T23:46:45.114283",
    "name": "PKCS11 HSM",
    "created": "2016-08-22T23:46:45.114283",
    "secret_store_ref": "https://:9311/v1/secret-stores/4d27b7a7-b82f-491d-88c0-746bd67dadc8",
    "global_default": True,
    "crypto_plugin": "p11_crypto",
    "secret_store_plugin": "store_crypto"
  }

响应属性

名称

类型

描述

secret_store_ref

字符串

引用特定密钥存储的 URL

HTTP 状态码

代码

描述

200

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

未找到。未定义首选密钥存储或未启用多密钥存储后端支持。

POST /v1/secret-stores/{secret_store_id}/preferred

项目管理员可以将密钥存储后端设置为其项目的首选存储后端。从那时起,存储在该项目中的任何新密钥都将使用指定的插件后端进行存储和读取。现有密钥存储不会受到影响,因为每个密钥在最初存储时都会捕获其插件后端信息。如果未启用多密钥存储支持,则此资源将返回 404 (未找到) 错误。

请求/响应:

Request:

  POST /v1/secret-stores/7776adb8-e865-413c-8ccc-4f09c3fe0213/preferred
  Headers:
    X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"

Response:

  HTTP/1.1 204 No Content

HTTP 状态码

代码

描述

204

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

请求的实体未找到或未启用多密钥存储后端支持。

DELETE /v1/secret-stores/{secret_store_id}/preferred

项目管理员可以删除首选密钥存储后端设置。如果未启用多密钥存储支持,则此资源将返回 404 (未找到) 错误。

请求/响应:

Request:

  DELETE /v1/secret-stores/7776adb8-e865-413c-8ccc-4f09c3fe0213/preferred
  Headers:
    X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"

Response:

  HTTP/1.1 204 No Content

HTTP 状态码

代码

描述

204

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

请求的实体未找到或未启用多密钥存储后端支持。

GET /v1/secret-stores/global-default

项目或服务管理员可以请求用作部署默认密钥存储后端的密钥存储的引用。

请求/响应:

Request:

  GET /v1/secret-stores/global-default
  Headers:
    X-Auth-Token: "f9cf2d480ba3485f85bdb9d07a4959f1"
    Accept: application/json


Response:

  HTTP/1.1 200 OK
  Content-Type: application/json

 {
    "status": "ACTIVE",
    "updated": "2016-08-22T23:46:45.114283",
    "name": "PKCS11 HSM",
    "created": "2016-08-22T23:46:45.114283",
    "secret_store_ref": "https://:9311/v1/secret-stores/4d27b7a7-b82f-491d-88c0-746bd67dadc8",
    "global_default": True,
    "crypto_plugin": "p11_crypto",
    "secret_store_plugin": "store_crypto"
 }

响应属性

名称

类型

描述

secret_store_ref

字符串

引用特定密钥存储的 URL

HTTP 状态码

代码

描述

200

成功请求

401

身份验证错误。缺少或无效的 X-Auth-Token。

403

用户已通过身份验证,但无权执行此操作

404

未找到。当未启用多密钥存储后端支持时。