Zum Hauptinhalt springen

Passwörter · API-Schlüssel ändern

Die Servicekonten des Data Lake (PostgreSQL · Cassandra · Valkey · MinIO · Kafka/MQTT …) und API-Schlüssel starten in allen Installationen mit denselben Standardwerten. Sie müssen bei der Inbetriebnahme unbedingt geändert werden und werden danach nach Richtlinie rotiert.

Das Änderungstool ist bin/passwd.sh auf dem Host — nur dieses eine.

cd /opt/kopens/plantpulse-platform-docker

bin/passwd.sh --list # 바꿀 수 있는 키 + 계정명 + 현재값(마스킹) + 정본 위치
bin/passwd.sh PP_PG_PASSWORD # 값을 생략하면 프롬프트 — 권장 (히스토리 · ps 에 안 남는다)
bin/passwd.sh PP_PG_PASSWORD=<새비밀번호> # 인라인
bin/passwd.sh PP_CASSANDRA_PASSWORD PP_MINIO_PASSWORD # 여러 개를 한 번에 — 재시작 1회
bin/passwd.sh --dry-run PP_MQ_PASSWORD # 계획만 — 아무것도 바꾸지 않는다
Bearbeiten Sie keine Passwortzeilen durch Öffnen von Dateien

Passwörter liegen an zwei Orten separat vor — der Wert, den der Server akzeptiert (PostgreSQL-Konto, Cassandra-Rolle …) und der Wert, den der Client präsentiert (rund 20 Konfigurationsdateien). Diese werden nicht automatisch synchronisiert. Wenn Sie nur den Sidecar ändern, schlagen alle Clients bei der nächsten Neustartauthentifizierung fehl; wenn Sie nur den Server ändern, schlägt sie sofort fehl.

passwd.sh führt ① Serverseiten-Kontoänderung → ② Sidecar-Aktualisierung → ③ Konfiguration erneut rendern → ④ Neustart in einem Befehl der Reihe nach durch.

Schlüssel, die geändert werden können

Schlüssel sind genau die Umgebungsvariablennamen. Es gibt keine Aliasse wie postgres · mq — welcher Schlüssel zu welcher Komponente gehört, teilt Ihnen --list mit.

SchlüsselKomponenteKontoDefinitive Quelle des Wertes
PP_PG_PASSWORDPostgreSQLplantpulseBefehlALTER ROLE (psql)
PP_TEMPORAL_PASSWORDTemporal-Backend PostgreSQL-KontotemporalBefehlALTER ROLE (psql)
PP_HIVE_PASSWORDHive Metastore PostgreSQL-Konto + Kyuubi EingangsauthentifizierunghiveBefehlALTER ROLE (psql) + erneut rendern
PP_CASSANDRA_PASSWORDCassandracassandraBefehlALTER ROLE (cqlsh)
PP_REDIS_PASSWORDValkeyDateiplantpulse-storage/cache/valkey/conf/valkey.conf
PP_MINIO_PASSWORDMinIOminioStart-envMINIO_ROOT_PASSWORD
PP_MQ_PASSWORDKafka + HiveMQ — teilen einen WertmqDateikafka/config/jaas.conf + mqtt/conf/auth.properties
PP_CEP_API_KEYCEP API-Schlüssel (X-API-Key)Dateiplantpulse-cep/config/plantpulse-cep.properties
PP_DATA_GATEWAY_API_KEYDaten-Gateway API-SchlüsselDateiplantpulse-data-gateway/config/plantpulse-jdbc.properties
PP_DATALAKE_ADMIN_PASSWORDAdmin-KonsolenloginadminStart-env — admin-api liest aus seiner eigenen Umgebungsvariable
PP_DATALAKE_ADMIN_API_KEYAdmin-Konsolen-Protokollendpunkt X-API-KeyStart-env

Drei Bedeutungsebenen:

  • Befehl — Das Serverkonto ist die definitive Quelle. Ändern Sie über SQL/CQL, die Konfigurationsdatei ist nur eine Kopie für die Verbindung.
  • Datei — Diese gerenderte Datei ist die definitive Quelle. Sie ändert sich nur durch erneutes Rendern + Neustart.
  • Start-env — Wird beim Prozessstart eingespritzt. Es gibt keine Runtime-Änderungs-API, daher ist ein Neustart die einzige Möglichkeit, Änderungen wirksam zu machen.

Ändern Sie Kontonamen (PP_*_USER) nicht. Sie werden nur in --list angezeigt. Die Kontonamenänderung ist eine separate Aufgabe, die die Erstellung von Serverseiten-Rollen und die Übertragung von Berechtigungen erfordert.

Wenn Sie zwei Admin-Konsolenschlüssel in --list nicht sehen

PP_DATALAKE_ADMIN_PASSWORD · PP_DATALAKE_ADMIN_API_KEY wurden am 05.09.2026 hinzugefügt. Frühere Installationspakete haben nur 9 Schlüssel. In diesem Fall hat das Konsolenpasswort kein Serverkonto, daher können Sie den Sidecar direkt bearbeiten und neu starten → Web-UI-Anmeldekonto

Verfahren — Erste Inbetriebnahme

Bei der Inbetriebnahme rotieren Sie alle registrierten Schlüssel mit zufälligen Werten. --all ist nicht ein Feature von passwd.sh, sondern eine Option des Rotations-Engines rotate-secret.sh.

cd /opt/kopens/plantpulse-platform-docker

bin/rotate-secret.sh --dry-run --all --generate # 어떤 키가 걸리는지 확인 — 아무것도 안 바꾼다
bin/rotate-secret.sh --all --generate # 실행. 키마다 20자 무작위 값
bin/passwd.sh --list --show # 결과 확인 — 값이 그대로 찍히니 화면 공유 중에는 치지 마세요
  • Führen Sie es unbedingt in einem Wartungsfenster durch. Die Rotation beinhaltet einen Neustart, und Kafka/MQTT-Pfade werden währenddessen getrennt.
  • Sichern Sie vor der Arbeit Backups.
  • Die geänderten Werte befinden sich nur im Sidecar /etc/kopens/plantpulse-platform.env. Dokumentieren Sie in Übergabedokumenten nicht die Werte, sondern «wer sie speichert».

Verfahren — Während des Betriebs einzeln ändern

cd /opt/kopens/plantpulse-platform-docker
bin/passwd.sh --dry-run PP_PG_PASSWORD # 계획 확인
bin/passwd.sh PP_PG_PASSWORD # 프롬프트에 새 값 입력

Danach überprüfen Sie.

bin/status.sh # 0 = 정상
docker exec plantpulse-datalake pd node psql -c "SELECT 1;" # 새 비밀번호로 실제 접속되나
docker exec plantpulse-datalake pd node cql -e "SELECT now() FROM system.local;"
curl -kfsS https://<server-ip>:4950/api/health | jq .status # OK 또는 WARN

Fehler — denselben Befehl erneut ausführen

Die Rotation hat kein Rollback. Im Fehlerfall ist unklar, welcher Wert gültig ist, daher wäre ein Versuch zum Zurückfahren schlecht. Stattdessen reparieren Sie vorwärts.

Der Host-Ordner /etc/kopens/rotation.journal (0600) dokumentiert neue und alte Werte im Voraus. Führen Sie denselben Befehl einfach erneut aus, und jede Komponente wird überprüft (probe), welchen Wert sie derzeit akzeptiert, und fährt fort. Was bereits geändert wurde, wird übersprungen.

NachrichtBedeutungMaßnahme
probe=NEITHERWeder neuer noch alter Wert stellt eine Verbindung herDie Automatisierung hat keine Grundlage für eine Entscheidung. Sie müssen diese Komponente direkt überprüfen
apply fehlgeschlagenServerseitige Änderung fehlgeschlagen, sofort beendetBeheben Sie die Ursache und führen Sie denselben Befehl erneut aus
verify fehlgeschlagenServer hat sich geändert, aber neuer Wert stellt keine Verbindung herAm gefährlichsten. Das Journal bleibt als APPLIED — manuell überprüfen
configure fehlgeschlagenBeendet ohne NeustartBeabsichtigtes Verhalten (wenn es mit alter Konfiguration startet, schlagen alle Authentifizierungen fehl). Beheben Sie die Ursache und führen Sie erneut aus
variable not in the registryNicht registrierter SchlüsselSiehe unten Nicht rotierbare Werte
Wenn Workerknoten vorhanden sind, wird dies abgelehnt

Wenn Cluster-Worker konfiguriert sind, lehnt das Rotationstool dies ab und bricht ab. Jeder Worker hat seinen eigenen Sidecar. Wenn Sie nur den Master rotieren, behält der Worker den alten Wert und der Cluster ist halbiert. Für Umgebungen mit Workern folgen Sie dem manuellen Verfahren, und wiederholen Sie die Sidecar-Aktualisierung und den Neustart für jeden Worker.

PP_MQ_PASSWORD — Kafka und HiveMQ ändern sich zusammen

Ein Wert ist die Serverseiten-Anmeldedatenspeicher beider Broker und das Anmeldekennwort aller Clients. Sie können nicht separat geändert werden, und die Validierung des Rotationstools erfordert, dass beide mit dem neuen Wert verbunden sind, um erfolgreich zu sein.

Das statische JAAS akzeptiert neue und alte Werte nicht gleichzeitig, daher wird die MQ-Verbindung während der sequenziellen Neustarts von Broker und Verbrauchern getrennt. Unterbrechungsfreie Rotation wird nicht unterstützt.

PP_HIVE_PASSWORD — Ein Wert wird bidirektional verwendet

Es ist der Wert, den Hive Metastore beim Verbinden mit PostgreSQL präsentiert, und gleichzeitig der Wert, den der Client validiert, wenn er zu Kyuubi kommt. Daher führt das Rotationstool sowohl die PostgreSQL-Kontoänderung als auch das erneute Rendern der Konfiguration durch. Wenn Sie manuell nur eines tun, stirbt entweder der Metastore oder Kyuubi.

Nicht rotierbare Werte — manuell ändern

Wenn Sie einen Schlüssel geben, der nicht in der Registrierung steht, wird er nicht stillschweigend übersprungen, sondern abgelehnt. Die folgenden sind noch nicht registriert und werden mit dem manuellen Verfahren geändert.

VariableWas es istKernpunkt der manuellen Änderung
PP_SPARK_PASSWORDSpark/Kyuubi-ClientkontoEs gibt kein Serverkonto. hive-auth.properties erstellt ein Konto mit diesem Wert — Sidecar-Update + Neustart
PP_TSE_PASSWORDZeitreihen-Engine-KontoSidecar-Update + Neustart
PP_GRAVITINO_PASSWORD · PP_KESTRA_DB_PASSWORDSeparate Backend PostgreSQL-KontenDer Data Lake synchronisiert die PostgreSQL-Rollenpasswörter beim Booten mit dem Sidecar-Wert — Sidecar-Update + Neustart
PP_KESTRA_ADMIN_PASSWORDKestra-AdministratorWeb-UI-Anmeldekonto
PP_TLS_KEYSTORE_PASSWORD (+ Truststore-abgeleitete Sets)Alle ZertifikateHängt mit Zertifikatneuausstellung zusammen → Sicherheitskonfiguration
PP_OPCUA_PASSWORDOPC-UA-Server (App-Container)Außerhalb des Data Lake
PP_API_KEY · PP_FLOW_WEBHOOK_API_KEYFür externe Aufrufer (App-Container)Außerhalb des Data Lake
PP_DATA_GATEWAY_WEB_PASSWORD · PP_CEP_WEB_PASSWORDAbfrage-Konsolen-Browser-AnmeldungenBewusste Entscheidung, nicht zu rotieren (2026-09-07). Sidecar-Update + Neustart → Web-UI-Anmeldekonto

Tun Sie das nicht

  • Bearbeiten Sie pd secret rotate nicht direkt in Containern. Rotationsjournale und Sidecar müssen sich auf dem Host befinden, um bei der Container-Neuerstellung zu überleben. Der Host passwd.sh ruft es auf.
  • Erwarten Sie nicht, dass Passwortänderungen im bin/env.sh Standard reflektiert werden. Der Sidecar gewinnt.
  • Fügen Sie die Ausgabe von --list --show nicht in Tickets oder Chats ein.
  • Unterbrechen Sie während der Rotation nicht mit Ctrl+C und starten Sie mit einem anderen Wert neu. Das Journal merkt sich den ersten Wert. Führen Sie mit demselben Wert erneut aus, bis Sie fertig sind, dann ändern Sie erneut.

Zugehörige Dokumentation