Naar de inhoud
IngebouwdCI-pipeline

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
Voorbeeld. Kiteline is een fictief bedrijf.

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.

Shell
crunu run --env web-app/staging -- npm test

Het 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

  1. 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.
  2. Voeg in Bitbucket beveiligde repositoryvariabelen toe: CRUNU_TOKEN en CRUNU_SERVER, plus CRUNU_INSTALL_URL, CRUNU_INSTALL_SHA256, CRUNU_VERSION en CRUNU_BINARY_SHA256 uit het blok CI setup op de pagina van het token. In de cloud is CRUNU_SERVER gelijk aan https://app.crunu.com.
  3. Optioneel: voeg op de pagina van het token een CI-binding (OIDC) toe. Kies de provider Bitbucket, je workspace en de repositoryUuid van de repository, en zo nodig branchName: main en de deploymentEnvironmentUuid van je productiedeployment.

Voorbeeldpipeline

YAML
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: *test

De 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:

YAML
        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.

Probeer het met Bitbucket Pipelines

Maak je organisatie aan op app.crunu.com, voeg één omgeving toe en koppel die. Gratis tijdens de vroege toegang.