Utiliser le magasin sécurisé

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
info

Utiliser les API du service de stockage sécurisé

Le service de stockage sécurisé vous permet de stocker des données sensibles, telles que les identifiants de sécurité des services de backend, au format chiffré afin de les protéger contre toute utilisation non autorisée. Ces zones de stockage sécurisées sont appelées "coffres-forts" et peuvent être limitées aux niveaux de l'organisation ou de l'environnement sur Apigee Edge.

Par exemple, le stockage sécurisé peut être utilisé pour stocker un mot de passe requis par une application Node.js afin d'accéder à une ressource protégée, telle qu'un serveur de base de données. Vous pouvez stocker le mot de passe dans le stockage sécurisé via une API avant le déploiement, et l'application peut rechercher la valeur au moment de l'exécution.

De cette façon, il n'est pas nécessaire d'inclure le mot de passe dans le système de contrôle du code source ni de le déployer avec le code source Node.js sur Apigee Edge. Au lieu de cela, la valeur est stockée par Apigee sous forme chiffrée et n'est récupérée que lorsque l'application en a besoin it.

Pour obtenir de la documentation sur les API de stockage sécurisé, consultez la section Coffres-forts. Les sections suivantes fournissent également une présentation de l'utilisation de l'API de stockage sécurisé.

Stocker des données par organisation

Chaque organisation Apigee Edge dispose d'un ensemble de stockages sécurisés, et chaque environnement dispose d'un stockage supplémentaire. De cette façon, les organisations qui ont des exigences de sécurité différentes pour différents backends peuvent stocker différentes valeurs sécurisées. Cette section décrit le stockage par organisation.

Utilisation

  • Récupérez les noms de tous les stockages sécurisés :
GET /o/{organization}/vaults
  • Récupérez une liste d'entrées (mais pas leurs valeurs chiffrées) à partir d'un coffre-fort nommé.
GET /o/{organization}/vaults/{name}
  • Récupérez une seule entrée (mais pas sa valeur chiffrée).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Créez un coffre-fort nommé "name" sans aucune valeur :

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
  • Placez une nouvelle entrée dans le coffre-fort avec le nom et la valeur sécurisée spécifiés.

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
  • Remplacez la valeur de l'entrée spécifiée par une nouvelle valeur :

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

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

  -d 'verymoresecret' -X PUT
  • Renvoie "true" si la valeur spécifiée correspond à ce qui se trouve déjà dans le stockage, et "false" si ce n’est pas le cas. Dans les deux cas, un code d'état HTTP 200 est utilisé. Cela peut être utilisé pour valider le contenu du stockage. Notez qu'une fois stockée, aucune API ne permet de récupérer la valeur non chiffrée :

    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
  • Supprimez l'entrée de coffre-fort spécifiée :
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Supprimez l'intégralité du coffre-fort.

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

Stocker des données par environnement

Vous pouvez également stocker des données par environnement Apigee Edge. Dans ce cas, les données sont limitées à un environnement (tel que "prod"). Grâce à cette fonctionnalité, différentes valeurs peuvent être stockées au moment de l'exécution en fonction de l'endroit où le script Node.js est exécuté.

Utilisation

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}

Récupérer des valeurs à partir du stockage sécurisé dans Node.js

Installer apigee-access

Pour utiliser apigee-access dans votre code Node.js, vous devez d'abord l'installer. Exemple :

  1. Accédez au répertoire racine de votre projet.
  2. Exécutez : npm install apigee-access --save

Fonctions

La fonction apigee-access getVault() permet de récupérer un coffre-fort spécifique, par organisation ou en fonction de l'environnement actuel dans lequel le code Node.js est exécuté.

getVault() accepte deux paramètres :

  • Le nom du stockage sécurisé à récupérer.
  • Le champ d'application, qui peut être organization ou environment. S'il n'est pas spécifié, organization est supposé.

L'objet renvoyé par getVault() comporte deux fonctions :

  • getKeys(callback) : renvoie un tableau contenant les noms de toutes les clés du coffre-fort spécifié. La fonction de rappel est appelée avec deux arguments : une erreur si l' opération échoue, ou "undefined" si elle ne l'est pas, et le tableau réel comme deuxième argument.
  • get(key, callback) : renvoie la valeur sécurisée associée à une clé spécifique La fonction de rappel est appelée avec deux arguments : une erreur si l'opération échoue, ou "undefined" si elle ne l'est pas, et la valeur réelle comme deuxième argument.

Exemple

Voici un exemple Node.js qui montre comment obtenir une valeur à partir d'un coffre-fort. Le apigee-access module est installé pour que ce code fonctionne, comme expliqué précédemment.

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