将 Snyk 集成到 Atlassian Open DevOps
![Warren Marusiak 头像](https://wac-cdn.atlassian.com/dam/jcr:7509aefb-43e8-401d-90fe-0850cbe6bb13/wmarusiak_headshot%20(1).png?cdnVersion=2022)
Warren Marusiak
高级技术传播者
为了演示如何使用 Jira Software 和各种互联工具开发、部署和管理应用,我们的团队创建了 ImageLabeller,这是一款基于 AWS 构建的简单演示应用,它使用机器学习将标签应用于图像。
本页面介绍如何将 Snyk 与 Bitbucket 集成。在您开始之前,我们建议阅读“ImageLabeller 简介”页面以了解背景信息。
连接 Bitbucket 和 Snyk
在 Bitbucket 中使用 Snyk 有几种方法。第一种是通过存储库屏幕上的“安全”选项卡启用与 Bitbucket 的原生 Snyk 集成。第二种是向 bitbucket-pipelines.yml 文件中添加一个 Snyk 步骤。两种方法兼用没有不利之处。Bitbucket 中的 Synk 集成让任何在 Bitbucket 中查看存储库的人都能快速访问漏洞数据。然后,您可以点击进入 Snyk 网站,以获取关于发现的每个漏洞的更多信息。bitbucket-pipelines.yml 文件中的 Snyk 步骤实现自动扫描管道中的每一次提交。
将 Snyk 集成添加到 Bitbucket
如需将 Snyk 添加到 Bitbucket 存储库,请单击“安全”选项卡,找到 Snyk 集成,然后单击“立即试用”。
![将 Snyk 集成添加到 Bitbucket 图像](https://wac-cdn.atlassian.com/dam/jcr:3a785ad1-bbee-4d0f-9802-0d4396752041/AddSnykToBitbucket01.png?cdnVersion=2022)
授予访问权限,并单击“将 Bitbucket 与 Snyk 连接”。
![将 Bitbucket 连接到 Snyk](https://wac-cdn.atlassian.com/dam/jcr:2a01debd-e840-4086-b3cb-0e01a0175c01/AddSnykToBitbucket02.png?cdnVersion=2022)
设置集成后,关闭选项卡。
![成功集成指南](https://wac-cdn.atlassian.com/dam/jcr:c5cc82e8-b1a0-4133-a918-79d69b41c667/AddSnykToBitbucket03.png?cdnVersion=2022)
单击左侧导航栏中出现的新“Snyk”选项。然后单击 go.mod 文件深入查看更多详细信息。在本例中,Golang 存储库使用 go 模块来管理依赖关系。对于其他类型的存储库,会有不同的依赖关系文件。
![Snyk 屏幕](https://wac-cdn.atlassian.com/dam/jcr:86d060c6-bac2-4484-be46-093702340c0e/TheNewSynkScreen.png?cdnVersion=2022)
如需了解关于如何修复每个漏洞的更多信息,请单击“访问 Snyk”转到 Snyk 网站。
![访问 snyk](https://wac-cdn.atlassian.com/dam/jcr:2de8deb2-2f4f-4b06-8dd6-e63319992a31/SnykVulnerabilityDetails.png?cdnVersion=2022)
Snyk 应用上的此视图类似于 Bitbucket 中呈现的详细信息屏幕。此屏幕显示漏洞列表,以及关于每个漏洞的其他信息。
![Snyk 网站屏幕截图](https://wac-cdn.atlassian.com/dam/jcr:f1fcadc8-a1a1-41e3-9fc6-25271e2a801e/SnykWebsite01.png?cdnVersion=2022)
以下是 Snyk 中的漏洞报告示例。“详细路径”部分中显示了漏洞来自的层次结构。在下面的示例中,您可以看到 SubmiTimage 从 AWS Golang SDK 继承了这个漏洞。Snyk 在左侧汇总了所有问题的状态。在这种情况下,所有问题都无法修复。请注意“可修复”下有五个无修复可用问题。这意味着目前没有针对这些问题的缓解措施。开发人员可以监控集成,并在修复可用时立即应用修复。
![漏洞详细信息屏幕截图](https://wac-cdn.atlassian.com/dam/jcr:b68b5b5e-7c77-4c39-8725-0e066d2a3724/SnykVulnerabilityDetails02.png?cdnVersion=2022)
向 bitbucket-pipelines.yml 中添加一个 Snyk 步骤
除了通过 Bitbucket 用户界面访问 Snyk 外,还可以向 bitbucket-pipelines.yml 文件中添加步骤,通过 Bitbucket pipelines 访问 Snyk 功能。这样漏洞扫描将在每次提交时自动进行,并提醒您注意任何安全漏洞。
以下是两个 bitbucket-pipelines.yml 代码段,用于将 Snyk 测试作为管道的一部分运行。
将 Snyk 添加到 Golang 的 Bitbucket pipelines 中
本例说明如何使用 Go 模态为 Golang 项目运行 snyk 测试,以进行依赖管理。
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 添加到 Python 的 Bitbucket pipelines 中
本例说明如何使用 Pip 为 Python 项目运行 snyk 测试,以进行依赖管理。
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
以下是在 Bitbucket pipeline 中运行 runsnyktest 步骤时的显示。
![Bitbucket pipeline 中的 runsnyktest 步骤](https://wac-cdn.atlassian.com/dam/jcr:d7b281c9-b189-43cc-a635-91a8bd31c804/SnykStepInBitbucketPipeline.png?cdnVersion=2022)
分享这篇文章
下一个主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。
![Devops 示意图](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2022)
DevOps 社区
![Devops 示意图](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2022)
DevOps 学习路径
![地图插图](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2022)