Externe Secrets
Verfügbarkeit der Funktion
- Die Funktion für externe Secrets ist in den Enterprise Self-Hosted- und Enterprise Cloud-Plänen verfügbar.
- n8n unterstützt folgende Secret-Anbieter: AWS Secrets Manager, Azure Key Vault, GCP Secrets Manager und HashiCorp Vault.
- Ab n8n-Version 2.10.0 können Sie mehrere Vaults pro Secret-Anbieter verbinden. In älteren Versionen war nur ein Vault pro Anbieter möglich.
- n8n unterstützt nicht HashiCorp Vault Secrets.
Infisical ist veraltet
Infisical wurde als veraltet markiert. Ab Version 2.10.0 können Sie keine neuen Infisical-Vaults mehr verbinden, aber bestehende Verbindungen bleiben vorerst erhalten.
Sie können externe Secret-Speicher zur Verwaltung Ihrer n8n-Anmeldedaten nutzen.
n8n speichert alle Anmeldedaten standardmäßig verschlüsselt in seiner Datenbank und beschränkt den Zugriff darauf. Mit der Funktion für externe Secrets können Sie sensible Anmeldedaten außerhalb von n8n in einem externen Vault speichern und n8n ruft diese bei Bedarf ab. Dies bietet eine zusätzliche Sicherheitsebene und ermöglicht Ihnen die zentrale Verwaltung von Anmeldedaten über mehrere n8n-Umgebungen hinweg.
Verbindung von n8n mit Ihrem Secret-Speicher
Secret-Werte
n8n unterstützt ausschließlich reine Textwerte für Secrets – keine JSON-Objekte.
-
Gehen Sie in n8n zu Einstellungen > Externe Secrets.
-
Klicken Sie auf Vault hinzufügen.
-
Geben Sie einen eindeutigen Namen für Ihren Vault ein. Dieser Name wird als erster Teil im
}-Ausdruck verwendet, wenn Sie auf das Secret in Anmeldedaten verweisen. -
Wählen Sie einen unterstützten Secret-Anbieter aus.
-
Geben Sie Ihre Anmeldeinformationen für den jeweiligen Anbieter ein:
-
Azure Key Vault: Geben Sie Vault-Name, Mandanten-ID, Client-ID und Client-Geheimnis an. Weitere Informationen finden Sie in der Azure-Dokumentation unter Registrieren einer Microsoft Entra ID-App und Erstellen eines Dienstprinzipals. n8n unterstützt nur einzeilige Secret-Werte.
-
AWS Secrets Manager: Geben Sie Ihre Zugriffsschlüssel-ID, Ihren geheimen Zugriffsschlüssel und die Region an. Der IAM-Benutzer benötigt die Berechtigungen
secretsmanager:ListSecrets,secretsmanager:BatchGetSecretValueundsecretsmanager:GetSecretValue.Um n8n den Zugriff auf alle Secrets im AWS Secrets Manager zu gewähren, können Sie dem IAM-Benutzer die folgende Richtlinie zuweisen. Alternativ können Sie den Zugriff auch auf bestimmte Secrets beschränken. Beachten Sie jedoch, dass
secretsmanager:ListSecretsundsecretsmanager:BatchGetSecretValueweiterhin für alle Ressourcen erlaubt sein müssen. Diese Berechtigungen ermöglichen n8n lediglich das Auflisten und Identifizieren von Secrets; sie gewähren aber keinen Zugriff auf die eigentlichen Secret-Werte.Für
secretsmanager:GetSecretValuemüssen Sie anschließend den Bereich auf die spezifischen Amazon Resource Names (ARNs) beschränken, die Sie mit n8n teilen möchten. Stellen Sie sicher, dass Sie in jedem ARN die korrekte Region und Account-ID verwenden. Die ARN-Informationen finden Sie auf der Detailseite des Secrets in der AWS-Konsole.Weitere Beispiele für IAM-Richtlinien finden Sie in der AWS-Dokumentation.
-
HashiCorp Vault: Geben Sie die Vault-URL Ihrer Vault-Instanz an und wählen Sie Ihre Authentifizierungsmethode aus. Geben Sie anschließend Ihre Authentifizierungsdetails ein. Optional können Sie auch einen Namespace angeben.
- Weitere Informationen zu den Authentifizierungsmethoden finden Sie in der HashiCorp-Dokumentation:
- Falls Sie Vault-Namespaces verwenden, können Sie hier den Namespace angeben, mit dem n8n verbunden werden soll. Weitere Informationen zu HashiCorp Vault-Namespaces finden Sie unter Vault Enterprise Namespaces.
-
Google Cloud Platform: Geben Sie den Dienstkonto-Schlüssel (im JSON-Format) eines Dienstkontos an, das mindestens über die Rollen
Secret Manager Secret AccessorundSecret Manager Secret Viewerverfügt. Weitere Informationen zu Dienstkonten finden Sie in der Google-Dokumentation unter Übersicht über Dienstkonten.
-
-
Speichern Sie Ihre Konfiguration.
-
Solange die Verbindung zum Speicher aktiv ist, können Sie seine Secrets in Anmeldedaten referenzieren.
Gemeinsame Nutzung von Vaults
Standardmäßig sind Secret-Vaults global: Alle Benutzer in der Instanz können Anmeldedaten verwenden, die auf Secrets dieses Vaults verweisen.
Instanzadministratoren können Vaults auf bestimmte Projekte beschränken. Sobald ein Vault einem Projekt zugewiesen ist, können nur Anmeldedaten innerhalb dieses Projekts auf dessen Secrets zugreifen. Sie können einen Vault entweder einem einzelnen Projekt zuordnen oder ihn global belassen.
Festlegen des Freigabebereichs:
- Gehen Sie in n8n zu Einstellungen > Externe Secrets.
- Suchen Sie den zu konfigurierenden Vault und wählen Sie Bearbeiten.
- Wählen Sie unter Freigabe eine der folgenden Optionen:
- Global: Der Vault wird in der gesamten n8n-Instanz freigegeben. Alle Anmeldedaten in der Instanz können auf diese Secrets verweisen.
- Projekt: Der Vault wird auf ein bestimmtes Projekt beschränkt. Nur Anmeldedaten innerhalb dieses Projekts können auf die Secrets zugreifen.
- Speichern Sie Ihre Konfiguration.
Verwendung von Secrets in n8n-Anmeldedaten
So verwenden Sie Secrets aus einem externen Speicher in n8n-Anmeldedaten:
- Erstellen Sie eine neue Anmeldung oder öffnen Sie eine vorhandene.
- Führen Sie folgende Schritte für das Feld aus, in dem Sie ein Secret verwenden möchten:
- Bewegen Sie die Maus über das Feld.
- Wählen Sie Ausdruck (Expression).
- Geben Sie im Feld einen Ausdruck ein, der auf den Secret-Namen verweist:
{{ $secrets.<Vault-Name>.<Secretname> }}
<Vault-Name> ist der Name, den Sie beim Hinzufügen des Speichers eingegeben haben. Ersetzen Sie <Secretname> durch den tatsächlichen Namen des Secrets in Ihrem Vault.
Verwendung externer Secrets in verschiedenen n8n-Umgebungen
Die Source-Control- und Umgebungsfunktion von n8n ermöglicht die Erstellung unterschiedlicher n8n-Umgebungen, die von Git unterstützt werden. Diese Funktion unterstützt nicht die Verwendung unterschiedlicher Anmeldedaten in verschiedenen Instanzen. Mithilfe externer Secret-Vaults können Sie jedoch jede n8n-Instanz mit einem anderen Vault oder einem bestimmten Projekt verbinden, um so unterschiedliche Anmeldedaten für verschiedene Umgebungen bereitzustellen.
Beispiel: Sie haben zwei n8n-Instanzen – eine für Entwicklung und eine für Produktion. In Ihrem Secret-Anbieter erstellen Sie ein Projekt mit zwei Umgebungen: Entwicklung und Produktion. Generieren Sie für jede Umgebung ein eigenes Token. Verbinden Sie Ihre Entwicklungs-n8n-Instanz mit dem Token der Entwicklungs-Umgebung und Ihre Produktions-n8n-Instanz mit dem Token der Produktions-Umgebung.
Verwendung externer Secrets in Projekten
Um externe Secrets in RBAC-Projekten verwenden zu können, müssen Sie als Instanzbesitzer oder Instanzadministrator Mitglied des jeweiligen Projekts sein.
Mit der Funktion für gemeinsam genutzte Vaults können Sie Vaults auf bestimmte Projekte beschränken. Einem Projekt zugewiesene Vaults können nur in Anmeldedaten dieses Projekts verwendet werden.
Fehlerbehebung
Verwenden Sie externe Secrets nur in Anmeldedaten, die Instanzbesitzern oder -administratoren gehören
Aufgrund ihrer erweiterten Berechtigungen können Instanzbesitzer und -administratoren Secret-Ausdrücke verwenden, um Anmeldedaten zu aktualisieren, die einem anderen Benutzer gehören. Während dies in der Vorschau für Besitzer/Administratoren funktioniert, können die Secrets beim Ausführen des Workflows in der Produktion nicht aufgelöst werden.
Verwenden Sie externe Secrets daher ausschließlich in Anmeldedaten, die Ihnen selbst (als Instanzbesitzer oder -administrator) gehören. Dadurch wird sichergestellt, dass die Secrets in der Produktionsumgebung korrekt aufgelöst werden können.