API7 Enterprise v3.2.16: Integrierte Secret Providers
October 10, 2024
In API7 Enterprise können Sie eine große Menge sensibler Informationen speichern, wie z. B. SSL-Zertifikate und private Schlüssel, Benutzernamen und Passwörter für Consumer-Authentifizierungsdaten sowie die Informationen, die von bestimmten Plugins benötigt werden, um eine Verbindung zu externen Systemen herzustellen.
Das Konzept der "Secret Providers" wurde in API7 Enterprise v3.2.16 eingeführt. Nun können wir problemlos Secret-Provider-Ressourcen hinzufügen, um die Integration mit Drittanbieter-Geheimnisverwaltungsdiensten wie HashiCorp Vault, AWS Secrets Manager und GCP Secret Manager zu ermöglichen und die extern gespeicherten sensiblen Informationen in API7 über Variablen zu referenzieren. Das Referenzformat lautet wie folgt:
$secret://$manager/$id/$secret_name/$key
Wie verwendet man Secret Providers?
Hinzufügen eines Secret Providers
Im Gateway-Gruppen-Menü wurde eine neue Option "Secret Provider" hinzugefügt. Klicken Sie auf die Schaltfläche, um zur Secret-Provider-Listenseite zu gelangen. Klicken Sie dann auf die Schaltfläche "Add Secret Provider" in der oberen rechten Ecke der Seite.
Füllen Sie im Pop-up-Fenster die grundlegenden Informationen über den Secret Provider aus, wählen Sie den Typ des Geheimnisverwaltungsdienstes, z. B. HashiCorp Vault. Geben Sie dann die Dienstzugriffsadresse und das Authentifizierungstoken für Ihre HashiCorp Vault-Konfiguration an.
Anzeigen eines Secret Providers
Nach der Erstellung können wir die spezifischen Konfigurationsdetails und das Beispiel für die Geheimnisvariable auf der Detailseite des Secret Providers einsehen.
Das Format der Geheimnisvariable lautet: secret://manager/$id/$secret_name/$key
, mit folgenden Bedeutungen:
- $secret: Ein festes Präfix, das nicht ersetzt werden muss
- $manager: Der Geheimnisverwaltungsdienst
- $id: Die ID der Secret-Provider-Ressource
- $secret_name: Der Name des Geheimnisses im Geheimnisverwaltungsdienst
- $key: Der Schlüssel, der dem Geheimnis im Geheimnisverwaltungsdienst entspricht
Beispiel: Wenn die ID des Secret Providers my-provider
lautet und der Geheimnisverwaltungsdienst HashiCorp Vault ist, und Sie ein Geheimnis namens my-secret
mit dem Schlüssel password
referenzieren möchten, lautet die entsprechende Geheimnisvariable:
$secret://vault/my-hashicorp-vault/my-secret/password
Derzeit wird HashiCorp Vault als Geheimnisverwaltungsdienst unterstützt. AWS Secrets Manager und GCP Secret Manager werden bald verfügbar sein.
Referenzieren einer Geheimnisvariablen
Sobald der Secret Provider erstellt wurde, können Sie in API7 Enterprise in verschiedenen Ressourcen über Variablen auf extern gespeicherte sensible Informationen verweisen. Beispielsweise können Sie beim Hinzufügen von Basic Authentication-Daten für einen Consumer wählen, sensible Informationen wie Passwörter in einem externen Geheimnisverwaltungsdienst zu speichern und in API7 Enterprise darauf zu verweisen, wodurch die Sicherheit erhöht wird.
Ebenso können wir bei der Arbeit mit Nicht-Formularseiten, wie dem Plugin-Editor, den Wert der Geheimnisvariablen direkt als Zeichenkette in jedes Feld eingeben, das die Referenzierung von Geheimnissen unterstützt.
Anzeigen von Referenzbeziehungen
Wenn wir eine Variable von my-provider
in Consumer-Daten referenzieren, können wir diese Referenzbeziehung in der Referenzliste des Secret Providers einsehen. Andere referenzierte Ressourcen werden ebenfalls in dieser Liste angezeigt, was die Nachverfolgung der Nutzung des Secret Providers erleichtert.
Bearbeiten oder Löschen eines Secret Providers
Beim Bearbeiten oder Löschen eines Secret Providers überprüft das System die Referenzbeziehungen, um zu vermeiden, dass ungültige Variablen in Ressourcen referenziert werden, was zu Konfigurationsfehlern führen könnte.
Zusammenfassung
Durch die Integration mit externen Geheimnisverwaltungsdiensten wie HashiCorp Vault verbessert API7 Enterprise die Bequemlichkeit der Referenzierung extern gespeicherter sensibler Informationen in verschiedenen Ressourcen. Diese Integration reduziert die Risiken und Kosten, die mit der manuellen Verwaltung solcher Informationen verbunden sind. In Zukunft planen wir, weitere Arten von Geheimnisverwaltungsdiensten zu unterstützen, um den wachsenden Anforderungen der Benutzer gerecht zu werden und gleichzeitig Flexibilität und Sicherheit bei der Verwaltung sensibler Informationen zu gewährleisten.