Close

将 Snyk 集成到 Atlassian Open DevOps

Warren Marusiak 头像
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 图像

授予访问权限,并单击“将 Bitbucket 与 Snyk 连接”。

将 Bitbucket 连接到 Snyk

设置集成后,关闭选项卡。

成功集成指南

单击左侧导航栏中出现的新“Snyk”选项。然后单击 go.mod 文件深入查看更多详细信息。在本例中,Golang 存储库使用 go 模块来管理依赖关系。对于其他类型的存储库,会有不同的依赖关系文件。

Snyk 屏幕

如需了解关于如何修复每个漏洞的更多信息,请单击“访问 Snyk”转到 Snyk 网站。

访问 snyk

Snyk 应用上的此视图类似于 Bitbucket 中呈现的详细信息屏幕。此屏幕显示漏洞列表,以及关于每个漏洞的其他信息。

Snyk 网站屏幕截图

以下是 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 步骤时的显示。

Bitbucket pipeline 中的 runsnyktest 步骤

总之...

将安全性集成到您的 CI/CD 管道中的做法是 DevSecOps 的核心原则。DevSecOps 主张安全性应当应用于典型 DevOps 管道 的每个阶段:计划、编码、构建、测试、发布和部署。通过将安全性集成到您的工作流程,它将成为开发过程中一个活跃、不可或缺的组成部分,而不是马后炮。这样应用更安全、事件更少和客户更开心。

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.


分享这篇文章

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

Devops 示意图

DevOps 社区

Devops 示意图

DevOps 学习路径

地图插图

免费试用

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up