Secret
Secrets enthalten vertrauliche Laufzeitwerte. Sie werden nicht mit echten Werten im Git-Repository abgelegt. Die konkrete Secret-Verwaltung richtet sich nach dem Plattformstandard des Clusters.
Backend-Secret
Ein geplantes Secret bflies-backend-sec stellt mindestens folgende Werte bereit:
- Datenbankbenutzer und Datenbankpasswort,
- gegebenenfalls Mailserver-Zugangsdaten,
- technische Client Secrets, sofern ein vertraulicher OAuth-Client benötigt wird,
- weitere externe Zugangsdaten des Backends.
Das Frontend verwendet einen öffentlichen OpenID-Connect-Client und darf kein Client Secret erhalten.
Datenbank-Secret
Das geplante Secret bflies-mysql-sec enthält getrennte Zugangsdaten für:
- den administrativen Datenbankbenutzer,
- den eingeschränkten Business-Flies-Anwendungsbenutzer.
Backend und Flyway-Job referenzieren ausschließlich die für ihren Zweck erforderlichen Keys.
yaml
apiVersion: v1
kind: Secret
metadata:
name: bflies-mysql-sec
namespace: bflies-int
data:
root: cmVwbGFjZS10aGlzLXNlY3JldA==
user: cmVwbGFjZS10aGlzLXNlY3JldA==
type: OpaqueRegistry-Zugang
Falls der Namespace nicht bereits einen zentral verwalteten Registry-Zugang besitzt, wird ein kubernetes.io/dockerconfigjson-Secret als imagePullSecret benötigt. Dieses Secret soll von der Plattform verwaltet und nicht projektspezifisch dupliziert werden.
Sicherheitsregeln
- Secret-Werte erscheinen weder in Kustomize-Dateien noch in Pipeline-Logs.
- Pods erhalten nur die für ihre Komponente notwendigen Werte.
- Secret-Änderungen und Rotation werden betrieblich nachvollziehbar durchgeführt.
- Base64-Kodierung allein gilt nicht als Schutz oder Verschlüsselung.