Sekrety Bitbucket Pipelines z Crunu i OIDC kroku
Uruchamiaj kroki Bitbucket Pipelines ze zmiennymi z jednego środowiska Crunu i powiąż token usługowy z repozytorium, gałęzią i wdrożeniem przez OIDC kroku.
- Obsługa
- Działa z Crunu już dziś: obsługa Bitbucket Pipelines jest częścią produktu.
- Funkcje Crunu
- CI/CD
- Sprawdzono
- Z wersją Crunu 6.0.0, 27 października 2026
Funkcje Crunu, które działają z Bitbucket Pipelines
Każda z poniższych funkcji działa tak samo w każdej integracji: serwer przechowuje zaszyfrowane dane, a odszyfrować je mogą tylko osoby, maszyny i tokeny, którym dasz dostęp.
CI/CD
Daj każdemu potokowi token usługowy ograniczony do jego środowisk i powiąż go z dostawcą CI przez OIDC, żeby wyciekły token nie mógł sam się zalogować.
Dowiedz się więcej
Jak to działa z Bitbucket Pipelines
Na tej stronie
Co Crunu robi w Bitbucket Pipelines
Krok uruchamia twoje polecenie przez crunu run. Agent crunu loguje się tokenem usługowym, sprawdza podpisy, odszyfrowuje zmienne w pamięci i uruchamia z nimi polecenie. Nic nie jest zapisywane na dysku.
crunu run --env web-app/staging -- npm testToken dostaje tylko środowiska, do których dasz mu dostęp. Z powiązaniem CI (OIDC) działa tylko razem z tokenem OIDC kroku, dla ustawionych przez ciebie repozytorium, gałęzi i środowiska wdrożenia. crunu sam odczytuje token kroku ze zmiennej BITBUCKET_STEP_OIDC_TOKEN.
Konfiguracja
- W Crunu otwórz Service tokens i wybierz New service token. Przyznaj środowiska, których potrzebuje krok. Token jest pokazywany tylko raz.
- W Bitbuckecie dodaj zabezpieczone zmienne repozytorium:
CRUNU_TOKENiCRUNU_SERVERorazCRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256,CRUNU_VERSIONiCRUNU_BINARY_SHA256z bloku CI setup na stronie tokenu. W chmurzeCRUNU_SERVERtohttps://app.crunu.com. - Opcjonalnie dodaj powiązanie CI (OIDC) na stronie tokenu. Wybierz dostawcę Bitbucket, swoją przestrzeń roboczą i
repositoryUuidrepozytorium, a w razie potrzebybranchName: mainideploymentEnvironmentUuidwdrożenia production.
Przykładowy potok
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: *testKrok instaluje przypiętą wersję crunu, sprawdza SHA-256 instalatora przed jego uruchomieniem i uruchamia polecenie we własnym obrazie kroku, ze wszystkimi jego narzędziami.
Dlaczego audience ma znaczenie
Ustaw audience na adres swojego serwera Crunu w oidc: audiences: kroku, jak w przykładzie. Domyślne audience przestrzeni roboczej Bitbucketa też działa, ale token z nim dostaje każda usługa w przestrzeni roboczej, więc osobne audience jest bezpieczniejsze. Krok może wymienić do 10 wartości audience. Tokeny Bitbucketa nie mają claimu jti, więc serwer Crunu traktuje drugie użycie tego samego tokenu jako powtórzenie i je odrzuca.
Pipe crunu
Produkt zawiera też pipe Bitbucketa, który obejmuje te kroki: instaluje crunu, sprawdza obie sumy kontrolne i uruchamia twoje polecenie przez crunu run. Jego obraz nie jest jeszcze opublikowany w żadnym rejestrze, więc na razie instaluj crunu w kroku, jak pokazano wyżej. Krok, który używa pipe’a, wskazuje jego obraz po adresie:
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'Przypnij obraz do niezmiennego tagu wersji albo do skrótu (digest). Polecenie działa wewnątrz kontenera pipe’a, domyślnie opartego na Node.js 24, a nie w obrazie kroku. Gdy token ma regułę OIDC, dodaj do kroku oidc: z audience twojego serwera, a do zmiennych pipe’a OIDC: 'true'. Bez tej flagi pipe nie przekazuje tokenu OIDC kroku ani do crunu, ani do twojego polecenia.
Token poza zasięgiem
Polecenie uruchomione przez crunu run dostaje tylko podstawowe zmienne, takie jak PATH i HOME, oraz zmienne środowiska, a nigdy własnych danych logowania crunu. Zmienne repozytorium Bitbucketa są jednak widoczne dla każdej linii script poza pipe’em i dla każdego kroku, więc naprawdę chroni tylko wąski dostęp: daj tokenowi CI środowisko, które buduje, i trzymaj production poza nim.
Unieważnianie tokenu
Otwórz token w Crunu i wybierz Revoke. Jego następne logowanie zostanie odrzucone, a krok, który już trwa, kończy się z tym, co otrzymał. Jeśli token mógł wyciec, wymień też klucze środowisk, do których miał dostęp, i wygeneruj ponownie zapisane w nich wartości u ich dostawców.
Zobacz także
Odpowiedzi na pytania
Nie ma tu odpowiedzi? Napisz na support@crunu.com, a odpowie ci człowiek.
Czy pipe crunu jest opublikowany?
Jeszcze nie. Zainstaluj crunu w kroku trzema poleceniami, jak pokazuje przykładowy potok.
Jakiego audience OIDC powinien używać krok?
Adresu twojego serwera Crunu. Domyślne audience przestrzeni roboczej też działa, ale token z nim dostaje każda usługa w przestrzeni roboczej.
Czy token OIDC kroku można użyć dwa razy?
Nie. Tokeny Bitbucketa nie mają claimu jti, więc serwer Crunu traktuje drugie użycie tego samego tokenu jako powtórzenie i je odrzuca.