Secrets voor Bitbucket Pipelines uit Crunu met step OIDC
Voer stappen in Bitbucket Pipelines uit met variabelen uit één Crunu-omgeving, en bind het servicetoken met step OIDC aan een repository, branch en deployment.
- Ondersteuning
- Werkt vandaag met Crunu: ondersteuning voor Bitbucket Pipelines hoort bij het product.
- Functies van Crunu
- CI/CD
- Gecontroleerd
- Tegen Crunu 6.0.0 op 27 oktober 2026
Functies van Crunu die met Bitbucket Pipelines werken
Elke functie hieronder werkt in elke integratie op dezelfde manier: de server bewaart versleutelde data, en alleen de mensen, machines en tokens die je toegang geeft, kunnen ontsleutelen.
CI/CD
Geef elke pipeline een servicetoken dat beperkt is tot de eigen omgevingen, en bind het met OIDC aan je CI-provider, zodat een gelekt token niet op zichzelf kan inloggen.
Lees meer
Zo werkt het met Bitbucket Pipelines
Op deze pagina
Wat Crunu doet in Bitbucket Pipelines
Een stap voert je opdracht uit via crunu run. De agent crunu logt in met een servicetoken, controleert handtekeningen, ontsleutelt de variabelen in het geheugen en start de opdracht ermee. Er wordt niets naar schijf geschreven.
crunu run --env web-app/staging -- npm testHet token krijgt alleen de omgevingen die je toekent. Met een CI-binding (OIDC) werkt het alleen samen met het OIDC-token van de stap, voor de repository, branch en deployment-omgeving die je instelt. crunu leest het token van de stap zelf uit BITBUCKET_STEP_OIDC_TOKEN.
Instellen
- Open in Crunu Service tokens en kies New service token. Ken de omgevingen toe die de stap nodig heeft. Het token wordt maar één keer getoond.
- Voeg in Bitbucket beveiligde repositoryvariabelen toe:
CRUNU_TOKENenCRUNU_SERVER, plusCRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256,CRUNU_VERSIONenCRUNU_BINARY_SHA256uit het blok CI setup op de pagina van het token. In de cloud isCRUNU_SERVERgelijk aanhttps://app.crunu.com. - Optioneel: voeg op de pagina van het token een CI-binding (OIDC) toe. Kies de provider Bitbucket, je workspace en de
repositoryUuidvan de repository, en zo nodigbranchName: mainen dedeploymentEnvironmentUuidvan je productiedeployment.
Voorbeeldpipeline
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: *testDe stap installeert een vastgezette versie van crunu, controleert de SHA-256 van het installatiescript voordat het draait, en voert de opdracht uit in de eigen image van de stap, met al zijn tools.
Waarom de audience ertoe doet
Zet de audience op het adres van je Crunu-server in oidc: audiences: van de stap, zoals in het voorbeeld. De standaardaudience van de workspace in Bitbucket werkt ook, maar elke dienst in de workspace krijgt een token met die audience, dus een eigen audience is veiliger. Een stap kan tot 10 audiences opgeven. Tokens van Bitbucket hebben geen jti-claim, dus de Crunu-server ziet een tweede gebruik van hetzelfde token als herhaling en weigert het.
De pipe crunu
Het product bevat ook een pipe voor Bitbucket die deze stappen omvat: hij installeert crunu, controleert beide checksums en voert je opdracht uit met crunu run. De image ervan staat nog niet in een registry, dus installeer crunu voorlopig in de stap zoals hierboven. Een stap die de pipe gebruikt, verwijst naar de image via een adres:
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'Zet de image vast op een onveranderlijke versietag of een digest. De opdracht draait in de container van de pipe, die standaard op Node.js 24 is gebaseerd, niet in de image van de stap. Heeft het token een OIDC-regel, voeg dan oidc: met de audience van je server toe aan de stap en OIDC: 'true' aan de variabelen van de pipe. Zonder die vlag geeft de pipe het OIDC-token van de stap niet door aan crunu en ook niet aan je opdracht.
Houd het token buiten bereik
De opdracht onder crunu run krijgt alleen basisvariabelen zoals PATH en HOME, plus de variabelen van de omgeving, en nooit de eigen toegangsgegevens van crunu. Repositoryvariabelen van Bitbucket zijn nog wel zichtbaar voor elke regel van script buiten de pipe en voor elke stap, dus de echte bescherming is een smalle toekenning: geef een CI-token de omgeving die het bouwt, en houd production erbuiten.
Intrekken
Open het token in Crunu en kies Revoke. Het volgende inloggen ervan wordt geweigerd, en een stap die al draait, maakt af met wat hij heeft ontvangen. Kan het token zijn gelekt, roteer dan ook de sleutels van de omgevingen die het kreeg, en geef de waarden daarin opnieuw uit bij hun providers.
Verwant
Veelgestelde vragen
Staat je vraag er niet bij? Mail naar support@crunu.com, dan antwoordt een mens.
Is de pipe crunu gepubliceerd?
Nog niet. Installeer crunu in de stap met drie opdrachten, zoals de voorbeeldpipeline laat zien.
Welke OIDC-audience moet de stap gebruiken?
Het adres van je Crunu-server. De standaardaudience van de workspace werkt ook, maar elke dienst in de workspace krijgt een token met die audience.
Kan het OIDC-token van een stap twee keer worden gebruikt?
Nee. Tokens van Bitbucket hebben geen jti-claim, dus de Crunu-server ziet een tweede gebruik van hetzelfde token als herhaling en weigert het.