Secrets Management im Setup: Vault/SOPS/systemd-creds produktiv nutzen

Das Management von Secrets, Passwörtern, Tokens und Zertifikaten ist ein zentraler Bestandteil sicherer Server-Setups. Unsachgemäße Handhabung kann zu kompromittierten Systemen oder Datenverlust führen. Moderne Linux-Umgebungen bieten unterschiedliche Werkzeuge wie HashiCorp Vault, SOPS oder systemd-creds, um Secrets sicher zu speichern, zu verteilen und in automatisierte Prozesse zu integrieren.

Prinzipien für sicheres Secrets Management

Bevor konkrete Tools betrachtet werden, ist es wichtig, grundlegende Prinzipien für Secrets Management zu verstehen:

  • Minimale Rechte: Nur die Dienste oder Benutzer, die ein Secret benötigen, sollten Zugriff haben.
  • Verschlüsselung: Secrets sollten stets verschlüsselt gespeichert werden, sowohl im Ruhezustand als auch während der Übertragung.
  • Versionierung: Änderungen an Secrets sollten nachvollziehbar sein, idealerweise mit Audit-Trails.
  • Rotation: Secrets sollten regelmäßig gewechselt werden, um das Risiko eines Missbrauchs zu minimieren.
  • Automatisierung: Die Integration in Provisioning- und Deployment-Pipelines reduziert manuelle Fehler.

HashiCorp Vault produktiv nutzen

Vault bietet ein zentrales Secret-Management-System mit starken Zugriffssteuerungen und Audit-Funktionen.

Installation und Grundsetup

# Installation auf Ubuntu
apt-get update && apt-get install -y vault

Vault Server starten (Dev Mode nur für Test)

vault server -dev

Authentifizierung und Policies

Vault trennt Authentifizierung und Autorisierung. Benutzer oder Dienste erhalten Tokens, deren Zugriff über Policies geregelt ist.

# Beispiel: Policy erlauben Zugriff auf secrets/data/app
vault policy write app-policy - <Token für Service Account erstellen

vault token create -policy="app-policy"

Integration in Services

Dienste können Vault über APIs oder CLI ansprechen, um Secrets dynamisch zu erhalten. Dies reduziert statische Secrets auf dem Filesystem.

# Beispiel: Secret abrufen
vault kv get secret/data/app

SOPS (Secrets OPerationS) für GitOps

SOPS verschlüsselt Konfigurationsdateien direkt und ist ideal für GitOps-Workflows.

Dateien verschlüsseln

# Installieren
apt-get install -y sops

Datei verschlüsseln mit PGP-Schlüssel

sops --encrypt --pgp config.yaml > config.enc.yaml

Entschlüsseln

sops --decrypt config.enc.yaml > config.yaml

Integration in Deployment-Pipelines

  • CI/CD-Tools wie GitLab CI oder GitHub Actions können SOPS-Dateien beim Deployment entschlüsseln.
  • Secrets bleiben im Git-Repository verschlüsselt, sodass kein Klartext vorliegt.

systemd-creds für lokale Secrets

systemd-creds erlaubt es, kleine Secrets direkt im Systemd-Umfeld zu verwalten, z. B. für Unit-Files oder temporäre Token.

Beispiel für einen Credential Store

# Credential setzen
systemd-creds --store=service-creds set DB_PASSWORD mysecret

Credential in Unit-Datei referenzieren

[Service]
ExecStart=/usr/bin/myapp
Environment=DB_PASSWORD=/run/creds/service-creds/DB_PASSWORD

Vorteile

  • Keine Klartext-Dateien auf Disk notwendig
  • Secrets werden nur für die Laufzeit der Unit bereitgestellt
  • Einfach in bestehende systemd-Services integrierbar

Best Practices für produktives Secrets Management

  • Trenne Secrets strikt von Applikationscode
  • Nutze Vault oder SOPS für zentrale Verwaltung und Versionskontrolle
  • Setze Tokens und Schlüssel mit begrenzter Lebensdauer ein
  • Auditiere jeden Zugriff auf Secrets, sowohl lokal als auch zentral
  • Automatisiere die Rotation und Bereitstellung von Secrets in Deployment-Pipelines
  • Erlaube nur autorisierten Services den Zugriff, keine direkten User-Zugriffe

Fazit

Ein professionelles Secrets Management ist essenziell für den sicheren Betrieb von Linux-Servern. Vault, SOPS und systemd-creds bieten unterschiedliche Stärken: Vault für zentrale und dynamische Verwaltung, SOPS für GitOps-Workflows, systemd-creds für lokale Laufzeit-Integration. In Kombination mit klaren Policies, automatischer Rotation und Auditierung entsteht eine robuste, sichere Infrastruktur für den produktiven Betrieb.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles