使用安全存储区

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

使用安全存储服务 API

安全的存储服务可让您存储敏感数据,例如 创建加密的后端服务,以防止未经授权的使用。这些 安全存储区域称为“保险柜”,可以将其范围限定为组织或 环境层级。

例如,安全存储空间可用于存储 Node.js 所需的密码 以便访问受保护的资源,例如数据库服务器。您可以将 在部署前通过 API 在安全存储区中保存密码,并且应用程序可以查找 在运行时中的值

这样一来,您就无需将密码包含在源代码控件中, 系统,或者将它与 Node.js 源代码一起部署到 Apigee Edge。取而代之的是,此值为 由 Apigee 以加密形式存储,并且仅在应用需要时检索 。

如需有关安全存储区 API 的文档,请参阅保险柜。以下部分也简要介绍了如何使用 Secure Store API。

数据存储方式 组织

每个 Apigee Edge 组织都有一组安全存储空间,而每个环境都有 。这样,组织对不同的应用场景有着不同的安全要求, 可以存储不同的安全值。本部分介绍如何按组织进行存储。

用法

  • 检索所有安全存储区的名称:
GET /o/{organization}/vaults
  • 从命名的保险柜中检索条目列表(而不是其加密值)。
GET /o/{organization}/vaults/{name}
  • 检索单个条目(但不检索其加密值)。

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • 创建名为“name”的新保险柜不带任何值:

POST /o/{organization}/vaults

{ "name": "{name}" }

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults
  -H "Content-Type: application/json"
  -d '{"name": "test2" }' -X POST
  • 在保险柜中输入一个指定名称和安全值的新条目。

POST /o/{organization}/vaults/{vaultname}/entries

{ "name": "{entryname}", "value": "{securevalue}" }


curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries
  -H "Content-Type: application/json"
  -d '{"name": "value1", "value": "verysecret" }' -X POST
  • 将指定条目的值替换为新值:

PUT /o/{organization}/vaults/{vaultname}/entries/{entryname}

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1

  -d 'verymoresecret' -X PUT
  • 返回“true”如果指定的值与商店中已有的值匹配,则为“false”如果 却没有。这两种情况都使用 HTTP 状态代码 200。这可用于验证 存储的内容请注意,存储后,没有 API 可以检索未加密的 值:

    POST /o/{organization}/vaults/{vaultname}/entries/{entryname}?action=verify
    
    curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1?action=verify
      -d 'verymoresecret'  -X POST
    
  • 删除指定的保险柜条目:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • 删除整个保险柜。

    DELETE /o/{organization}/vaults/{name}
    

按环境存储数据

您还可以按 Apigee Edge 环境存储数据。在本例中,数据的作用域限定为 环境(例如“prod”)。借助此功能,您可以在运行时 具体取决于 Node.js 脚本的运行位置。

用法

GET /o/{organization}/e/{env}/vaults

GET /o/{organization}/e/{env}/vaults/{name}

GET /o/{organization}/e/{env}/vaults/{name}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries

PUT /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}?action=verify

DELETE /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

DELETE /o/{organization}/e/{env}/vaults/{name}

从 中的安全存储区检索值 Node.js

正在安装 apigee-access

如需在 Node.js 代码中使用 apigee-access,您需要先安装它 。例如:

  1. cd 到项目的根目录。
  2. 执行:npm install apigee-access --save

函数

apigee-access getVault() 函数用于检索特定保险柜,可按 或根据运行 Node.js 代码的当前环境来确定。

getVault() 接受两个参数:

  • 要检索的安全存储区的名称。
  • 范围,可能是 organizationenvironment。如果不是 则假定为 organization

getVault() 返回的对象有两个函数:

  • getKeys(callback):返回一个数组,其中包含所有键的名称 指定的保险柜。回调函数将包含两个参数:如果调用 操作失败,即“未定义”否则,将实际数组作为第二个参数。
  • get(key, callback):返回与特定键名关联的安全值 键。回调函数将有两个参数:如果操作失败,则返回错误; 或“undefined”如果不是,则使用实际值作为第二个参数。

示例

以下 Node.js 示例演示了如何从保险柜中获取值。通过 为了让此代码能够正常运行,已安装 apigee-access 模块,如相关说明 。

var apigee = require('apigee-access');
   var orgVault = apigee.getVault('vault1', 'organization');
   orgVault.get('key1', function(err, secretValue) {
   // use the secret value here
});