Mit mozilla SOPS sensible Daten im Repo versionieren

19 Mär 2023 - Lesezeit: 2 Minuten

Ich weiß, ich weiß... keine sensiblen Daten im Repo. Aber mal ehrlich - es ist manchmal echt kacke es nicht zu tun. Auch ist es so, dass man ja vielleicht auch seine sensiblen Daten versionieren will/muss. Und überhaupt - wenn ich meine sensiblen Daten viellicht regelmäßig ändere - wie sensibel sind sie dann?

Jedenfalls bin ich der Meinung, dass man sich ordentlich was vor macht - immerhin geht der Trend dahin seine Secrets in Jenkins/GitHub/Gitlab zu hinterlegen oder gar einen KMS zu nutzen - damit wird es dann schon ziemlich absurd.

Ich finde jedenfalls, dass es für einen genialen Workflow durchaus gute Gründe gibt, manche Daten auch im Git zu hinterlegen. Aber natürlich verschlüsselt.

Mozilla SOPS wurde genau für diesen Zweck entwickelt und es ermöglicht einen wahnsinnigen Fundus an möglichen Umsetzungen.

SOPS steht für Secrets OPerationS, ist im grunde nur eine einzelne Binary (wie alles coole heute so) und arbeitet mit verschiedenen Schnittstellen zusammen. Ich konzentriere mich hier auf eine Umsetzung mit Azure KeyVault als Schlüssellieferanten. Zum einen weil ich es grade unter den Fingern habe, zum anderen weil ich die Vorstellung mag mit dem OnBoarding eines Benutzers gleich alles im Sack zu haben.

Wie man sich die Grundlagen zurecht installiert, ist ganz gut auf der Seite beschrieben. Ich gehe hier von einem Windows System aus, da es in den meisten dicken Firmen standard ist. Ist aber auch egal, man muss nur das Tool zur Hand haben, dann sollte es auch so gehen.

Anschließend fangen wir schon das Verschlüseln an:

# Datei verschlüsseln und eine neue erzeugen
sops --encrypt --azure-kv https://$KEYID .\UNSICHERE-Datei.yaml > .\SICHERE-Datei.yaml

Um eine Datei zu verschlüsseln und direkt die Datei umzuschreiben, kann man diesen Befehl ausführen:

# Datei verschlüsseln und direkt die Datei umschreiben
sops --encrypt --azure-kv https://$KEYID --in-place .\UNSICHERE-Datei.yam

Und voilà! Du hast jetzt eine verschlüsselte Datei im Git-Repository, die du ohne Bedenken teilen und versionieren kannst. Natürlich gibt es noch weitere Optionen und Möglichkeiten mit SOPS, aber das sollte dir einen guten Einstieg geben.

Es wurden noch keine Kommentare verfasst, sei der erste!