Utiliser le magasin sécurisé

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Utiliser les API Secure Store Service

Le service de stockage sécurisé vous permet de stocker des données sensibles, telles que des identifiants de sécurité pour les services backend, dans un format chiffré afin d’être protégés contre toute utilisation non autorisée. Ces les espaces de stockage sécurisés, appelés "coffres-forts", et peuvent être limités à l'organisation d'environnement sur Apigee Edge.

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

Ainsi, il n'est donc pas nécessaire d'inclure le mot de passe dans le champ système, ou le déployer avec le code source Node.js sur Apigee Edge. Au lieu de cela, la valeur est stockées par Apigee sous forme chiffrée. Elles ne seront récupérées que lorsque l'application aura besoin

Pour obtenir de la documentation sur les API Secure Store, consultez Vaults. Les sections suivantes expliquent également comment utiliser l'API Secure Store.

Pour stocker des données, organisation

Chaque organisation Apigee Edge dispose d'un ensemble de magasins sécurisés et chaque environnement dispose d'un magasin supplémentaire. Ainsi, les organisations dont les exigences de sécurité varient 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 magasins 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érer une seule entrée (mais pas sa valeur chiffrée)

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Créer un coffre-fort nommé "name" sans 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 est déjà en stock, et "false" si ce n'est pas le cas. Dans les deux cas, le code d'état HTTP 200 est utilisé. Cela peut être utilisé pour valider le contenu du magasin. Notez qu'une fois stocké, il n'existe aucune API pour récupérer les données non chiffrées :

    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 Vault spécifiée:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Supprimez l'ensemble 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 (par exemple, "prod"). Grâce à cette fonctionnalité, lors de l'exécution, différentes valeurs peuvent être stockées selon l'emplacement d'exécution du script Node.js.

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 les valeurs du stockage sécurisé dans Node.js

Installation apigee-access

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

  1. cd pour accéder 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 particulier, soit par organisation ou sur l'environnement actuel dans lequel le code Node.js s'exécute.

getVault() prend deux paramètres:

  • Nom du magasin sécurisé à récupérer.
  • Le champ d'application, qui peut être organization ou environment. Si ce n'est pas le cas définie, la valeur organization est utilisée par défaut.

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

  • getKeys(callback): renvoie un tableau contenant les noms de toutes les clés dans dans le coffre-fort spécifié. La fonction de rappel est appelée avec deux arguments: Une erreur si le échoue, ou "undefined" si ce n'est pas le cas, et le tableau réel comme deuxième argument.
  • get(key, replace): renvoie la valeur sécurisée associée à un objet . La fonction de rappel sera appelée avec deux arguments: une erreur en cas d'échec de l'opération, ou "undefined" si ce n'est pas le cas, et la valeur réelle en tant que deuxième argument.

Exemple

Voici un exemple Node.js qui montre comment extraire une valeur d'un coffre-fort. La Le module apigee-access 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
});