Przejdź do treści
WbudowanePotok CI

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
Przykład. Kiteline to fikcyjna firma.

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.

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

Token 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

  1. W Crunu otwórz Service tokens i wybierz New service token. Przyznaj środowiska, których potrzebuje krok. Token jest pokazywany tylko raz.
  2. W Bitbuckecie dodaj zabezpieczone zmienne repozytorium: CRUNU_TOKEN i CRUNU_SERVER oraz CRUNU_INSTALL_URL, CRUNU_INSTALL_SHA256, CRUNU_VERSION i CRUNU_BINARY_SHA256 z bloku CI setup na stronie tokenu. W chmurze CRUNU_SERVER to https://app.crunu.com.
  3. Opcjonalnie dodaj powiązanie CI (OIDC) na stronie tokenu. Wybierz dostawcę Bitbucket, swoją przestrzeń roboczą i repositoryUuid repozytorium, a w razie potrzeby branchName: main i deploymentEnvironmentUuid wdrożenia production.

Przykładowy potok

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

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

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'

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.

Wypróbuj z Bitbucket Pipelines

Utwórz organizację na app.crunu.com, dodaj jedno środowisko i je podłącz. Bezpłatnie we wczesnym dostępie.