Вы просматриваете документацию по 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}
-
Создать новое хранилище с названием "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
Чтобы использовать apigee-access в коде Node.js, сначала необходимо установить его. Пример:
- Перейдите в корневой каталог проекта.
- Выполнить:
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 });