Websites

App-Geheimnisse für eine Website speichern

The Secrets tab is an encrypted store for the sensitive configuration values a Node.js app needs, such as API keys, signing secrets and third-party tokens, kept per environment so your production…

Der Reiter "Secrets" ist ein verschlüsselter Speicher für die sensiblen Konfigurationswerte, die eine Node.js-App benötigt, beispielsweise API-Schlüssel, Signierschlüssel und Tokens von Drittanbietern. Diese werden pro Umgebung gespeichert, damit Ihre Produktionsanmeldedaten und Ihre Vorschauanmeldedaten nie durcheinander geraten.

Wo Secrets gespeichert werden

Öffnen Sie Websites, klicken Sie auf die Website, öffnen Sie das Menü Advanced im Tab-Streifen der Website und wählen Sie Secrets. Der Tab heißt Secrets.

Der Tab wird nur auf Node.js-Websites angezeigt. WordPress-, PHP- und statische Websites zeigen ihn nicht, da ihre Konfiguration stattdessen in Dateien auf der Festplatte lebt: wp-config.php für WordPress und das, was Ihr Framework für eine einfache PHP-App liest.

Secrets-Tab für eine Node.js-Website in KPanel

Wie Werte geschützt werden

Jeder Wert wird verschlüsselt, bevor er die Datenbank berührt. Nichts wird als lesbarer Text gespeichert, und die Listenansicht zeigt nie einen vollständigen Wert: Sie zeigt eine Maske mit nur den letzten vier Zeichen, damit Sie zwei ähnliche Schlüssel unterscheiden können, ohne einen von ihnen preiszugeben.

Jede Zeile trägt zu Ihrer Erinnerung daran ein Pill mit der Beschriftung Encrypted. Das Auslesen eines Wertes ist eine separate, bewusste Aktion, anstatt etwas, das einfach beim Öffnen der Seite passiert.

Das Festlegen, Offenlegen und Löschen eines Geheimnisses erfordert alle die Berechtigung sites:write. Ein Mitglied mit Nur-Lese-Zugriff kann sehen, welche Schlüssel vorhanden sind und deren Masken, aber nicht deren Werte.

Die zwei Umgebungen

Ein segmentiertes Steuerelement oben auf der Seite wechselt zwischen production und preview. Sie sind völlig separate Sätze von Schlüsseln. Das Festlegen von STRIPE_SECRET_KEY in der Produktion erstellt es nicht in der Vorschau, und das Löschen aus der Vorschau berührt nicht die Produktion.

Diese Trennung ist der Sinn der Funktion. Vorschau-Builds sind Wegwerf-Umgebungen, die jeder mit Repository-Zugriff auslösen kann, daher sollten sie Test-Anmeldedaten tragen, nicht echte. Siehe Preview Deploys For Pull Requests für die Erstellung von Vorschau-Umgebungen.

Hinzufügen oder Aktualisieren eines Geheimnisses

  1. Wählen Sie die Umgebung mit dem segmentierten Steuerelement.
  2. Geben Sie den Namen im Feld KEY_NAME ein. Das Feld erzwingt Großbuchstaben beim Eingeben.
  3. Geben Sie den Wert im zweiten Feld ein. Er wird beim Eingeben maskiert.
  4. Klicken Sie auf Set.

Das Festlegen eines bereits vorhandenen Schlüssels überschreibt ihn. Es gibt keine separate Bearbeitungsaktion und keinen Bestätigungsschritt für ein Überschreiben. Überprüfen Sie daher die Umgebungs-Tab, bevor Sie auf Set klicken.

Regeln für Schlüsselnamen

Ein Schlüssel muss mit einem Großbuchstaben beginnen und kann dann Großbuchstaben, Ziffern und Unterstriche enthalten, bis zu 128 Zeichen. DATABASE_URL, API_KEY_V2 und SENTRY_DSN sind alle gültig. Alles andere wird mit der Meldung Key must be UPPER_SNAKE_CASE letters/numbers/underscore abgelehnt.

Zwei weitere Limits sind beachtenswert:

  • Ein Wert kann nicht leer sein. Das Einreichen eines leeren Wertes gibt value required zurück.
  • Ein Wert kann 16 KB nicht überschreiten. Das ist großzügig für einen Token, aber nicht ausreichend für beispielsweise eine vollständige Zertifikatskette, die in eine Datei und nicht in ein Geheimnis gehört.

Einen Wert auslesen

Klicken Sie auf Copy in der Zeile. KPanel entschlüsselt den Wert serverseitig und legt ihn direkt in die Zwischenablage Ihres Computers mit einer Bestätigung Value copied to clipboard. Der Wert wird auf dem Bildschirm nicht ausgedruckt, daher wird er nicht von einer Bildschirmfreigabe oder einem Schulterschauer abgerufen.

Jede Offenlegung wird in das Audit-Trail der Website geschrieben, zusammen mit wer es getan hat und welcher Schlüssel, und erscheint im Site Activity Log.

Wenn Sie überprüfen müssen, ob ein Wert korrekt ist, ohne ihn preiszugeben, vergleichen Sie stattdessen die Maske. Die letzten vier Zeichen reichen aus, um zu bestätigen, dass Sie den richtigen Token haben, und sie sind bereits auf dem Bildschirm.

Verwenden eines Geheimnisses in Ihrer App

Kopieren Sie den Wert an die Stelle, an der Ihre Anwendung ihre Konfiguration auf dem Server liest. Für eine Node.js-App ist das normalerweise eine Umgebungsvariable, die von Ihrem Prozessmanager festgelegt wird, oder eine .env-Datei im App-Stammverzeichnis, die Ihr Code beim Starten lädt.

Bringen Sie diese Datei nicht zu Ihrem Repository ein. Fügen Sie .env zu .gitignore hinzu, bevor Sie es erstellen. Ein Geheimnis, das zu einem Git-Remote gepusht wurde, muss als durchgesickert behandelt und beim Anbieter rotiert werden, da es in der Historie bleibt, auch nachdem Sie die Datei löschen.

Der Reiter "Secrets" ist Ihre Aufzeichnung darüber, was der Wert ist, verschlüsselt und geprüft gespeichert, anstatt eine Notiz in einem Passwort-Manager oder ein Nachrichtenthread. Behalten Sie ihn als Quelle der Wahrheit: Wenn Sie einen Schlüssel beim Anbieter rotieren, aktualisieren Sie ihn gleichzeitig hier, damit die nächste Person, die bereitstellt, den aktuellen Wert hat.

Löschen eines Geheimnisses

Klicken Sie auf Delete in der Zeile. KPanel fordert Sie auf zu bestätigen mit Delete {KEY}? und warnt, dass die App bei ihrem nächsten Neustart den Zugriff auf diesen Wert verliert. Es gibt kein Rückgängigmachen und keine Kopie, also kopieren Sie den Wert zuerst, wenn Sie ihn möglicherweise später benötigen.

Löschen Sie ein Geheimnis, wenn die zugrunde liegende Anmeldedaten beim Anbieter widerrufen wurden, oder wenn der Code, der sie verwendet hat, entfernt wurde. Das Belassen veralteter Schlüssel macht es später schwieriger, herauszufinden, welche eigentlich wichtig sind.

Sicheres Rotieren einer Anmeldedaten

Die sichere Reihenfolge ist immer: Erstellen Sie die neue Anmeldedaten beim Anbieter, aktualisieren Sie sie hier, stellen Sie bereit, bestätigen Sie, dass die App funktioniert, und widerrufen Sie dann die alte Anmeldedaten beim Anbieter.

Dies auf die andere Weise zu tun, zuerst zu widerrufen, gibt Ihnen ein Fenster, in dem die laufende App eine tote Anmeldedaten hält und jede Anforderung, die sie benötigt, fehlschlägt. Wenn die Änderung riskant ist, machen Sie zuerst eine Sicherung, damit Sie zu einem bekannten guten Zustand zurückkehren können: siehe Taking a Backup.

Fehlerbehebung

Der Reiter "Secrets" ist nicht im Menü. Die Website ist keine Node.js-Website. Überprüfen Sie das Stack-Pill neben dem Website-Namen oben auf der Seite.

Die Schaltfläche "Set" tut nichts. Beide Felder sind erforderlich. Die Schaltfläche meldet Key + value required, wenn ein Feld leer ist.

Der Schlüssel wurde abgelehnt. Kleinbuchstaben, Bindestriche, Punkte und Leerzeichen sind nicht zulässig. api-key und Api_Key schlagen beide fehl; API_KEY wird bestanden.

Copy hat nichts in die Zwischenablage eingefügt. Einige Browser blockieren Zwischenablagen-Schreibvorgänge auf einer inaktiven Tab. Klicken Sie zuerst auf die Seite, und klicken Sie dann erneut auf Copy.

Was als Nächstes zu tun ist

Benötigen Sie noch Hilfe?

Schreiben Sie uns an support@kapsulehost.com oder öffnen Sie einen Chat in KPanel.

KPanel öffnen
App-Geheimnisse für eine Website speichern