设置持续合规工具链
本教程将向您介绍如何使用持续合规性(CC)工具链模板来确保已部署的工件及其源代码库始终合规。
DevSecOpsA methodology that integrates security practices with the software development and operations lifecycle. The goal of the merge is to prioritize the balance of development speed and security.将一组 IBM Cloud® Security and Compliance Center 控件集成到 DevOps流程中。 这种集成使企业能够快速、频繁地提供服务,以保持强大的安全态势和持续的审计准备状态。
准备工作
确保已满足下列先决条件。 您可以重复使用在 CI 和持续部署 (CD) 工具链设置过程中创建的资源。 它有助于使 CI 和 CD 工具链中的资源信息保持方便。
启动 CC 工具链设置
本教程以暂存环境为例,介绍如何配置和展示 CC 工具链。 按照以下步骤访问 CC 工具链模板。
- 在 IBM Cloud 控制台中,单击 Menu
,然后选择 DevOps。
- 在工具链页面,单击 创建工具链。
- 从创建工具链页面,单击 CC - 让您的应用程序持续符合 DevSecOps 实践磁贴。
设置 CC 工具链
-
单击启动。
-
在 IBM Cloud 中为同一区域和资源组输入工具链中唯一的工具链名称。 工具链区域可能与集群和注册表区域不同。
-
选择区域。
-
选择资源组。
-
可选:您可以从下拉菜单中选择相关的持续集成 (CI) 工具链。 这将复制一些 CI 配置,以帮助设置 CC 工具链。 这可能会覆盖您已经输入的某些值。
-
单击继续。
只有当当前步骤的配置完成且有效时,才能进入下一步。 您可以随时单击 Back 查看引导安装程序中的前几步。 工具链安装程序会保留后续步骤中的所有配置设置。
某些步骤包括 切换到高级配置切换按钮。 默认情况下,这些步骤将为您提供最低配置。 不过,需要更精细控制的高级用户可以单击 切换到高级配置切换按钮,显示底层集成的选项。
设置 CC 工具集成
查看默认设置,并在必要时提供用户自定义配置,以设置 CC 工具集成。
密钥
使用提供的切换按钮指定要添加到工具链的秘密保管库集成。 有关详细信息,请参阅 管理 IBM Cloud 秘密。
CI 工具链仅支持 Arbitrary secrets 和 IAM credentials 秘密类型。
- 本教程使用 IBM Cloud® Secrets Manager 作为秘密库。 地区、资源组和服务名称字段将根据可用选择自动填充。 单击下拉指标查看其他选择。
- 输入您的 Secrets Manager 实例名称。
- 选择 授权类型。
- 单击继续。
清单
- 选择 inventory 储藏库的 Repository URL,以记录 CI 工具链构建的工件的详细信息。
- 单击继续。
目标
- 输入您的 IBM Cloud API 密钥。
- 在清单中输入 Environment 标记,扫描已部署的工件。
- 单击继续。
问题
- 选择 Repository URL 以在 CC 管道运行时记录问题。
- 单击继续。
管道配置
管道配置资源库包含 YAML 文件和脚本,用于部署、测试和其他自定义任务。
- 接受 源提供程序的默认填充设置。
- 选择有效的源 存储库 URL。 使用为该字段提供的默认存储库。
- 单击继续。
证据存储
- 选择 使用现有证据锁存储库选项。
- 选择配置 CI 工具链时创建的 Repository URL。 有关证据存储的更多信息,请参阅 证据。
- 切换 IBM Cloud Object Storage 文件桶,以存储 IBM Cloud Object Storage 文件桶中的所有证据。
- 单击继续。
云 Object Storage 存储区
- 验证并接受自动预填的 IBM Cloud Object Storage 详细信息。
- 提供服务 API 密钥,以便写入 Cloud Object Storage 实例。
- 单击继续。
DevOps Insights 工具链
-
输入您的 DevOps Insights IBM Cloud API 密钥。
-
接受默认配置。
您可以从 DevOps Insights 工具链 ID 的 CI 工具链实例链接到现有的 IBM Cloud DevOps Insights 工具链实例。 例如,如果 URL 是
https://cloud.ibm.com/devops/toolchains/aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee?env_id=ibm:yp:us-south
,那么工具链的 ID 就是aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。 -
单击继续。
SonarQube
- 接受 默认配置。
- 单击继续。
可选工具
Slack
您可以在创建工具链后添加 Slack 工具。
- 输入您的 Slack 网络钩子。 有关更多信息,请参阅 Slack webhook。
- 输入您的黑客频道发布消息。
- 输入空白队名。 例如,如果您的团队 URL
https://team.slack.com
,团队名称就是team
。 - 选择要为 Automated Slack Notifications 接收通知的事件。
- 单击继续。
您还可以选择在 CD 管道中使用 slack-notifications
环境属性,通过 0 = off, and 1 = on
切换发送通知。
Security and Compliance Center
- 接受或编辑自动填充的设置。 有关详细信息,请参阅 Security and Compliance Center 和 工具集成 流程。
- 单击 Continue 查看摘要页面。
创建 CC 工具链
-
在“摘要”页面上,单击 创建工具链,然后等待创建工具链。
各个工具链集成可在管道创建后进行配置。
浏览 CC 工具链
- CC 工具链已创建,单击 cc-pipeline 磁贴可打开并查看 CC 手动触发器、CC 定时触发器 和 Subpipeline Webhook 触发器 管道。
更新应用程序 URL 以运行动态扫描
要在目标环境中运行动态扫描,需要向 CC 管道提供应用程序 URL。 动态扫描会运行一些具有侵入性的测试。 使用暂存环境运行动态扫描。 请按照以下步骤从 ci-pipeline
获取应用程序 URL。
- 在 CI 工具链页面上,单击 cii-pipeline 磁贴。
- 针对管道名称单击 Run。 观察管道运行情况。 等待管道运行完成。
- 应用程序 URL 可在 CI 管道运行的
run stage
步deploy-dev
任务的日志末尾找到。 使用该 URL 验证应用程序是否正在运行。 例如,Application URL: http://<ipaddress>:<portno>
。
请按照以下步骤,使用手动触发器将应用程序 URL 添加到 CC 管道。 有关更新列表的更多信息,请参阅 合规性检查中运行的扫描和检查。
- 在 CC 工具链页面上,单击 CC-pipeline 磁贴。
- 单击 设置 > 环境属性。
- 单击 Add > Text value。
- 在 Add property 中,输入 Name 作为
app-url
。 - 输入 Value 作为
http://<ipaddress>:<portno>
从ci-pipeline
中提取的值。 - 单击添加。 现在您可以使用手动触发器运行 CC 管道了。 如屏幕截图所示,会显示一个已完成的 CC 管道。

如屏幕截图所示,在 CC 管道中触发的异步子管道运行已完成。

事件问题
在 CC 管道执行过程中,会创建漏洞、CVE 等事件问题,并将其附加到收集到的证据上。 如果在生产中发现了这些问题,就会在工具链设置中提到的问题库中创建这些问题和到期日期。 有关更多信息,请参阅 具有到期日期的事件问题。

探索 DevOps Insights
在以下位置上传了合规检查的证据。
- 证据锁存放处。
- Object Storage 桶。
- DevOps Insights- 从工具链单击 DevOps Insights。
- DevOps Insights 质量仪表板,如屏幕截图所示。

CI 和 CC 管道比较
您已经注意到,CI 和 CC 管道有共同的步骤。 运行的扫描和检查在性质和详细信息上都是相似的。 有关详细信息,请参阅 CI 和 CC 管道的区别。
后续步骤
您使用 DevSecOps 实践,成功完成了设置 CI、CD 和 CC 工具链以及部署安全应用程序的系列教程。
现在,您可以探索 使用 DevSecOps 开发和部署安全的基础设施即代码(IaC) 实践。