您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
使用安全存储区服务 API
借助安全存储区服务,您可以将敏感数据(例如 后端服务的安全凭据)以加密格式存储,以防止未经授权的使用。这些 安全存储区称为“保险库”,并且可以在 Apigee Edge 上限定为组织级或 环境级。
例如,安全存储区可用于存储 Node.js 应用访问受保护资源(例如数据库服务器)所需的密码。您可以在部署之前通过 API 将密码存储在安全存储区中,并且应用可以在运行时查找 该值。
这样一来,就不需要在源代码控制 系统中包含密码,也不需要将其与 Node.js 源代码一起部署到 Apigee Edge。相反,该值由 Apigee 以加密形式存储,并且仅在应用需要 时检索。
如需了解安全存储区 API 的文档,请参阅保险库。以下部分还概述了如何使用 安全存储区 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,您需要先安装它
。例如:
- cd 到项目的根目录。
- 执行:
npm install apigee-access --save
函数
apigee-access getVault() 函数用于检索特定保险库,可以是按 组织检索,也可以根据 Node.js 代码运行的当前环境检索。
getVault() 接受以下两个参数:
- 要检索的安全存储区的名称。
- 范围,可以是
organization或environment。如果未 指定,则假定为organization。
getVault() 返回的对象具有两个函数:
- getKeys(callback):返回一个数组,其中包含 指定保险库中所有键的名称。系统将使用两个实参调用回调函数:如果 操作失败,则为错误;如果操作未失败,则为“undefined”;第二个实参为实际数组。
- 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 });