Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:ffit:3-jahr:cicd:learningunits:lu12:a [2026/05/14 17:47] – apeter | de:modul:ffit:3-jahr:cicd:learningunits:lu12:a [2026/05/18 23:27] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== LU12a - Jenkins Secrets ====== | ====== LU12a - Jenkins Secrets ====== | ||
| + | Lokal werden Secrets oft in privaten '' | ||
| - | Anstatt Secrets direkt in die Jenkinsfile-Datei zu schreiben, wo es für alle mit Lesezugriff auf das Code-Repository lesbar wäre, können auf Jenkins | + | Die verschiedenen Typen von " |
| - | '' | + | ^ Typ ^ Zweck ^ Beispiele ^ Verwendung in Pipeline ^ |
| + | | Secret text | Einzelner String-Wert | API Keys, Tokens | <code groovy> | ||
| + | | Username/ | ||
| + | | SSH Key | SSH Zugriff | Server Deploy, Git SSH | <code groovy> | ||
| + | | Secret file | Datei als Secret | kubeconfig, JSON Keys, Zertifikate | <code groovy> | ||
| + | | Certificate | X.509 Zertifikate | mTLS, interne APIs | Zertifikatsbasierte Auth (zum Beispiel für Webhooks) | | ||
| + | |||
| + | Nachfolgend ist die Verwendung in einem Jenkinsfile zu sehen. Die separate Helper-Function sorgt dafür, dass bei mehreren Stages nicht die Secret-ID mehrfach angegeben werden muss. | ||
| ^ Jenkinsfile mit Passwort-Leak ❌ ^ Jenkinsfile mit Secret-Helper-Function ✔️ ^ | ^ Jenkinsfile mit Passwort-Leak ❌ ^ Jenkinsfile mit Secret-Helper-Function ✔️ ^ | ||
| Zeile 9: | Zeile 17: | ||
| <code groovy> | <code groovy> | ||
| environment { | environment { | ||
| + | DB_USER | ||
| DB_PASSWORD | DB_PASSWORD | ||
| - | DB_NAME | ||
| } | } | ||
| ... | ... | ||
| Zeile 61: | Zeile 69: | ||
| </ | </ | ||
| + | Ein wichtiger Grundsatz bezüglich der Sicherheit von Jenkins-Secrets lautet: "Wenn ein Benutzer eine Pipeline editieren kann, kann er in der Regel auch Secrets exfiltrieren." | ||
| - | * Aktueller Stand | ||
| - | * .env-Files | ||
| - | * Secrets in Github | ||
| - | * Secrets in Jenkins | ||
| - | * Sonar-Token | ||
| - | * Webhook? | ||
| - | |||
| - | '' | ||