Secretos de Bitbucket Pipelines desde Crunu con OIDC
Ejecuta pasos de Bitbucket Pipelines con variables de un entorno de Crunu y vincula el token de servicio a un repositorio, una rama y un despliegue con OIDC.
- Soporte
- Funciona con Crunu hoy: el soporte de Bitbucket Pipelines forma parte del producto.
- Funciones de Crunu
- CI/CD
- Comprobado
- Con Crunu 6.0.0 el 27 de octubre de 2026
Funciones de Crunu que funcionan con Bitbucket Pipelines
Cada función de abajo funciona igual en cada integración: el servidor guarda datos cifrados, y solo las personas, las máquinas y los tokens a los que concedes acceso pueden descifrarlos.
CI/CD
Da a cada pipeline un token de servicio limitado a sus entornos y vincúlalo a tu proveedor de CI con OIDC, para que un token filtrado no pueda iniciar sesión por sí solo.
Más información
Cómo funciona con Bitbucket Pipelines
En esta página
Qué hace Crunu en Bitbucket Pipelines
Un paso ejecuta tu comando mediante crunu run. El agente crunu inicia sesión con un token de servicio, comprueba las firmas, descifra las variables en memoria e inicia el comando con ellas. No se escribe nada en disco.
crunu run --env web-app/staging -- npm testEl token recibe solo los entornos que concedes. Con una vinculación de CI (OIDC), solo funciona junto con el token OIDC del paso, para el repositorio, la rama y el entorno de despliegue que fijes. crunu lee el token del paso de BITBUCKET_STEP_OIDC_TOKEN por su cuenta.
Configuración
- En Crunu, abre Service tokens y elige New service token. Concede los entornos que necesita el paso. El token se muestra una sola vez.
- En Bitbucket, añade variables de repositorio protegidas:
CRUNU_TOKENyCRUNU_SERVER, además deCRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256,CRUNU_VERSIONyCRUNU_BINARY_SHA256del bloque CI setup de la página del token. En la nube,CRUNU_SERVEReshttps://app.crunu.com. - Opcional: añade una vinculación de CI (OIDC) en la página del token. Elige el proveedor Bitbucket, tu workspace y el
repositoryUuiddel repositorio y, si hace falta,branchName: mainy eldeploymentEnvironmentUuidde tu despliegue de production.
Pipeline de ejemplo
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: *testEl paso instala una versión fijada de crunu, comprueba el SHA-256 del instalador antes de ejecutarlo y ejecuta el comando en la propia imagen del paso, con todas sus herramientas.
Por qué importa la audiencia
Fija la audiencia en la dirección de tu servidor de Crunu en oidc: audiences: del paso, como en el ejemplo. La audiencia por defecto del workspace de Bitbucket también funciona, pero todos los servicios del workspace reciben un token con ella, así que una audiencia dedicada es más segura. Un paso puede indicar hasta 10 audiencias. Los tokens de Bitbucket no llevan el claim jti, así que el servidor de Crunu trata un segundo uso del mismo token como reutilización y lo rechaza.
El pipe crunu
El producto también incluye un pipe de Bitbucket que agrupa estos pasos: instala crunu, comprueba las dos sumas de verificación y ejecuta tu comando con crunu run. Su imagen todavía no está publicada en ningún registro, así que por ahora instala crunu en el paso como se muestra arriba. Un paso que usa el pipe hace referencia a su imagen por dirección:
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'Fija la imagen a una etiqueta de versión inmutable o a un digest. El comando se ejecuta dentro del contenedor del pipe, basado por defecto en Node.js 24, y no en la imagen del paso. Si el token tiene una regla OIDC, añade al paso oidc: con la audiencia de tu servidor y OIDC: 'true' a las variables del pipe. Sin ese indicador, el pipe no pasa el token OIDC del paso ni a crunu ni a tu comando.
Mantén el token fuera de alcance
El comando que se ejecuta bajo crunu run solo recibe variables básicas como PATH y HOME, más las variables del entorno, y nunca las credenciales propias de crunu. Aun así, las variables de repositorio de Bitbucket son visibles para todas las líneas de script fuera del pipe y para todos los pasos, así que la protección real es un permiso acotado: da a un token de CI el entorno que compila y deja production fuera.
Revocación
Abre el token en Crunu y elige Revoke. Su siguiente inicio de sesión se rechaza, y un paso que ya está en marcha termina con lo que recibió. Si el token pudo filtrarse, rota también las claves de los entornos que se le dieron y reemite los valores que contienen en sus proveedores.
Relacionado
Dudas frecuentes
¿No está aquí? Escribe a support@crunu.com y te responderá una persona.
¿Está publicado el pipe de crunu?
Todavía no. Instala crunu en el paso con tres comandos, como muestra el pipeline de ejemplo.
¿Qué audiencia OIDC debe usar el paso?
La dirección de tu servidor de Crunu. La audiencia por defecto del workspace también funciona, pero todos los servicios del workspace reciben un token con ella.
¿Se puede usar dos veces el token OIDC de un paso?
No. Los tokens de Bitbucket no llevan el claim jti, así que el servidor de Crunu trata un segundo uso del mismo token como reutilización y lo rechaza.