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

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Использование 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
});
,

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Использование 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
});