Secrets Bitbucket Pipelines depuis Crunu avec l’OIDC d’étape
Lancez les étapes Bitbucket Pipelines avec les variables d’un environnement Crunu et liez le jeton à un dépôt, une branche et un déploiement par OIDC.
- Prise en charge
- Fonctionne avec Crunu aujourd’hui : le produit prend en charge Bitbucket Pipelines nativement.
- Fonctionnalités Crunu
- CI/CD
- Vérifié
- Avec Crunu 6.0.0, le 27 octobre 2026
Les fonctionnalités Crunu qui fonctionnent avec Bitbucket Pipelines
Chaque fonctionnalité ci-dessous fonctionne de la même façon dans chaque intégration : le serveur garde des données chiffrées, et seuls les personnes, les machines et les jetons que vous autorisez peuvent les déchiffrer.
CI/CD
Donnez à chaque pipeline un jeton de service limité à ses environnements, et liez-le à votre fournisseur de CI par OIDC : un jeton qui fuit ne peut pas se connecter seul.
En savoir plus
Comment ça marche avec Bitbucket Pipelines
Sur cette page
Ce que fait Crunu dans Bitbucket Pipelines
Une étape lance votre commande via crunu run. L’agent crunu se connecte avec un jeton de service, vérifie les signatures, déchiffre les variables en mémoire et lance la commande avec elles. Rien n’est écrit sur le disque.
crunu run --env web-app/staging -- npm testLe jeton ne reçoit que les environnements que vous accordez. Avec une liaison CI (OIDC), il ne fonctionne qu’accompagné du jeton OIDC de l’étape, pour le dépôt, la branche et l’environnement de déploiement que vous avez définis. crunu lit lui-même le jeton de l’étape dans BITBUCKET_STEP_OIDC_TOKEN.
Configuration
- Dans Crunu, ouvrez Service tokens et choisissez New service token. Accordez les environnements dont l’étape a besoin. Le jeton n’est affiché qu’une seule fois.
- Dans Bitbucket, ajoutez des variables de dépôt sécurisées :
CRUNU_TOKENetCRUNU_SERVER, ainsi queCRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256,CRUNU_VERSIONetCRUNU_BINARY_SHA256tirées du bloc CI setup de la page du jeton. Dans le cloud,CRUNU_SERVERvauthttps://app.crunu.com. - Facultatif : ajoutez une liaison CI (OIDC) sur la page du jeton. Choisissez le fournisseur Bitbucket, votre espace de travail et le
repositoryUuiddu dépôt, et si besoinbranchName: mainet ledeploymentEnvironmentUuidde votre déploiement de production.
Exemple de 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: *testL’étape installe une version figée de crunu, vérifie le SHA-256 de l’installateur avant de le lancer, et exécute la commande dans l’image propre à l’étape, avec tous ses outils.
Pourquoi l’audience compte
Définissez comme audience l’adresse de votre serveur Crunu dans le oidc: audiences: de l’étape, comme dans l’exemple. L’audience par défaut de l’espace de travail Bitbucket fonctionne aussi, mais chaque service de l’espace de travail reçoit un jeton avec elle : une audience dédiée est donc plus sûre. Une étape peut lister jusqu’à 10 audiences. Les jetons Bitbucket ne portent pas de claim jti : le serveur Crunu traite donc une seconde utilisation du même jeton comme un rejeu et la refuse.
Le pipe crunu
Le produit comprend aussi un pipe Bitbucket qui regroupe ces étapes : il installe crunu, vérifie les deux sommes de contrôle et lance votre commande avec crunu run. Son image n’est encore publiée sur aucun registre : pour l’instant, installez donc crunu dans l’étape comme ci-dessus. Une étape qui utilise le pipe désigne son image par son adresse :
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'Figez l’image sur un tag de version immuable ou sur un digest. La commande s’exécute dans le conteneur du pipe, basé par défaut sur Node.js 24, et non dans l’image de l’étape. Si le jeton a une règle OIDC, ajoutez à l’étape oidc: avec l’audience de votre serveur, et OIDC: 'true' aux variables du pipe. Sans ce drapeau, le pipe ne transmet le jeton OIDC de l’étape ni à crunu ni à votre commande.
Gardez le jeton hors de portée
La commande lancée sous crunu run ne reçoit que des variables de base comme PATH et HOME, plus les variables de l’environnement, et jamais les propres identifiants de crunu. Les variables de dépôt Bitbucket restent toutefois visibles de chaque ligne de script hors du pipe et de chaque étape : la vraie protection est donc une attribution étroite. Donnez à un jeton CI l’environnement qu’il construit, et tenez production à l’écart.
Révocation
Ouvrez le jeton dans Crunu et choisissez Revoke. Sa prochaine connexion est refusée, et une étape déjà en cours se termine avec ce qu’elle a reçu. Si le jeton a pu fuiter, renouvelez aussi les clés des environnements qui lui étaient accordés et réémettez chez leurs fournisseurs les valeurs qu’ils contiennent.
Voir aussi
Questions et réponses
Votre question n’est pas traitée ici ? Écrivez à support@crunu.com : une personne vous répondra.
Le pipe crunu est-il publié ?
Pas encore. Installez crunu dans l’étape avec trois commandes, comme le montre le pipeline d’exemple.
Quelle audience OIDC l’étape doit-elle utiliser ?
L’adresse de votre serveur Crunu. L’audience par défaut de l’espace de travail fonctionne aussi, mais chaque service de l’espace de travail reçoit un jeton avec elle.
Le jeton OIDC d’une étape peut-il servir deux fois ?
Non. Les jetons Bitbucket ne portent pas de claim jti : le serveur Crunu traite donc une seconde utilisation du même jeton comme un rejeu et la refuse.