Sicheren Speicher verwenden

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

APIs des sicheren Speicherdienstes verwenden

Mit dem sicheren Speicherdienst können Sie vertrauliche Daten wie Anmeldedaten für Back-End-Dienste in verschlüsselter Form speichern, damit sie vor unbefugter Verwendung geschützt sind. Diese sicheren Speicherbereiche werden als „Vaults“ bezeichnet und können entweder auf Organisationsebene oder auf Umgebungsebene in Apigee Edge festgelegt werden.

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

So ist es nicht erforderlich, das Passwort in das Quellcodeverwaltungssystem aufzunehmen oder es zusammen mit dem Node.js-Quellcode in Apigee Edge bereitzustellen. Stattdessen wird der Wert von Apigee verschlüsselt gespeichert und nur abgerufen, wenn die Anwendung ihn benötigt.

Die Dokumentation zu den APIs des sicheren Speichers finden Sie unter Vaults. In den folgenden Abschnitten finden Sie auch eine Übersicht über die Verwendung der API des sicheren Speichers.

Daten nach Organisation speichern

Jede Apigee Edge-Organisation hat eine Reihe von sicheren Speichern und jede Umgebung hat einen zusätzlichen Speicher. So können Organisationen mit unterschiedlichen Sicherheitsanforderungen für verschiedene Back-Ends unterschiedliche sichere Werte speichern. In diesem Abschnitt wird das Speichern nach Organisation beschrieben.

Nutzung

  • Namen aller sicheren Speicher abrufen:
GET /o/{organization}/vaults
  • Eine Liste von Einträgen (aber nicht ihre verschlüsselten Werte) aus einem benannten Vault abrufen.
GET /o/{organization}/vaults/{name}
  • Einen einzelnen Eintrag (aber nicht seinen verschlüsselten Wert) abrufen.

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Einen neuen Vault mit dem Namen „name“ ohne Werte erstellen:

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
  • Einen neuen Eintrag mit dem angegebenen Namen und sicheren Wert im Vault platzieren.

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
  • Den Wert des angegebenen Eintrags durch einen neuen Wert ersetzen:

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“ zurückgeben, wenn der angegebene Wert mit dem übereinstimmt, was bereits im Speicher vorhanden ist, und „false“, wenn dies nicht der Fall ist. In beiden Fällen wird der HTTP-Statuscode 200 verwendet. Dies kann verwendet werden, um den Inhalt des Speichers zu validieren. Beachten Sie, dass es nach dem Speichern keine API zum Abrufen des unverschlüsselten Werts gibt:

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

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

Daten nach Umgebung speichern

Sie können Daten auch nach Apigee Edge-Umgebung speichern. In diesem Fall sind die Daten auf eine Umgebung beschränkt (z. B. „prod“). Mit dieser Funktion 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-access“ installieren

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

  1. Wechseln Sie zum Stammverzeichnis Ihres Projekts.
  2. Führen Sie Folgendes aus: 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 sicheren Speichers, der abgerufen werden soll.
  • Der Bereich, der organization oder environment sein kann. Wenn nicht angegeben, wird organization angenommen.

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

  • getKeys(callback): Gibt ein Array mit den Namen aller Schlüssel in dem angegebenen Vault zurück. Die Callback-Funktion wird mit zwei Argumenten aufgerufen: einem Fehler, wenn der Vorgang fehlschlägt, oder „undefined“, wenn er nicht fehlschlägt, 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 „undefined“, wenn er nicht fehlschlägt, und dem tatsächlichen Wert als zweites Argument.

Beispiel

Hier ist ein Node.js-Beispiel, das zeigt, wie Sie einen Wert aus einem Vault abrufen. Das apigee-access Modul muss installiert sein, damit dieser Code funktioniert, wie bereits erläutert.

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