<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
,您需要先安装它
。例如:
- cd 到项目的根目录。
- 执行:
npm install apigee-access --save
函数
apigee-access getVault() 函数用于检索特定保险柜,可按 或根据运行 Node.js 代码的当前环境来确定。
getVault() 接受两个参数:
- 要检索的安全存储区的名称。
- 范围,可能是
organization
或environment
。如果不是 则假定为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 });