Puppet und hiera-eyaml

Puppet 5 unterstützt jetzt offiziell hiera-eyaml direkt ohne, dass zusätzliche Rubygems installiert werden müssen.
Grundsätzlich funktioniert hiera-eyaml in etwa so:
  • Der Puppet Coder verschlüsselt die geheimen Daten mit dem öffentlichen Schlüssel und speichert dies mit den Hiera Daten
  • Der Puppet-Server entschlüsselt diese Daten dann transparent via Lookup/hiera mit dem privaten Schlüssel beim Kompilieren vom Katalog
 Tönt auf die schnelle gut.

Aber ich sehe folgende Probleme:

  • in der Doku habe ich keine Hinweise gefunden, wie z.B. im Falle dass der private Schlüssel nicht mehr sicher ist alle Daten auf einfache Art und weise neu verschlüsselt werden können.
  • Unklar auch, wie man den privaten Schüssel regelmässig austauschen könnte.
  • Die Daten werden auf dem Puppet-Server entschlüsselt und im Katalog unverschlüsselt gespeichert und so an den Puppet-Agent übermittelt.
  • Der Puppet-Agent speichert den Katalog standardmässig auf dem System - inklusive den unverschlüsselten Daten.
  • Der vom Puppet-Agent generierte Report kann wiederum diese unverschlüsselten Daten enthalten - dieser wird vim Puppet-Agent auch gespeichert und an den Puppet-Server zurückgeschickt.
  • Der Puppet-Server speichert diesen Report dann vermutlich in der PuppetDB (oder als yaml/json im Dateisystem, ...)
  • Wenn eine Puppet-Server mit PuppetDB+storedconfigs konfiguriert ist, wird der Katalog inkl. unverschüsselten Daten in der PuppetDB gespeichert - somit hat wer auf die PuppetDB Zugriff hat, Zugriff auf alle unverschlüsselten Daten (und z.B. auch via Backup-Dumps, ...)
  • Die Hiera-Daten werden meistens in einem Versionsverwaltungs-Tool gespeichert. Wenn der private Schlüssel einmal bekannt war, muss eigentlich die ganze History umgeschrieben werden - was dann aber entgegen der Idee vom Versionsverwaltungs-Tool läuft.
Einen ersten Ansatz um gewisse Probleme zu lösen gibt es schon mal: der Sensitive Type. Mit diesem kann man Variablen im Puppet Code bezeichnen welche speziell behandelt werden sollen.

Mein Fazit

Die unverschüsselten Daten werden potentiell an diversen Stellen gespeichert. Der Einsatz von hiera-eyaml sollte genau geprüft werden.

Links

Beliebte Posts aus diesem Blog