Potoki dostają tylko te sekrety, które przyznasz
Token usługowy powstaje w twojej przeglądarce i jest pokazywany raz; serwer przechowuje tylko jego klucze publiczne. Przyznaj mu środowiska potrzebne potokowi i dodaj powiązanie OIDC, aby działał tylko we właściwym repozytorium i gałęzi.
- Tokeny odczytują tylko to, co przyznasz
- Powiązanie OIDC dla GitHub, GitLab i Bitbucket
- Production może w ogóle nie trafiać do CI
Token, który nie otworzy więcej, niż mu dasz
Token crunu_svc_ powstaje w całości w przeglądarce administratora i jest pokazywany raz. Odczytuje tylko środowiska, do których przyznasz dostęp: token dla development nigdy nie dostaje klucza do production.
- Dzierżawa, użycia i sieciNadaj tokenowi dzierżawę, limit użyć od 1 do 1 000 000 i sieci, z których może się łączyć.
- Powiązany z twoim repozytoriumZ powiązaniem OIDC token działa tylko razem z tokenem twojego dostawcy CI dla wybranego repozytorium, gałęzi i środowiska wdrożenia. Ponownie użyty token dostawcy zostaje odrzucony.
- Każde użycie jest zapisywaneLogowania tokenów i odmowy trafiają do dziennika audytu, a ponowne użycie tokenu CI wywołuje alert.
Trzy wiersze w potoku
Zapisz token w zmiennych sekretnych swojego CI jako CRUNU_TOKEN, zainstaluj przypiętą wersję crunu i uruchom krok przez crunu run. Zmienne są odszyfrowywane w pamięci i nic nie trafia na dysk.
- Przypięta, sprawdzona instalacjaAplikacja pokazuje polecenie instalacji z dokładnymi sumami kontrolnymi z podpisanego manifestu wydania.
- Gotowe nakładkiGitHub Action, szablon GitLab i pipe Bitbucket instalują przypiętą wersję i sprawdzają jej SHA-256.
- Kody wyjścia są przekazywane
crunu runzwraca kod wyjścia uruchomionego programu, więc nieudany test nadal oblewa krok.
Co sprawdza każdy system CI
Agent sam znajduje token dostawcy CI w GitHub Actions, GitLab CI i Bitbucket Pipelines. Każde inne CI działa z tokenem zapisanym w jego sekretach.
| System CI | Co sprawdza powiązanie OIDC | Nakładka |
|---|---|---|
| GitHub Actions | Repozytorium, ref, środowisko wdrożenia | Action setup-crunu skopiowana do twojego repozytorium |
| GitLab CI | Ścieżka projektu, ref, typ refa, środowisko wdrożenia | Szablony .crunu i .crunu-oidc |
| Bitbucket Pipelines | Repozytorium, gałąź, środowisko wdrożenia | Pipe crunu run, obraz budujesz samodzielnie |
| Dowolny dostawca OIDC | Dowolny wystawca, klucze przez OIDC Discovery | Token i crunu run |
| Dowolne CI bez OIDC | Tylko token | Token i crunu run |
Trzymaj production z dala od potoku
Zalecana konfiguracja nigdy nie przepuszcza sekretów production przez CI. Agent działa na maszynie production, a potok tylko restartuje usługę.
- Maszyna pobiera swoje samaSerwer production jest zarejestrowany jako maszyna i dostaje swoje środowisko bezpośrednio.
- CI tylko restartujeKrok wdrożenia restartuje usługę;
crunu run --restart on-changerestartuje ją też, gdy zmienią się wartości. - Gdy CI musi sięgnąć do productionUżyj osobnego tokenu production z powiązaniem OIDC, zatwierdzonego przez właściciela, z każdym dostarczeniem zapisanym w dzienniku audytu.
Co warto wiedzieć przed podłączeniem
Tokeny trzymają production poza zasięgiem. Niektóre elementy CI to wciąż przepisy, a nie gotowe przyciski.
- Nakładek nie ma w katalogach integracjiSkopiuj GitHub Action do swojego repozytorium, a obraz pipe Bitbucket zbuduj i opublikuj samodzielnie.
- Brak wbudowanej synchronizacji z platformamiŻadna integracja nie wysyła wartości do Vercel, Cloudflare, AWS Secrets Manager ani GitHub Secrets. Udokumentowany sposób to przepis z crunu run.
- Krok odczyta to, co dostanieWszystko, co działa w zadaniu, widzi zmienne, które otrzymuje. Przyznawaj jak najmniej środowisk.
- Powiąż tokeny productionToken bez powiązania OIDC działa z każdego dozwolonego adresu, dopóki go nie unieważnisz albo nie skończy się jego dzierżawa lub limit użyć.
Odpowiedzi na częste pytania
Masz inne pytanie? Napisz na support@crunu.com
Czy token, który wyciekł, odczyta production?
Nie, jeśli nie przyznano mu production. Token dla development nigdy nie dostaje klucza do production. Z powiązaniem OIDC token, który wyciekł, w ogóle nie działa bez tokenu twojego dostawcy CI dla właściwego repozytorium i gałęzi.
Czy potrzebuję OIDC?
Nie. Każde CI może użyć tokenu usługowego zapisanego w swoich sekretach. OIDC dodaje drugą kontrolę, która wiąże token z twoim repozytorium i gałęzią.
Gdzie jest przechowywany token?
W zmiennych sekretnych twojego CI. Serwer przechowuje tylko klucze publiczne tokenu, dlatego token jest pokazywany raz i nie da się go odzyskać.
Czy token może działać tylko kilka razy?
Tak. Ustaw limit użyć od 1 do 1 000 000, a do tego dzierżawę i dozwolone sieci.
Czy Crunu może wysyłać zmienne do Vercel lub Cloudflare?
Nie przez wbudowaną synchronizację. Możesz to zrobić w kroku potoku przez crunu run i własne polecenie platformy, używając tokenu powiązanego przez OIDC.
Wyprowadź sekrety production z potoku
Utwórz token dla jednego środowiska staging i uruchom testy przez crunu run.