Secrets für Bitbucket Pipelines aus Crunu mit Step-OIDC
Schritte in Bitbucket Pipelines mit Variablen einer Crunu-Umgebung ausführen und das Service-Token per Step-OIDC an Repository, Branch und Deployment binden.
- Unterstützung
- Funktioniert heute mit Crunu: Die Unterstützung für Bitbucket Pipelines ist Teil des Produkts.
- Crunu-Funktionen
- CI/CD
- Geprüft
- Mit Crunu 6.0.0 am 27. Oktober 2026
Crunu-Funktionen, die mit Bitbucket Pipelines funktionieren
Jede Funktion unten arbeitet in jeder Integration gleich: Der Server bewahrt Chiffretext auf, und nur die Menschen, Maschinen und Tokens, denen Sie Zugriff gewähren, können entschlüsseln.
CI/CD
Geben Sie jeder Pipeline ein Service-Token, das auf ihre Umgebungen beschränkt ist, und binden Sie es per OIDC an Ihren CI-Anbieter, damit sich ein geleaktes Token nicht allein anmelden kann.
Mehr erfahren
So funktioniert es mit Bitbucket Pipelines
Auf dieser Seite
Was Crunu in Bitbucket Pipelines tut
Ein Schritt führt Ihren Befehl über crunu run aus. Der Agent crunu meldet sich mit einem Service-Token an, prüft Signaturen, entschlüsselt die Variablen im Arbeitsspeicher und startet den Befehl damit. Nichts wird auf die Festplatte geschrieben.
crunu run --env web-app/staging -- npm testDas Token bekommt nur die Umgebungen, die Sie freigeben. Mit einer CI-Bindung (OIDC) funktioniert es nur zusammen mit dem OIDC-Token des Schritts, für das Repository, den Branch und die Deployment-Umgebung, die Sie festlegen. crunu liest das Token des Schritts selbst aus BITBUCKET_STEP_OIDC_TOKEN.
Einrichtung
- Öffnen Sie in Crunu Service tokens und wählen Sie New service token. Gewähren Sie die Umgebungen, die der Schritt braucht. Das Token wird nur einmal angezeigt.
- Fügen Sie in Bitbucket gesicherte Repository-Variablen hinzu:
CRUNU_TOKENundCRUNU_SERVER, dazuCRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256,CRUNU_VERSIONundCRUNU_BINARY_SHA256aus dem Block CI setup auf der Seite des Tokens. In der Cloud istCRUNU_SERVERgleichhttps://app.crunu.com. - Optional: Fügen Sie auf der Seite des Tokens eine CI-Bindung (OIDC) hinzu. Wählen Sie den Anbieter Bitbucket, Ihren Workspace und die
repositoryUuiddes Repositorys, bei Bedarf auchbranchName: mainund diedeploymentEnvironmentUuidIhres Produktions-Deployments.
Beispiel-Pipeline
image: node:24
definitions:
steps:
- step: &test
name: Tests with staging variables
oidc: # only if the token has an OIDC rule
audiences:
- https://app.crunu.com # your Crunu server as its own audience
script:
- curl -sSf "$CRUNU_INSTALL_URL" -o /tmp/crunu-install.sh
- echo "$CRUNU_INSTALL_SHA256 /tmp/crunu-install.sh" | sha256sum -c -
- sh /tmp/crunu-install.sh --version "$CRUNU_VERSION" --sha256 "$CRUNU_BINARY_SHA256" --user-install
- crunu run --env web-app/staging -- npm test
pipelines:
default:
- step: *testDer Schritt installiert eine festgelegte Version von crunu, prüft die SHA-256-Prüfsumme des Installers, bevor er ihn ausführt, und führt den Befehl im eigenen Image des Schritts mit all seinen Werkzeugen aus.
Warum die Audience zählt
Setzen Sie die Audience in oidc: audiences: des Schritts auf die Adresse Ihres Crunu-Servers, wie im Beispiel. Die Standard-Audience des Workspace in Bitbucket funktioniert auch, aber dann erhält jeder Dienst im Workspace ein Token damit, eine eigene Audience ist also sicherer. Ein Schritt kann bis zu 10 Audiences aufführen. Tokens von Bitbucket tragen keinen jti-Claim, deshalb behandelt der Crunu-Server eine zweite Verwendung desselben Tokens als Wiederholung und lehnt sie ab.
Die Pipe crunu
Das Produkt enthält auch eine Bitbucket-Pipe, die diese Schritte bündelt: Sie installiert crunu, prüft beide Prüfsummen und führt Ihren Befehl mit crunu run aus. Ihr Image ist noch in keiner Registry veröffentlicht, installieren Sie crunu also vorerst wie oben gezeigt im Schritt. Ein Schritt, der die Pipe nutzt, verweist über die Adresse auf ihr Image:
script:
- pipe: docker://<registry>/<name>:<tag>
variables:
CRUNU_TOKEN: $CRUNU_TOKEN
CRUNU_SERVER: $CRUNU_SERVER
CRUNU_ENV: 'web-app/staging'
CRUNU_VERSION: $CRUNU_VERSION
CRUNU_INSTALL_URL: $CRUNU_INSTALL_URL
CRUNU_INSTALL_SHA256: $CRUNU_INSTALL_SHA256
CRUNU_BINARY_SHA256: $CRUNU_BINARY_SHA256
COMMAND: 'npm ci && npm test'Pinnen Sie das Image auf ein unveränderliches Versions-Tag oder einen Digest. Der Befehl läuft im Container der Pipe, der standardmäßig auf Node.js 24 basiert, nicht im Image des Schritts. Hat das Token eine OIDC-Regel, fügen Sie dem Schritt oidc: mit der Audience Ihres Servers hinzu und den Variablen der Pipe OIDC: 'true'. Ohne dieses Flag gibt die Pipe das OIDC-Token des Schritts weder an crunu noch an Ihren Befehl weiter.
Das Token unerreichbar halten
Der Befehl unter crunu run erhält nur grundlegende Variablen wie PATH und HOME sowie die Variablen der Umgebung, nie die eigenen Zugangsdaten von crunu. Repository-Variablen von Bitbucket sind trotzdem für jede Zeile im script außerhalb der Pipe und für jeden Schritt sichtbar, also schützt wirklich nur eine enge Freigabe: Geben Sie einem CI-Token die Umgebung, die es baut, und halten Sie production heraus.
Widerrufen
Öffnen Sie das Token in Crunu und wählen Sie Revoke. Seine nächste Anmeldung wird abgelehnt, und ein bereits laufender Schritt läuft mit dem zu Ende, was er erhalten hat. Falls das Token geleakt sein könnte, rotieren Sie auch die Schlüssel der Umgebungen, die es erhalten hat, und stellen Sie die Werte darin bei ihren Anbietern neu aus.
Weiterführend
Fragen aus der Praxis
Nicht dabei? Schreiben Sie an support@crunu.com, und ein Mensch antwortet.
Ist die Pipe crunu veröffentlicht?
Noch nicht. Installieren Sie crunu im Schritt mit drei Befehlen, wie die Beispiel-Pipeline zeigt.
Welche OIDC-Audience soll der Schritt verwenden?
Die Adresse Ihres Crunu-Servers. Die Standard-Audience des Workspace funktioniert auch, aber dann erhält jeder Dienst im Workspace ein Token damit.
Lässt sich das OIDC-Token eines Schritts zweimal verwenden?
Nein. Tokens von Bitbucket tragen keinen jti-Claim, deshalb behandelt der Crunu-Server eine zweite Verwendung desselben Tokens als Wiederholung und lehnt sie ab.