Close

Integracja Snyk z Atlassian Open DevOps

Warren Marusiak — zdjęcie portretowe
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).

Obraz przedstawiający dodawanie integracji Snyk do Bitbucket

Przyznaj dostęp, a następnie kliknij przycisk Connect Bitbucket with Snyk (Połącz Bitbucket ze Snyk).

Łączenie Bitbucket i Snyk

Po skonfigurowaniu integracji zamknij kartę.

Przewodnik po skutecznej integracji

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ć.

Ekran Snyk

Aby się dowiedzieć, jak usunąć poszczególne luki, kliknij opcję Visit Snyk (Odwiedź Snyk) i przejdź do witryny internetowej Snyk.

Odwiedź 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.

Zrzut ekranu witryny internetowej Snyk

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.

Zrzut ekranu ze szczegółami luki w zabezpieczeniach

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.

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

Warren Marusiak
Warren Marusiak

Warren is a Canadian developer from Vancouver, BC with over 10 years of experience. He came to Atlassian from AWS in January of 2021.


Udostępnij ten artykuł

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.

Ilustracja DevOps

Społeczność DevOps

Ilustracja DevOps

Ścieżka szkoleniowa DevOps

Ilustracja przedstawiająca mapę

Zacznij korzystać za darmo

Zapisz się do newslettera DevOps

Thank you for signing up