Artikelen
Tutorials
Interactieve handleidingen
Integreer Snyk in Atlassian Open DevOps
Warren Marusiak
Senior Technical Evangelist
Om te demonstreren hoe je toepassingen ontwikkelt, implementeert en beheert met behulp van Jira Software en verschillende bijbehorende tools, heeft ons team ImageLabeller aangemaakt, een eenvoudige demotoepassing gebouwd op AWS die gebruikmaakt van machine learning om labels op afbeeldingen aan te brengen.
Op deze pagina wordt beschreven hoe je Snyk integreert met Bitbucket. We raden je aan om, voordat je begint, de pagina Introductie op ImageLabeller te lezen voor meer context.
Bitbucket en Snyk koppelen
Er zijn een aantal manieren om met Snyk te werken in Bitbucket. De eerste is om de systeemeigen integratie van Snyk met Bitbucket mogelijk te maken via het tabblad Beveiliging op het scherm van je repository. Ook kun je een Snyk-stap toevoegen aan een bitbucket-pipelines.yml-bestand. Je kunt het ook allebei doen. De integratie van Snyk in Bitbucket biedt snelle toegang tot kwetsbaarheidsgegevens voor iedereen die de repository in Bitbucket bekijkt. Je kunt dan doorklikken naar de website van Snyk voor meer informatie over elke gevonden kwetsbaarheid. De Snyk-stap in een bitbucket-pipelines.yml-bestand maakt het mogelijk om elke commit in een pipeline automatisch te scannen.
De Snyk-integratie aan Bitbucket toevoegen
Klik op het tabblad Beveiliging, zoek de Snyk-integratie en klik vervolgens op Nu proberen om Snyk toe te voegen aan een Bitbucket-repository.
Verleen toegang en klik op Bitbucket verbinden met Snyk.
Zodra de integratie is ingesteld, sluit je het tabblad.
Klik op de nieuwe Snyk-optie die in het linkernavigatiesysteem verschijnt. Klik vervolgens op het go.mod-bestand om in te zoomen voor meer gedetailleerde informatie. De Golang-repository gebruikt in dit voorbeeld go-modules om afhankelijkheden te beheren. Voor andere soorten repository's zijn er verschillende afhankelijkheidsbestanden.
Klik op Bezoek Snyk om naar de website van Snyk te gaan en meer te weten te komen over hoe je elke kwetsbaarheid kunt oplossen.
Deze weergave van de Snyk-app is vergelijkbaar met het detailscherm dat in Bitbucket is weergegeven. Dit scherm toont een lijst met kwetsbaarheden, samen met aanvullende informatie over elke kwetsbaarheid.
Hieronder zie je een voorbeeld van een kwetsbaarheidsrapport in Snyk. Een hiërarchie van waar de kwetsbaarheid vandaan komt, wordt weergegeven in de sectie Gedetailleerde paden. In het onderstaande voorbeeld kun je zien dat SubmitImage deze kwetsbaarheid overneemt van de AWS Golang SDK. Snyk vat de status van alle problemen aan de linkerkant samen. In dit geval kan geen van de problemen worden opgelost. Let op, er zijn vijf problemen Zonder oplossing onder Oplosbaarheid. Dit betekent dat er momenteel geen afzwakking beschikbaar is voor deze problemen. Ontwikkelaars kunnen de integratie monitoren en oplossingen toepassen zodra deze beschikbaar zijn.
Voeg een Snyk-stap toe aan bitbucket-pipelines.yml
Naast toegang tot Snyk via de Bitbucket-gebruikersinterface, is de functionaliteit van Snyk toegankelijk via Bitbucket-pipelines door stappen toe te voegen aan bitbucket-pipelines.yml-bestanden. Dit betekent dat bij elke commit automatisch een kwetsbaarheidsscan wordt uitgevoerd en je op de hoogte wordt gesteld van eventuele beveiligingsproblemen.
Hieronder staan twee bitbucket-pipelines.yml-fragmenten voor het uitvoeren van Snyk-tests als onderdeel van een pipeline.
Snyk toevoegen aan Bitbucket-pipelines voor Golang
Dit voorbeeld toont hoe je een snyk-test uitvoert voor een Golang-project met behulp van Go-modules voor afhankelijkheidsbeheer.
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
Snyk toevoegen aan Bitbucket-pipelines voor Python
Dit voorbeeld toont hoe je een snyk-test uitvoert voor een Python-project met behulp van Pip voor afhankelijkheidsbeheer.
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
Zo ziet dit eruit als de runsnyktest-stap wordt uitgevoerd in een Bitbucket-pipeline.
Conclusie...
De praktijk om beveiliging te integreren in je CI/CD-pipeline is een kernprincipe van DevSecOps. Met DevSecOps moet beveiliging worden toegepast op elke fase van de gemiddelde DevOps-pipeline: plannen, coderen, bouwen, testen, vrijgeven en implementeren. Door beveiliging in je workflow op te nemen, wordt het een actief, geïntegreerd onderdeel van het ontwikkelingsproces in plaats van een bijzaak. Dit betekent veiligere apps, minder incidenten en tevreden klanten.
Deel dit artikel
Volgend onderwerp
Aanbevolen artikelen
Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.