Über den Einsatz von Cookies auf dieser Website Unsere Websites benötigen einige Cookies, um ordnungsgemäß zu funktionieren (erforderlich). Darüber hinaus können mit Ihrer Zustimmung weitere Cookies verwendet werden, um die Nutzung der Website zu analysieren, die Benutzerfreundlichkeit zu verbessern und Werbung zu schalten. Weitere Informationen finden Sie in Ihren. Durch den Besuch unserer Website erklären Sie sich mit der Verarbeitung von Informationen einverstanden, wie in der IBMDatenschutzbestimmung beschrieben. Um eine reibungslose Navigation zu ermöglichen, werden Ihre Cookie-Präferenzen über die hier aufgeführten IBM Web-Domains hinweg gemeinsam genutzt.
Jenkins-Plug-in für Vault integrieren
Verwenden Sie bereits das Vault-Plug-in Jenkins ? Sie können dieses Tool in IBM Cloud® Secrets Manager integrieren und so die Änderungen in Ihrer Konfiguration minimieren.
Vorbereitende Schritte
- Vergewissern Sie sich, dass Sie über die erforderliche Zugriffsberechtigung verfügen. Sie benötigen die Servicerolle SecretsReader, um geheime Schlüssel anzuzeigen.
- Erstellen Sie einen IAM-API-Schlüssel mithilfe einer Service-ID, die über
SecretsReader
-Berechtigungen verfügt.
Jenkins-Vault-Plug-in-Integration einrichten
Durch die Ausführung dieser Schritte können Sie Secrets Manager in das Plug-in integrieren, das Sie in Ihrem Jenkins-Job oder -Projekt verwenden. Weitere Informationen zum Jenkins-Plug-in finden Sie unter Hashicorp Vault.
- Wählen Sie im Jenkins-Dashboard Ihren Job oder Projekt aus, in dem Sie das Plug-in verwenden.
- Klicken Sie im Konfigurationsabschnitt auf Umgebung erstellen.
- Wählen Sie Vault-Plug-in aus.
- Wählen Sie Vault Token Credentials im Feld Credential Authentication Kind aus.
- Erstellen Sie einen Platzhalterwert für das Feld Token (z. B.
temp
). - Legen Sie eine ID fest (z. B.
sm-vault-token
). - Klicken Sie auf Hinzufügen.
- Verweisen Sie im Feld Vault-URL auf die URL Ihrer Secrets Manager-Instanz.
- Klicken Sie auf Erweitert, um den Präfixpfad anzuzeigen.
- Setzen Sie Prefix Path auf
ibmcloud/kv
. - Stellen Sie sicher, dass die K/V-Engineversion
2
ist.
Vault-Token des Plug-ins aktualisieren
Sie können einen vault-refresh
-Job so konfigurieren, dass er regelmäßig ausgeführt wird, um das Vault-Token zu aktualisieren, bevor es abläuft.
-
Erstellen Sie einen regelmäßig wiederholten Job, um das Token zu aktualisieren. Das Token verwendet den CLI-Befehl Jenkins
update-credentials-by-xml
, um den Wert des Tokenberechtigungsnachweises zu aktualisieren, den Sie in Schritt 2 des Abschnitts Einrichten als Platzhalterwert definiert haben. -
Erstellen Sie beispielsweise einen Jenkins-Job mit dem Namen
vault-refresh
. -
Fügen Sie im Abschnitt Buildumgebung den Namen des geheimen Schlüssels als Variable Text für geheimen Schlüssel hinzu. Es wird empfohlen, dass Sie einen API-Schlüssel aus einer Service-ID generieren. Weisen Sie der Service-ID den minimalen Zugriff zu, der zum Lesen der geheimen Schlüssel erforderlich ist, die Sie mithilfe des Jenkins-Plug-ins verarbeiten.
-
Fügen Sie im Abschnitt Buildschritte Executive Shell hinzu und geben Sie das folgende Script ein.
wget YOUR-TAAS-JENKINS-INSTANCE-NAME.swg-devops.com/jnlpJars/jenkins-cli.jar export IAM_TOKEN=$(curl -X POST 'https://iam.cloud.ibm.com/identity/token' -H 'Content-Type: application/x-www-form-urlencoded' -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${IAM_API_KEY}" | jq --raw-output '.access_token') export NEW_VAULT_TOKEN=$(curl -X PUT -H "X-Vault-Request: true" -d "{\"token\":\"${IAM_TOKEN}\"}" ${VAULT_ADDR}/v1/auth/ibmcloud/login | jq --raw-output '.auth.client_token') printf "<com.datapipe.jenkins.vault.credentials.VaultTokenCredential plugin=\"hashicorp-vault-plugin@3.8.0\"><scope>GLOBAL</scope><id>sm-vault-token</id><description>Vault token for Secrets Manager</description><token>$NEW_VAULT_TOKEN</token></com.datapipe.jenkins.vault.credentials.VaultTokenCredential>" > creds.xml java -jar jenkins-cli.jar -s https://YOUR-TAAS-JENKINS-INSTANCE-NAME.swg-devops.com/ -auth <Jenkins user>:<user token> update-credentials-by-xml system::system::jenkins '(global)' sm-vault-token < creds.xml
Jenkins user
steht für den Benutzer oder die FID, die Sie zum Ausführen Ihrer Jenkins-Automatisierung verwenden.user token
ist ein Token, das zum Benutzer gehört. Zum Abrufen eines Jenkins-API-Schlüssels oder -Tokens klicken Sie auf den Benutzernamen und wählen Konfigurieren > API-Token > Neues Token* aus.Geben Sie die Werte an, die Ihrer Umgebung zugeordnet sind. Die ID des Vault-Tokens in der XML entspricht der ID, die Sie in Schritt 2 zugeordnet haben. Nach der Ausführung des Jobs wird das Vault-Token mit dem tatsächlichen Wert aktualisiert.
Weitere Informationen zur Secrets Manager-Authentifizierung und zu Vault-Tokens finden Sie in der Vault-API-Referenz.
Nächste Schritte
Nachdem Sie nun Ihren Jenkins-Job mithilfe des Vault-Plug-ins integriert haben, können Sie geheime Schlüssel aus Secrets Manager abrufen und die Umgebungsvariablen wie gewohnt ohne weitere Codeänderungen hinzufügen.