Artykuły
Samouczki
Interaktywne przewodniki
Integracja Snyk z Atlassian Open DevOps
Warren Marusiak
Starszy propagator techniczny
Aby zademonstrować sposób opracowywania i wdrażania aplikacji oraz zarządzania nimi przy użyciu Jira Software oraz różnych połączonych narzędzi, nasz zespół utworzył ImageLabeller, prostą aplikację demonstracyjną opartą na usłudze AWS, która wykorzystuje uczenie maszynowe do oznaczania etykietami obrazów.
Na tej stronie opisano, jak zintegrować Snyk z Bitbucket. Przed rozpoczęciem najlepiej zapoznać się ze stronami na temat wprowadzenia do aplikacji ImageLabeller, aby uzyskać kontekst.
Łączenie Bitbucket i Snyk
Z aplikacji Snyk w Bitbucket można korzystać na kilka sposobów. Pierwszym z nich jest włączenie natywnej integracji Snyk z Bitbucket za pośrednictwem karty Security (Bezpieczeństwo) na ekranie repozytorium. Drugim jest dodanie kroku Snyk do pliku bitbucket-pipelines.yml. Nic nie stoi na przeszkodzie, aby skorzystać z obydwu sposobów. Integracja Synk w Bitbucket zapewnia szybki dostęp do danych o lukach w zabezpieczeniach każdemu użytkownikowi przeglądającemu repozytorium w Bitbucket. Następnie możesz przejść do witryny Snyk, aby wyszukać dodatkowe informacje na temat każdej wykrytej luki. Krok Snyk w pliku bitbucket-pipelines.yml umożliwia automatyczne skanowanie każdego commita w pipelinie.
Dodawanie integracji Snyk do Bitbucket
Aby dodać aplikację Snyk do repozytorium Bitbucket, kliknij kartę Security (Bezpieczeństwo), wyszukaj integrację Snyk, a następnie kliknij przycisk Try now (Wypróbuj teraz).
Przyznaj dostęp, a następnie kliknij przycisk Connect Bitbucket with Snyk (Połącz Bitbucket ze Snyk).
Po skonfigurowaniu integracji zamknij kartę.
Kliknij nową opcję Snyk, która pojawi się w lewym panelu nawigacji. Następnie kliknij plik go.mod, aby wyświetlić bardziej szczegółowe informacje. Repozytorium Golang używa modułów go do zarządzania zależnościami w tym przykładzie. W przypadku innych rodzajów repozytoriów pliki zależności będą się różnić.
Aby się dowiedzieć, jak usunąć poszczególne luki, kliknij opcję Visit Snyk (Odwiedź Snyk) i przejdź do witryny internetowej Snyk.
Ten widok w aplikacji Snyk jest podobny do ekranu szczegółów prezentowanego w Bitbucket. Ten ekran pokazuje listę luk w zabezpieczeniach wraz z dodatkowymi informacjami na temat każdej luki.
Poniżej przedstawiono przykładowy raport o luce w zabezpieczeniach wyświetlany w aplikacji Snyk. Hierarchia pochodzenia luki jest widoczna w sekcji Detailed paths (Ścieżki szczegółowe). W poniższym przykładzie widać, że SubmitImage dziedziczy tę lukę z zestawu SDK AWS Golang. Snyk podsumowuje stan wszystkich problemów po lewej stronie. W tym przypadku żadnego z problemów nie da się naprawić. Zwróć uwagę, że w obszarze Fixability (Możliwość naprawy) znajduje się pięć problemów z oznaczeniem No fix available (Brak dostępnej poprawki). Oznacza to, że nie ma obecnie żadnych dostępnych rozwiązań pozwalających wyeliminować te problemy. Programiści mogą monitorować integrację i zastosować poprawki, gdy tylko będą dostępne.
Dodawanie kroku Snyk do pliku bitbucket-pipelines.yml
Dostęp do funkcji aplikacji Snyk można uzyskać nie tylko za pośrednictwem interfejsu użytkownika Bitbucket, ale także poprzez Bitbucket Pipelines, dodając kroki do plików bi-pipelines.yml. Wówczas skanowanie pod kątem luk w zabezpieczeniach będzie odbywać się automatycznie przy każdym zatwierdzeniu commita, po czym nastąpi wyświetlenie ostrzeżeń o wszelkich lukach w zabezpieczeniach.
Poniżej znajdują się dwa fragmenty pliku bitbucket-pipelines.yml do uruchamiania testów Snyk w ramach pipeline'u.
Dodawanie Snyk do Bitbucket Pipelines w projekcie Golang
Ten przykład ilustruje, jak uruchomić polecenie snyk test dla projektu Golang za pomocą modułów Go do zarządzania zależnościami.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:golang
script:
- snyk auth $SNYK_TOKEN
- cd submitImage
- go mod graph
- snyk test
pipelines:
default:
- step: *runsnyktest
Dodawanie Snyk do Bitbucket Pipelines w projekcie Python
Ten przykład ilustruje, jak uruchomić polecenie snyk test dla projektu Python za pomocą systemu Pip do zarządzania zależnościami.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:python
script:
- snyk auth $SNYK_TOKEN
- cd src
- snyk test --skip-unresolved
- cd ../tst
- snyk test --skip-unresolved
pipelines:
default:
- step: *runsnyktest
Poniżej przedstawiono ekran widoczny po uruchomieniu kroku run snyk test w Bitbucket Pipelines.
Podsumowując…
Praktyka włączania zabezpieczeń do pipeline'u CI/CD jest podstawową zasadą DevSecOps. DevSecOps zakłada, że zabezpieczenia powinny być stosowane do każdej fazy typowego pipeline'u DevOps: planowania, tworzenia kodu, kompilowania, testowania, wydawania i wdrażania. Dzięki włączeniu zabezpieczeń do przepływu pracy stają się one aktywną, zintegrowaną częścią procesu programistycznego, a nie tylko jego uzupełnieniem. Przekłada się to na większe bezpieczeństwo i zadowolenie klientów oraz mniejszą liczbę incydentów.
Udostępnij ten artykuł
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.