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 # 계획만 — 아무것도 바꾸지 않는다
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üssel | Komponente | Konto | Definitive Quelle des Wertes |
|---|---|---|---|
PP_PG_PASSWORD | PostgreSQL | plantpulse | Befehl — ALTER ROLE (psql) |
PP_TEMPORAL_PASSWORD | Temporal-Backend PostgreSQL-Konto | temporal | Befehl — ALTER ROLE (psql) |
PP_HIVE_PASSWORD | Hive Metastore PostgreSQL-Konto + Kyuubi Eingangsauthentifizierung | hive | Befehl — ALTER ROLE (psql) + erneut rendern |
PP_CASSANDRA_PASSWORD | Cassandra | cassandra | Befehl — ALTER ROLE (cqlsh) |
PP_REDIS_PASSWORD | Valkey | — | Datei — plantpulse-storage/cache/valkey/conf/valkey.conf |
PP_MINIO_PASSWORD | MinIO | minio | Start-env — MINIO_ROOT_PASSWORD |
PP_MQ_PASSWORD | Kafka + HiveMQ — teilen einen Wert | mq | Datei — kafka/config/jaas.conf + mqtt/conf/auth.properties |
PP_CEP_API_KEY | CEP API-Schlüssel (X-API-Key) | — | Datei — plantpulse-cep/config/plantpulse-cep.properties |
PP_DATA_GATEWAY_API_KEY | Daten-Gateway API-Schlüssel | — | Datei — plantpulse-data-gateway/config/plantpulse-jdbc.properties |
PP_DATALAKE_ADMIN_PASSWORD | Admin-Konsolenlogin | admin | Start-env — admin-api liest aus seiner eigenen Umgebungsvariable |
PP_DATALAKE_ADMIN_API_KEY | Admin-Konsolen-Protokollendpunkt X-API-Key | — | Start-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.
--list nicht sehenPP_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.
| Nachricht | Bedeutung | Maßnahme |
|---|---|---|
probe=NEITHER | Weder neuer noch alter Wert stellt eine Verbindung her | Die Automatisierung hat keine Grundlage für eine Entscheidung. Sie müssen diese Komponente direkt überprüfen |
apply fehlgeschlagen | Serverseitige Änderung fehlgeschlagen, sofort beendet | Beheben Sie die Ursache und führen Sie denselben Befehl erneut aus |
verify fehlgeschlagen | Server hat sich geändert, aber neuer Wert stellt keine Verbindung her | Am gefährlichsten. Das Journal bleibt als APPLIED — manuell überprüfen |
configure fehlgeschlagen | Beendet ohne Neustart | Beabsichtigtes 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 registry | Nicht registrierter Schlüssel | Siehe unten Nicht rotierbare Werte |
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.
| Variable | Was es ist | Kernpunkt der manuellen Änderung |
|---|---|---|
PP_SPARK_PASSWORD | Spark/Kyuubi-Clientkonto | Es gibt kein Serverkonto. hive-auth.properties erstellt ein Konto mit diesem Wert — Sidecar-Update + Neustart |
PP_TSE_PASSWORD | Zeitreihen-Engine-Konto | Sidecar-Update + Neustart |
PP_GRAVITINO_PASSWORD · PP_KESTRA_DB_PASSWORD | Separate Backend PostgreSQL-Konten | Der Data Lake synchronisiert die PostgreSQL-Rollenpasswörter beim Booten mit dem Sidecar-Wert — Sidecar-Update + Neustart |
PP_KESTRA_ADMIN_PASSWORD | Kestra-Administrator | Web-UI-Anmeldekonto |
PP_TLS_KEYSTORE_PASSWORD (+ Truststore-abgeleitete Sets) | Alle Zertifikate | Hängt mit Zertifikatneuausstellung zusammen → Sicherheitskonfiguration |
PP_OPCUA_PASSWORD | OPC-UA-Server (App-Container) | Außerhalb des Data Lake |
PP_API_KEY · PP_FLOW_WEBHOOK_API_KEY | Für externe Aufrufer (App-Container) | Außerhalb des Data Lake |
PP_DATA_GATEWAY_WEB_PASSWORD · PP_CEP_WEB_PASSWORD | Abfrage-Konsolen-Browser-Anmeldungen | Bewusste Entscheidung, nicht zu rotieren (2026-09-07). Sidecar-Update + Neustart → Web-UI-Anmeldekonto |
Tun Sie das nicht
- Bearbeiten Sie
pd secret rotatenicht direkt in Containern. Rotationsjournale und Sidecar müssen sich auf dem Host befinden, um bei der Container-Neuerstellung zu überleben. Der Hostpasswd.shruft es auf. - Erwarten Sie nicht, dass Passwortänderungen im
bin/env.shStandard reflektiert werden. Der Sidecar gewinnt. - Fügen Sie die Ausgabe von
--list --shownicht in Tickets oder Chats ein. - Unterbrechen Sie während der Rotation nicht mit
Ctrl+Cund 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
- Web-UI-Anmeldekonto
- Passwortänderung (Credential-Rotation) — Manuelles Verfahren — Werte, die nicht vom Tool behandelt werden
- Anfängliche Passwortänderung — Gesamte Inbetriebnahme-Checkliste