Cómo usar el almacenamiento seguro

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Usa las APIs del servicio de almacenamiento seguro

El servicio de almacenamiento seguro te permite almacenar datos sensibles, como credenciales de seguridad de servicios de backend, en formato encriptado para que estén protegidos contra usos no autorizados. Estas áreas de almacenamiento seguro se llaman “bóvedas” y pueden aplicarse a los niveles de la organización o del entorno en Apigee Edge.

Por ejemplo, el almacén seguro se puede usar para almacenar una contraseña que requiere una aplicación de Node.js y así llegar a un recurso protegido, como un servidor de base de datos. Puedes almacenar la contraseña en el almacén seguro a través de una API antes de la implementación, y la aplicación podrá buscar el valor en el entorno de ejecución.

Cuando haces esto, no es necesario incluir la contraseña en el sistema de control del código fuente ni implementarla junto con el código fuente de Node.js en Apigee Edge. En cambio, Apigee almacena el valor en formato encriptado y solo se recuperará cuando la aplicación lo necesite.

Para obtener documentación sobre las APIs de Secure Store, consulta Vaults. En las siguientes secciones, también se proporciona una descripción general del uso de la API de Secure Store.

Almacenamiento de datos por organización

Cada organización de Apigee Edge tiene un conjunto de almacenes seguros, y cada entorno tiene un almacén adicional. De esa manera, las organizaciones que tienen diferentes requisitos de seguridad para distintos backends pueden almacenar diferentes valores seguros. En esta sección, se describe el almacenamiento por organización.

Uso

  • Recupera los nombres de todos los almacenes seguros:
GET /o/{organization}/vaults
  • Recuperar una lista de entradas (pero no sus valores encriptados) de una bóveda con nombre
GET /o/{organization}/vaults/{name}
  • Recuperar una sola entrada (pero no su valor encriptado)

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Crea una nueva bóveda llamada “name” sin valores:

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
  • Coloca una nueva entrada en la bóveda con el nombre y el valor de seguridad especificados.

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
  • Reemplaza el valor de la entrada especificada por uno nuevo:

PUT /o/{organization}/vaults/{vaultname}/entries/{entryname}

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1

  -d 'verymoresecret' -X PUT
  • Muestra "true" si el valor especificado coincide con lo que ya está en la tienda y "false" si no coincide. En ambos casos, se usa el código de estado HTTP 200. Se puede usar para validar el contenido de la tienda. Ten en cuenta que una vez almacenado, no hay ninguna API para recuperar el valor sin encriptar:

    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
    
  • Borra la entrada de la bóveda especificada:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Borrar toda la bóveda

    DELETE /o/{organization}/vaults/{name}
    

Almacenamiento de datos por entorno

También puedes almacenar datos en el entorno de Apigee Edge. En este caso, el alcance de los datos se define en un entorno (como “prod”). Con esta función, en el entorno de ejecución se pueden almacenar diferentes valores según dónde se ejecute la secuencia de comandos de Node.js.

Uso

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}

Recupera valores del almacenamiento seguro en Node.js

Instala apigee-access

Para usar apigee-access en tu código de Node.js, primero debes instalarlo. Por ejemplo:

  1. cd al directorio raíz de tu proyecto.
  2. Ejecuta npm install apigee-access --save

remotas

La función apigee-access getVault() se usa para recuperar una bóveda en particular, ya sea por organización o según el entorno actual en el que se ejecuta el código de Node.js.

getVault() toma dos parámetros:

  • El nombre del almacén seguro que se recuperará.
  • El alcance, que puede ser organization o environment. Si no se especifica, se supone que es organization.

El objeto que muestra getVault() tiene dos funciones:

  • getKeys(callback): Muestra un array que contiene los nombres de todas las claves de la bóveda especificada. Se llamará a la función de devolución de llamada con dos argumentos: un error si la operación falla o "indefinido" si no funciona, y el array real como segundo argumento.
  • get(key, callback): Muestra el valor seguro asociado con una clave determinada. Se llamará a la función de devolución de llamada con dos argumentos: un error si la operación falla o "indefinido" si no sucede, y el valor real como segundo argumento.

Ejemplo

Este es un ejemplo de Node.js que muestra cómo obtener un valor de una bóveda. El módulo apigee-access se instala para que este código funcione, como se explicó anteriormente.

var apigee = require('apigee-access');
   var orgVault = apigee.getVault('vault1', 'organization');
   orgVault.get('key1', function(err, secretValue) {
   // use the secret value here
});