Close

Integrieren von Snyk in Atlassian Open DevOps

Portrait Warren Marusiak
Warren Marusiak

Senior Technical Evangelist

Um zu demonstrieren, wie Anwendungen mit Jira Software und verschiedenen verbundenen Tools entwickelt, bereitgestellt und verwaltet werden können, hat unser Team ImageLabeller entwickelt. Dabei handelt es sich um eine einfache Demo-Anwendung, die auf AWS basiert und maschinelles Lernen nutzt, um Images mit Stichwörtern zu versehen.

Auf dieser Seite wird das Integrieren von Snyk mit Bitbucket behandelt. Wir empfehlen dir, vorab die Seite mit der Einführung in ImageLabeller zu lesen, um mehr über den Kontext zu erfahren.

Verbinden von Bitbucket und Snyk

Es gibt verschiedene Möglichkeiten, in Bitbucket mit Snyk zu arbeiten. Du kannst die native Snyk-Integration in Bitbucket im Repository-Bereich auf der Registerkarte "Sicherheit" aktivieren. Außerdem kannst du der Datei "bitbucket-pipelines.yml" einen Snyk-Schritt hinzuzufügen. Es spricht nichts dagegen, beide Möglichkeiten zu nutzen. Die Synk-Integration in Bitbucket bietet jedem, der sich das Repository in Bitbucket ansieht, schnellen Zugriff auf Sicherheitsdaten. Bei Bedarf gelangst du von dort zur Website von Snyk, die zusätzliche Informationen zu jeder gefundenen Schwachstelle liefert. Der Snyk-Schritt in der Datei "bitbucket-pipelines.yml" ermöglicht automatische Scans bei jedem Commit in einer Pipeline.

Hinzufügen der Snyk-Integration zu Bitbucket

Um Snyk einem Bitbucket-Repository hinzuzufügen, klicke auf die Registerkarte Sicherheit, navigiere zur Snyk-Integration, und klicke dann auf Jetzt testen.

Bild: Hinzufügen der Snyk-Integration zu Bitbucket

Gewähre Zugriff, und klicke dann auf Connect Bitbucket with Snyk (Bitbucket mit Snyk verbinden).

Verbinden von Bitbucket mit Snyk

Wenn die Integration eingerichtet ist, schließe die Registerkarte.

Leitfaden zur erfolgreichen Integration

Klicke auf die neue Snyk-Option, die in der linken Navigationsleiste angezeigt wird. Klicke dann auf die Datei "go.mod", um detailliertere Informationen zu erhalten. Das Golang-Repository verwendet in diesem Beispiel Go-Module, um Abhängigkeiten zu verwalten. Für andere Arten von Repositorys gibt es andere Abhängigkeitsdateien.

Snyk-Bildschirm

Weitere Informationen zum Beheben der einzelnen Schwachstellen erhältst du, wenn du auf visit Snyk (Snyk aufrufen) klickst, um zur Snyk-Website zu gelangen.

visit Snyk (Snyk aufrufen)

Diese Ansicht in der Snyk-App ähnelt der Detailansicht in Bitbucket. Dieser Bildschirm zeigt eine Liste von Schwachstellen mit ergänzenden Informationen.

Screenshot: Snyk-Website

Unten siehst du ein Beispiel für einen Snyk-Bericht zu Sicherheitsschwachstellen. Eine Hierarchie zum Ursprung der jeweiligen Schwachstelle wird im Abschnitt Detailed paths (Detaillierte Pfade) angezeigt. Im Beispiel unten kannst du sehen, dass SubmitImage diese Schwachstelle aus dem AWS-Golang-SDK übernommen hat. Snyk fasst den Status aller Probleme auf der linken Seite zusammen. In diesem Fall ist keines der Probleme behebbar. Wie du siehst, sind unter Fixability (Behebbarkeit) fünf Probleme mit dem Hinweis No fix available (Keine Problembehebung verfügbar) aufgeführt. Das bedeutet, dass für diese Probleme derzeit keine Lösung verfügbar ist. Entwickler können die Integration überwachen und Fixes anwenden, sobald diese verfügbar sind.

Screenshot: Details zur Schwachstellen

Hinzufügen eines Snyk-Schritts zu "bitbucket-pipelines.yml"

Du kannst auf Snyk nicht nur über die Bitbucket-Benutzeroberfläche zugreifen, sondern auch über Bitbucket Pipelines, indem du Schritte zur jeweiligen Datei "bitbucket-pipelines.yml" hinzufügst. Das bedeutet, dass Schwachstellenscans bei jedem Commit automatisch erfolgen und du über Sicherheitsschwachstellen benachrichtigt wirst.

Unten sind zwei Snippets von "bitbucket-pipelines.yml" zum Ausführen von Snyk-Tests als Teil einer Pipeline dargestellt.

Hinzufügen von Snyk zu Bitbucket Pipelines für Golang

Dieses Beispiel zeigt, wie du einen Snyk-Test für ein Golang-Projekt mit Go-Modulen für das Abhängigkeitsmanagement durchführst.

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

Hinzufügen von Snyk zu Bitbucket Pipelines für Python

Dieses Beispiel zeigt, wie du einen Snyk-Test für ein Python-Projekt mit Python pip für das Abhängigkeitsmanagement durchführst.

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

Hier ist dargestellt, wie das Ausführen des Schritts "runsnyktest" in einer Bitbucket-Pipeline aussieht.

Schritt "runsnyktest" in einer Bitbucket-Pipeline

Fazit

Die Praxis, Sicherheitsmaßnahmen in deine CI/CD-Pipeline zu integrieren, ist ein Kerngrundsatz von DevSecOps. Bei DevSecOps gilt, dass Sicherheit Bestandteil jeder Phase einer typischen DevOps-Pipeline sein sollte: Planung, Code, Build, Test, Release und Deployment. Wenn du Sicherheitsmaßnahmen in deinen Workflow integrierst, wandelt sich Sicherheit vom Nebenschauplatz zu einem aktiven, integrierten Teil des Entwicklungsprozesses. Das bedeutet sicherere Apps, weniger Vorfälle und zufriedenere Kunden.

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.


Diesen Artikel teilen

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: DevOps

DevOps-Lernpfad

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up