Статьи
Обучающие материалы
Интерактивные руководства
Интеграция Snyk с Atlassian Open DevOps
![Фото Уоррена Марусяка](https://wac-cdn.atlassian.com/dam/jcr:7509aefb-43e8-401d-90fe-0850cbe6bb13/wmarusiak_headshot%20(1).png?cdnVersion=2550)
Уоррен Марусяк
Старший технический эксперт
Чтобы продемонстрировать, как разрабатывать и развертывать приложения, а также управлять ими с помощью Jira Software и различных подключенных инструментов, наша команда создала ImageLabeller — простое демонстрационное приложение на платформе AWS, которое с помощью машинного обучения наносит метки на изображения.
На этой странице рассказывается, как интегрировать Snyk с Bitbucket. Прежде чем начать, рекомендуем прочитать страницу Знакомство с ImageLabeller в качестве контекста.
Подключение Bitbucket и Snyk
Есть несколько способов работы со Snyk в Bitbucket. Во-первых, можно включить встроенную интеграцию Snyk с Bitbucket во вкладке Security (Безопасность) на экране репозитория. Второй способ — добавить шаг для Snyk в файл bitbucket-pipelines.yml. Ничто не мешает применять и оба способа одновременно. Интеграция Synk в Bitbucket позволяет быстро изучить данные об уязвимостях любому, кто просматривает репозиторий в Bitbucket. Затем о каждой обнаруженной уязвимости можно получить дополнительную информацию на веб-сайте Snyk. Шаг Snyk в файле bitbucket-pipelines.yml позволяет автоматически сканировать каждый коммит в конвейере.
Добавление интеграции Snyk в Bitbucket
Чтобы добавить Snyk в репозиторий Bitbucket, перейдите на вкладку Security (Безопасность), найдите интеграцию Snyk и нажмите Try now (Попробовать).
![Изображение: добавление интеграции Snyk в Bitbucket](https://wac-cdn.atlassian.com/dam/jcr:3a785ad1-bbee-4d0f-9802-0d4396752041/AddSnykToBitbucket01.png?cdnVersion=2550)
Предоставьте доступ и нажмите Connect Bitbucket with Snyk (Подключить Bitbucket к Snyk).
![Подключение Bitbucket к Snyk](https://wac-cdn.atlassian.com/dam/jcr:2a01debd-e840-4086-b3cb-0e01a0175c01/AddSnykToBitbucket02.png?cdnVersion=2550)
После настройки интеграции закройте вкладку.
![Руководство по успешной интеграции](https://wac-cdn.atlassian.com/dam/jcr:c5cc82e8-b1a0-4133-a918-79d69b41c667/AddSnykToBitbucket03.png?cdnVersion=2550)
Нажмите новую опцию Snyk на левой панели навигации. Затем нажмите файл go.mod, чтобы увидеть более подробную информацию. В этом примере в репозитории Golang для управления зависимостями используются модули Go. Для других типов репозиториев файлы зависимостей будут отличаться.
![Экран Snyk](https://wac-cdn.atlassian.com/dam/jcr:86d060c6-bac2-4484-be46-093702340c0e/TheNewSynkScreen.png?cdnVersion=2550)
Чтобы узнать больше о том, как исправить каждую уязвимость, нажмите visit Snyk (Посетить Snyk), чтобы перейти к веб-сайту Snyk.
![Посетить Snyk](https://wac-cdn.atlassian.com/dam/jcr:2de8deb2-2f4f-4b06-8dd6-e63319992a31/SnykVulnerabilityDetails.png?cdnVersion=2550)
Это представление в приложении Snyk похоже на экран подробных сведений в Bitbucket. На нем отображается список уязвимостей, а также дополнительная информация по каждой из них.
![снимок экрана: веб-сайт Snyk](https://wac-cdn.atlassian.com/dam/jcr:f1fcadc8-a1a1-41e3-9fc6-25271e2a801e/SnykWebsite01.png?cdnVersion=2550)
Ниже приведен пример отчета об уязвимостях в Snyk. Иерархия источников уязвимости показана в разделе Detailed paths (Подробные пути). В приведенном ниже примере видно, что функция SubmitImage унаследовала эту уязвимость из AWS Golang SDK. Snyk предоставляет сводку по статусу всех проблем слева. В нашем случае нельзя исправить ни одну из них. Обратите внимание, что в подпункте No fix available (Нет исправления) списка Fixability (Возможность исправления) указано пять проблем. Это означает, что на текущий момент нет мер по их устранению. Разработчики могут отслеживать состояние в интеграции и вносить исправления, как только они появятся.
![Снимок экрана: информация об уязвимостях](https://wac-cdn.atlassian.com/dam/jcr:b68b5b5e-7c77-4c39-8725-0e066d2a3724/SnykVulnerabilityDetails02.png?cdnVersion=2550)
Добавление шага Snyk в bitbucket-pipelines.yml
Помимо пользовательского интерфейса Bitbucket доступ к функциям Snyk можно получить через конвейеры Bitbucket, добавив соответствующие шаги в файлы bitbucket-pipelines.yml. Это означает, что при каждом коммите будет автоматически выполняться сканирование и выдаваться предупреждение о любых уязвимостях в защите.
Ниже приведены два фрагмента кода bitbucket-pipelines.yml для запуска тестов Snyk через конвейер.
Добавление Snyk в конвейеры Bitbucket для Golang
В этом примере показано, как запустить команду snyk test для проекта Golang, в котором для управления зависимостями используются модули Go.
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 в конвейеры Bitbucket для Python
В этом примере показано, как запустить команду snyk test для проекта Python, в котором для управления зависимостями используется Pip.
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
Вот как выглядит выполнение шага runsnyktest в конвейере Bitbucket.
![Шаг runsnyktest в конвейере Bitbucket](https://wac-cdn.atlassian.com/dam/jcr:d7b281c9-b189-43cc-a635-91a8bd31c804/SnykStepInBitbucketPipeline.png?cdnVersion=2550)
Заключение
Интеграция безопасности в конвейер CI/CD — это один из основных принципов DevSecOps. Согласно подходу DevSecOps, обеспечение безопасности должно затрагивать каждый этап типичного конвейера DevOps: планирование, программирование, сборку, тестирование, выпуск релиза и развертывание. Внедрение безопасности в рабочий процесс делает ее активной, неотъемлемой частью процесса разработки, а не второстепенной задачей. Это позволяет сделать приложения более безопасными, сократить число инцидентов и повысить удовлетворенность клиентов.
Поделитесь этой статьей
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2550)
Сообщество DevOps
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2550)
Образовательные программы DevOps
![Рисунок: карта](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2550)