Mein Puppenmeister enthält einige sensible Dateien. Ich möchte, dass jeder Marionettenagent nur auf die Dateien zugreifen kann, die für diesen bestimmten Agenten von Interesse sind. Mit anderen Worten:
- Führt der Puppet-Agent seinen Katalog aus und fordert den Master immer dann auf, wenn er auf eine "Datei" - oder "Vorlage" -Funktion oder einen "source => 'puppet: /// ..." "- Parameter stößt angegebene Datei, und der Master stellt es nur ohne Überprüfung zur Verfügung? Das wäre schlecht. Wenn ein Agent kompromittiert wurde, könnte er den Master nach einer beliebigen Datei auf dem Master fragen, auch nach Dateien, die nur für andere Agenten bestimmt sind.
- Oder überprüft der Master irgendwie, ob der Katalog des Agenten diesen bestimmten Agenten wirklich autorisiert, diese bestimmte Datei abzurufen?
Ich weiß nicht, ob es wichtig ist, aber ich fahre Passagier (und alle meine Agenten und Master sind 2.7.6 von Squeeze-Backports).
quelle
Ich habe keine harten Daten dazu. Nach dem, was ich hier und da gelesen habe, habe ich jedoch das Gefühl, dass jeder Agent jede Datei vom Master erhalten kann, wenn sich diese Datei im Puppet-Dateiserverbaum befindet und die Konfiguration des Puppet-Dateiservers dem Agenten den Zugriff auf den Baum ermöglicht. Ich habe auch das Gefühl, dass die Funktionen file (), template () und extlookup () auf dem Master ausgeführt werden, während er die Konfiguration des Agenten kompiliert, bevor er an den Agenten gesendet wird.
Daher sollte es einigermaßen sicher sein, vertrauliche Dateien außerhalb des Puppet-Dateiserverbaums zu speichern und mit file () darauf zuzugreifen. Auf diese Weise sollten sie nur dem Agenten zugänglich sein, für den sie bestimmt sind.
quelle
"Wenn Sie wichtige Dateien nicht auf einem Puppenspielserver speichern möchten, was schlagen Sie stattdessen vor?"
Ich denke, ein Puppenbibliothekar kann in diesem Fall vielleicht helfen. Dabei erstellt man eine für einen Kunden spezifische Puppendatei und wendet sie bei Bedarf auf einen Kunden an (vielleicht sogar ohne einen Puppenmeister).
Ein typisches Szenario könnte also sein, in die Box zu ssh, eine Puppendatei von einem bekannten sicheren Remote- oder lokalen Speicherort zu holen und damit alle abhängigen Module (und / oder Konfigurationsdateien) zu installieren, bevor ein manueller Puppet-Lauf ausgelöst wird. Ich nehme an, Sie können Automatisieren Sie diese Aufgaben einfach mit Capistrano oder ähnlichen Tools.
quelle
Solange diese Datei nur in einem 'Knoten' definiert ist, sollte es Ihnen gut gehen, ein anderer 'Knoten' kann diese Datei nicht anfordern, da sie für ihn nicht existiert.
Im Allgemeinen ist es jedoch keine gute Idee, "geschützte" Dateien auf einem Puppet-Server zu speichern.
Hoffe das hilft!
quelle
/etc/puppet/auth.conf
nicht geändert wurden.