Использование безопасного хранилища

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

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