第 4 部分:建立 CC 工具链
本教程将向您介绍如何使用持续合规性(CC)工具链模板来确保已部署的工件及其源代码库始终合规。
DevSecOps将安全实践与软件开发和操作生命周期相集成的方法。 合并的目标是优先考虑发展速度和安全性的平衡。将一组 IBM Cloud® Security and Compliance Center 控件集成到 DevOps流程中。 这种集成使企业能够快速、频繁地提供服务,以保持强大的安全态势和持续的审计准备状态。
准备工作
确保已满足下列先决条件。 您可以重复使用在 CI 和持续部署 (CD) 工具链设置过程中创建的资源。 它有助于使 CI 和 CD 工具链中的资源信息保持方便。
启动 CC 工具链设置
本教程以暂存环境为例,介绍如何配置和展示 CC 工具链。 按照以下步骤访问 CC 工具链模板。
- 在“IBM Cloud控制台中,点击”菜单“
”>“平台自动化”>“工具链”。
- 在工具链页面,单击 创建工具链。
- 从创建工具链页面,单击 CC - 让您的应用程序持续符合 DevSecOps 实践磁贴。
设置 CC 工具链
-
单击启动。
-
在 IBM Cloud 中为同一区域和资源组输入工具链中唯一的工具链名称。 工具链区域可能与集群和注册表区域不同。
-
选择区域。
-
选择资源组。
-
可选:您可以从下拉菜单中选择相关的持续集成 (CI) 工具链。 这将复制一些 CI 配置,以帮助设置 CC 工具链。 这可能会覆盖您已经输入的某些值。
-
单击继续。
只有当当前步骤的配置完成且有效时,才能进入下一步。 您可以随时单击 Back 查看引导安装程序中的前几步。 工具链安装程序会保留后续步骤中的所有配置设置。
某些步骤包括 切换到高级配置切换按钮。 默认情况下,这些步骤将为您提供最低配置。 不过,需要更精细控制的高级用户可以单击 切换到高级配置切换按钮,显示底层集成的选项。
设置 CC 工具集成
查看默认设置,并在必要时提供用户自定义配置,以设置 CC 工具集成。
密钥
使用提供的切换按钮指定要添加到工具链的秘密保管库集成。 有关详细信息,请参阅 管理 IBM Cloud 秘密。
CI 工具链仅支持 Arbitrary secrets 和 IAM credentials 秘密类型。
- 本教程使用 IBM Cloud® Secrets Manager 作为秘密库。 地区、资源组和服务名称字段将根据可用选择自动填充。 单击下拉指标查看其他选择。
- 输入您的 Secrets Manager 实例名称。
- 选择授权类型。
- 单击继续。
清单
- 选择 清单存储库的 存储库 URL,记录 CI 工具链构建的工件的详细信息。
- 单击继续。
目标
- 输入您的 IBM Cloud API 密钥。
- 在清单中输入 Environment 标记,扫描已部署的工件。
- 单击继续。
问题
- 选择存储库 URL,以便在 CC 管道运行时记录问题。
- 单击继续。
管道配置
管道配置资源库包含 YAML 文件和脚本,用于部署、测试和其他自定义任务。
- 接受 源提供程序的默认填充设置。
- 选择一个有效的来源资料库 URL。 使用为该字段提供的默认存储库。
- 单击继续。
证据存储
- 选择 使用现有证据锁存储库选项。
- 选择配置CI工具链时创建的存储库 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 Webhook。 有关更多信息,请参阅 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流水线运行的
deploy-dev
任务的run stage
步骤的日志末尾找到。 请使用 URL 来验证应用程序是否正在运行。 例如,Application URL: http://<ipaddress>:<portno>
。
按照步骤,使用手动触发器将应用程序 URL 添加到CC管道中。 有关更新列表的更多信息,请参阅 合规性检查中运行的扫描和检查。
- 在 CC 工具链页面上,单击 CC-pipeline 磁贴。
- 单击设置 > 环境属性。
- 单击添加 > 文本值。
- 在 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) 实践。