In jeder Home Assistant Konfiguration wird es YAML-Dateien geben, welche auch Zugangsdaten für Integrationen beinhalten. Das unschöne hieran ist leider, dass das Passwort im Klartext gespeichert wird.
Mit anderen Worten: Erhält jemand Zugriff auf deine YAML-Dateien mit Passwörtern drin, hat diese Person auch Zugriff auf diese Dienste (da der notwendige Benutzer ja ebenfalls im Klartext aufgeführt ist). Diese Tatsache ist definitiv nicht schön und auch ein (in meinen Augen) absolutes Problem von Home Assistant.

Es kommt leider immer wieder vor, dass Hilfe suchende Personen in Foren oder Kommentaren ihre Zugangsdaten unbedacht preisgeben, in der Hoffnung Hilfe zu erhalten.
Es ist üblich, dass in Foren Zeilen aus den YAML-Dateien kopiert werden, damit andere, erfahrene Nutzer Hilfestellung leisten können.
Damit man nicht auch aus Versehen Zugangsdaten preisgibt, sollte man für alle Zugangsdaten die Möglichkeit nutzen diese in die secrets.yaml auszulagern.
Letztlich stehen in dieser Datei die Zugangsdaten natürlich auch im Klartext, jedoch eben in einer expliziten Datei, welche man eben nicht aus Versehen im Internet preisgibt. In der secrets.yaml definiert man Variablen, welche dann an andere Stelle in den YAML-Dateien genutzt werden können.
Anstelle also eine Integration über YAML mit dem Passwort und Benutzer im Klartext zu haben, wird hier lediglich auf die in der secrets.yaml definierten Variablen verwiesen. Kopiert man nun den YAML-Code der Integration in ein Forum, kann man die Zugangsdaten nicht mehr preisgeben, da nun lediglich auf die Secrets-Variablen verwiesen wird.
Hier ein konkretes Beispiel:
secret_latitude: 50.4711
secret_longtitude: 7.4711
Konfiguration mit Nutzung der secrets.yaml Variable:
homeassistant:
name: F5c
latitude: !secret secret_latitude
longitude: !secret secret_longtitude
Sofern du diese secrets.yaml also noch nicht nutzt, solltest du dies umgehend nachholen!
Kleiner Exkurs: Nicht wenige Smarthome-Fans nutzen Git als Versionierungs-Tool für die Home Assistant Konfiguration. In Git kann man Dateien explizit benennen, welche nicht in der Versionierung erscheinen sollen. Hier sollte die secrets.yaml entsprechend als Ausschluss gewählt werden, damit die „geheimen“ Zugangsdaten nicht im Repository auftauchen und somit etas besser geschützt sind!
Der Hinweis mit der secret.yaml ist ja sehr gut.
Aber ein Beispiel wie man das integriert wäre ja noch viel hilfreicher gewesen.
Die Datei secrets.yaml muss nicht manuell eingebunden werden! Es genügt diese im „Hauptordner“, also dort, wo auch die configuration.yaml liegt, abzuspeichern!
Hallo Olli,
danke für den Tipp. Wie macht man das z. B. in der recorder.yaml? In dieser befinden sich die Zugangsdaten für die MariaDB:
db_url: mysql://homeassistant:passwort@core-mariadb/homeassistant?charset=utf8mb4
Die recorder.yaml wird wie gewohnt in die configuration.yaml eingebunden:
recorder: !include recorder.yaml
Servus
Peter
Hallo Peter,
du kannst die gesamte URL in der secrets.yaml speichern anstelle nur der Zugangsdaten. Und dieses Secret kannst du dann in der recorder.yaml nutzen
VG
Olli