Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Использование 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}
Создайте новое хранилище с именем «имя» без значений:
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
Возвращайте «истину», если указанное значение соответствует тому, что уже есть в хранилище, и «ложь», если это не так. В обоих случаях используется код состояния 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-доступа
Чтобы использовать apigee-access
в коде Node.js, вам необходимо сначала установить его. Например:
- cd в корневой каталог вашего проекта.
- Выполнить:
npm install apigee-access --save
Функции
Функция apigee-access getVault() используется для получения определенного хранилища либо для каждой организации, либо в зависимости от текущей среды, в которой выполняется код Node.js.
getVault() принимает два параметра:
- Имя безопасного хранилища, которое необходимо получить.
- Областью действия может быть
organization
илиenvironment
. Если не указано, то подразумеваетсяorganization
.
Объект, возвращаемый getVault(), имеет две функции:
- getKeys(callback) : возвращает массив, содержащий имена всех ключей в указанном хранилище. Функция обратного вызова будет вызвана с двумя аргументами: ошибка, если операция не удалась, или «неопределенная», если нет, и фактический массив в качестве второго аргумента.
- get(key, callback) : возвращает безопасное значение, связанное с определенным ключом. Функция обратного вызова будет вызвана с двумя аргументами: ошибка, если операция не удалась, или «неопределенная», если нет, и фактическое значение в качестве второго аргумента.
Пример
Вот пример 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 });