Zum Hauptinhalt springen

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.

  1. Gehen Sie in n8n zu Einstellungen > Externe Secrets.

  2. Klicken Sie auf Vault hinzufügen.

  3. 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.

  4. Wählen Sie einen unterstützten Secret-Anbieter aus.

  5. 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:BatchGetSecretValue und secretsmanager: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:ListSecrets und secretsmanager:BatchGetSecretValue weiterhin 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:GetSecretValue mü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.

    • Google Cloud Platform: Geben Sie den Dienstkonto-Schlüssel (im JSON-Format) eines Dienstkontos an, das mindestens über die Rollen Secret Manager Secret Accessor und Secret Manager Secret Viewer verfügt. Weitere Informationen zu Dienstkonten finden Sie in der Google-Dokumentation unter Übersicht über Dienstkonten.

  6. Speichern Sie Ihre Konfiguration.

  7. 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:

  1. Gehen Sie in n8n zu Einstellungen > Externe Secrets.
  2. Suchen Sie den zu konfigurierenden Vault und wählen Sie Bearbeiten.
  3. 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.
  4. Speichern Sie Ihre Konfiguration.

Verwendung von Secrets in n8n-Anmeldedaten

So verwenden Sie Secrets aus einem externen Speicher in n8n-Anmeldedaten:

  1. Erstellen Sie eine neue Anmeldung oder öffnen Sie eine vorhandene.
  2. Führen Sie folgende Schritte für das Feld aus, in dem Sie ein Secret verwenden möchten:
    1. Bewegen Sie die Maus über das Feld.
    2. Wählen Sie Ausdruck (Expression).
  3. 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.