Profilanwendbarkeit: Stufe 1
Kubernetes unterstützt das Einbinden von Geheimnissen als Datenvolumen oder als Umgebungsvariablen.
Minimieren Sie die Verwendung von Umgebungsvariablen für Geheimnisse.
Es ist relativ üblich, dass Anwendungs-Code seine Umgebung protokolliert (insbesondere
im Falle eines Fehlers). Dies schließt alle geheimen Werte ein, die als Umgebungsvariablen
übergeben werden, sodass Geheimnisse leicht für jeden Benutzer oder jede Entität,
die Zugriff auf die Protokolle hat, offengelegt werden können.
HinweisStandardmäßig sind Geheimnisse nicht definiert.
|
Auswirkung
Anwendungscode, der erwartet, Geheimnisse in Form von Umgebungsvariablen zu lesen,
müsste geändert werden.
Prüfung
Führen Sie den folgenden Befehl aus, um Verweise auf Objekte zu finden, die Umgebungsvariablen
verwenden, die aus Geheimnissen definiert sind.
kubectl get all -o jsonpath='{range .items[?(@..secretKeyRef)]} {.kind}
{.metadata.name} {"\n"}{end}' -A
Wiederherstellung
Wenn möglich, schreiben Sie den Anwendungscode so um, dass Geheimnisse aus eingebundenen
Geheimdateien gelesen werden, anstatt aus Umgebungsvariablen.
HinweisDas Einbinden von Geheimnissen als Volumes hat den zusätzlichen Vorteil, dass Geheimniswerte
aktualisiert werden können, ohne den Pod neu zu starten
|
