将 Snyk 集成到 Atlassian Open DevOps
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 集成,然后单击“立即试用”。
授予访问权限,并单击“将 Bitbucket 与 Snyk 连接”。
设置集成后,关闭选项卡。
单击左侧导航栏中出现的新“Snyk”选项。然后单击 go.mod 文件深入查看更多详细信息。在本例中,Golang 存储库使用 go 模块来管理依赖关系。对于其他类型的存储库,会有不同的依赖关系文件。
如需了解关于如何修复每个漏洞的更多信息,请单击“访问 Snyk”转到 Snyk 网站。
Snyk 应用上的此视图类似于 Bitbucket 中呈现的详细信息屏幕。此屏幕显示漏洞列表,以及关于每个漏洞的其他信息。
以下是 Snyk 中的漏洞报告示例。“详细路径”部分中显示了漏洞来自的层次结构。在下面的示例中,您可以看到 SubmiTimage 从 AWS Golang SDK 继承了这个漏洞。Snyk 在左侧汇总了所有问题的状态。在这种情况下,所有问题都无法修复。请注意“可修复”下有五个无修复可用问题。这意味着目前没有针对这些问题的缓解措施。开发人员可以监控集成,并在修复可用时立即应用修复。
向 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 步骤时的显示。
分享这篇文章
下一个主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。