Как использовать защищенное хранилище

Вы просматриваете документацию по 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, сначала необходимо установить его. Пример:

  1. Перейдите в корневой каталог проекта.
  2. Выполнить: 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
});