Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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:45] apeterde: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 ''.env''-Dateien gespeichert. Bei Build-Pipelines müssen die Secrets auf dem Build-Server (oder einem 3rd-Party-Service) hinterlegt werden. Secrets direkt in die Jenkinsfile-Datei zu schreiben ist keine gute Idee, da sie für alle mit Lesezugriff auf das Code-Repository lesbar wären. 
  
-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 "secrets" hinterlegt werden.+Die verschiedenen Typen von "secrets", die JEnkins unterstützt, sind in folgender Tabelle aufgelistet.
  
-''TODO: Tabelle Arten von Secrets''+^ Typ ^ Zweck ^ Beispiele ^ Verwendung in Pipeline ^ 
 +| Secret text | Einzelner String-Wert | API Keys, Tokens | <code groovy>withCredentials([string(...)])</code>
 +| Username/Password | Login-Paare | DB, Docker Registry | <code groovy>withCredentials([usernamePassword(...)])</code>
 +| SSH Key | SSH Zugriff | Server Deploy, Git SSH | <code groovy>sshUserPrivateKey</code>
 +| Secret file | Datei als Secret | kubeconfig, JSON Keys, Zertifikate | <code groovy>file(credentialsId, ...)</code>
 +| Certificate | X.509 Zertifikate | mTLS, interne APIs | Zertifikatsbasierte Auth (zum Beispiel für Webhooks) |
  
-^ Leak ❌ ^ Secret ✔️ ^+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 ✔️ ^
 | <WRAP> | <WRAP>
 <code groovy> <code groovy>
     environment {     environment {
 +        DB_USER            = "appuser"
         DB_PASSWORD        = "apppassword"         DB_PASSWORD        = "apppassword"
-        DB_NAME            = "appdb" 
     }     }
     ...     ...
Zeile 61: Zeile 69:
 </WRAP> | </WRAP> |
  
 +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? 
- 
-''TODO'' 
  • de/modul/ffit/3-jahr/cicd/learningunits/lu12/a.1778773547.txt.gz
  • Zuletzt geändert: 2026/05/14 17:45
  • von apeter