Sicheren Speicher verwenden

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Sichere Store Service APIs verwenden

Mit dem sicheren Speicherdienst können Sie sensible Daten, wie Sicherheitsanmeldedaten für Back-End-Dienste, verschlüsselt speichern, sodass sie vor unbefugter Nutzung geschützt sind. Diese sicheren Speicherbereiche werden als „Tresoren“ bezeichnet und können entweder der Organisations- oder der Umgebungsebene in Apigee Edge zugeordnet werden.

Der sichere Speicher kann beispielsweise verwendet werden, um ein Passwort zu speichern, das von einer Node.js-Anwendung benötigt wird, um eine geschützte Ressource wie einen Datenbankserver zu erreichen. Sie können das Passwort vor der Bereitstellung über eine API im sicheren Speicher speichern. Die Anwendung kann den Wert zur Laufzeit abrufen.

Auf diese Weise müssen Sie das Passwort nicht in das Quellcodesteuerungssystem aufnehmen oder zusammen mit dem Node.js-Quellcode in Apigee Edge bereitstellen. Stattdessen wird der Wert von Apigee in verschlüsselter Form gespeichert und nur dann abgerufen, wenn die Anwendung ihn benötigt.

Eine Dokumentation zu den sicheren Speicher-APIs finden Sie unter Vaults. Die folgenden Abschnitte bieten auch eine Übersicht über die Verwendung der Secure Store API.

Daten nach Organisation speichern

Jede Apigee Edge-Organisation hat eine Reihe sicherer Speicher und jede Umgebung hat einen zusätzlichen Speicher. Auf diese Weise können Organisationen, die unterschiedliche Sicherheitsanforderungen für unterschiedliche Back-Ends haben, unterschiedliche sichere Werte speichern. In diesem Abschnitt wird das Speichern nach Organisation beschrieben.

Nutzung

  • Rufen Sie die Namen aller sicheren Speicher ab:
GET /o/{organization}/vaults
  • Eine Liste der Einträge (jedoch nicht ihre verschlüsselten Werte) aus einem benannten Vault abrufen.
GET /o/{organization}/vaults/{name}
  • Ruft einen einzelnen Eintrag ab (aber nicht den verschlüsselten Wert).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Erstellen Sie einen neuen Vault namens „name“ ohne Werte:

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
  • Platziere einen neuen Eintrag mit dem angegebenen Namen und dem Wert „Secure“ im Tresor.

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
  • Ersetzen Sie den Wert des angegebenen Eintrags durch einen neuen Wert:

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

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

  -d 'verymoresecret' -X PUT
  • Gibt "true" zurück, wenn der angegebene Wert mit dem bereits im Speicher vorhandenen Wert übereinstimmt, und "false", wenn dies nicht der Fall ist. In beiden Fällen wird der HTTP-Statuscode 200 verwendet. Damit können die Inhalte des Speichers validiert werden. Nach dem Speichern gibt es keine API, um den unverschlüsselten Wert abzurufen:

    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
    
  • So löschen Sie den angegebenen Vault-Eintrag:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Lösche den gesamten Tresor.

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

Daten nach Umgebung speichern

Sie können Daten auch in der Apigee Edge-Umgebung speichern. In diesem Fall werden die Daten auf eine Umgebung beschränkt (z. B. „prod“). Mit diesem Feature können zur Laufzeit unterschiedliche Werte gespeichert werden, je nachdem, wo das Node.js-Skript ausgeführt wird.

Nutzung

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}

Werte aus dem sicheren Speicher in Node.js abrufen

Apigee-Zugriff installieren

Wenn Sie apigee-access in Ihrem Node.js-Code verwenden möchten, müssen Sie ihn zuerst installieren. Beispiel:

  1. cd in das Stammverzeichnis Ihres Projekts.
  2. Ausführen: npm install apigee-access --save

Funktionen

Die Funktion „apigee-access getVault()“ wird verwendet, um einen bestimmten Vault abzurufen, entweder pro Organisation oder basierend auf der aktuellen Umgebung, in der der Node.js-Code ausgeführt wird.

getVault() verwendet zwei Parameter:

  • Der Name des abzurufenden sicheren Speichers.
  • Der Bereich, der organization oder environment sein kann. Wenn keine Angabe erfolgt, wird von organization ausgegangen.

Das von getVault() zurückgegebene Objekt hat zwei Funktionen:

  • getKeys(callback): Gibt ein Array mit den Namen aller Schlüssel im angegebenen Vault zurück. Die Callback-Funktion wird mit zwei Argumenten aufgerufen: einem Fehler, wenn der Vorgang fehlschlägt, oder „nicht definiert“, wenn dies nicht der Fall ist, und dem tatsächlichen Array als zweites Argument.
  • get(key, callback): Gibt den sicheren Wert zurück, der mit einem bestimmten Schlüssel verknüpft ist. Die Callback-Funktion wird mit zwei Argumenten aufgerufen: einem Fehler, wenn der Vorgang fehlschlägt, oder „nicht definiert“, wenn dies nicht der Fall ist, und dem tatsächlichen Wert als zweites Argument.

Beispiel

Im Folgenden finden Sie ein Node.js-Beispiel, das zeigt, wie ein Wert aus einem Vault abgerufen wird. Damit dieser Code funktioniert, wird wie zuvor erläutert das Modul apigee-access installiert.

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