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 是一位由开发人员转型的技术布道师,于 2021 年加入 Atlassian。他的职业履历涵盖从大型机运行的 COBOL 电信软件,到 AWS 现代云基础架构等各种工作。他不仅对技术充满热忱,还具备机器学习领域的研究背景。作为技术布道师,Warren 通过演示、文章和视频,提升市场对 Atlassian 产品及其合作伙伴集成能力的认知。他还负责策划《开发人员前沿》系列视频。闲暇之余,他常沉浸在巴西柔术的训练中。


分享这篇文章

推荐阅读

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

Devops 示意图

DevOps 社区

Devops 示意图

DevOps 学习路径

地图插图

免费试用

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

Thank you for signing up