IBM Cloud Docs
将 IBM Cloud Object Storage 存储区用作证据锁定程序

将 IBM Cloud Object Storage 存储区用作证据锁定程序

您可以配置 IBM Cloud Object Storage (COS) 存储区,以存储集成到 DevSecOps 管道中的合规性检查所生成的证据。 合规性证据将创建审计人员在合规性审计期间查找的审计跟踪。 DevSecOps 的目标之一是自动生成证据并将其存储在可审计的证据锁定器中。 有关更多信息,请参阅 证据锁定程序

合规性自动化管道将以下信息存储在 COS 存储区中:

任务工件
测试结果,扫描结果或任务的任何已保存输出。
任务日志
管道运行后,该运行的日志将发送到证据锁定程序。
证据
有关任务及其结果输出的信息,可以是失败或成功。 有关所发送证据的格式的更多信息,请参阅 证据摘要

配置存储区

必须先创建专用云 Object Storage 实例,然后才能设置持续集成或持续部署工具链。 此 COS 存储区用于与合规性相关的存储,因为必须在应用程序的边界内创建证据存储库。 这有助于提高管道的弹性。 有关更多信息,请参阅 弹性

要将云 Object Storage 存储区配置为作为持续集成或持续部署管道的一部分充当合规性证据锁定程序,您可以使用以下信息作为指南。 管道或工具链模板脚本未在 Cloud Object Storage中设置锁定程序。

对存储区进行命名

云 Object Storage 对象名称由以下组件组成:

{NAMESPACE} / {PIPELINE_RUN_ID} / {TYPE} / {FILE_NAME} _ {HASH}

示例:

ci/48decaa9-9042-498f-b58d-3577e0ac0158/evidences/build-vulnerability-advisor.json_362c06afa88b3f304878f0d0979e834f

ci/48decaa9-9042-498f-b58d-3577e0ac0158/artifacts/app-image-va-report.json_b3f30487f0d0979e834f362c06afaaa8

当您从特定管道运行中查找收集的数据时,名称组件 {NAMESPACE} / {PIPELINE_RUN_ID} / {TYPE} 可用作前缀。

保留时间策略

您可以设置云 Object Storage 存储区以对已上载的对象实施保留时间策略或时间段,也称为 不可变 Object Storage。 不可变对象存储器会保留电子记录,并维护数据完整性。 保留时间策略确保以“写一读多”(WORM),“不可擦除”和“不可重写”方式存储数据。 不能在保留期内更改或删除受保护存储区中的对象,也不能在保留期结束之前删除具有对象本身的受保护存储区。 将强制实施该策略,直到保留期结束并除去任何合法保留。

建议团队为存储区设置保留策略,这些存储区用作存储每个对象至少 365 天的证据锁定程序。

审计事件日志

对于未配置的存储区,可通过支持请求访问不可变 Object Storage 的日志数据。

通过 IBM Cloud Activity Tracker,您可以 审计 针对存储区及其包含的对象发出的请求。 您可以查看与 IBM Cloud Activity Tracker Web UI 上的证据锁定程序存储区相关的所有 Object Storage 事件。 您还可以将在 IBM Cloud Activity Tracker 实例中收集的所有数据归档并写入单独的存储区。

存储区访问许可权

管道放置对象 (证据,证据摘要和工件) 以及从存储区读取对象 (证据摘要)。 这些工具不会变更或删除对象,也不会创建,更新或删除存储区。

使用以下访问策略来访问云 Object Storage 存储区:

  • 读者。 这是 CD 管道检查存储区保留时间策略所必需的。
  • 对象写程序。 所有 CI,CD 和 CC 管道都需要将新证据持久存储到存储区中。

使用云 Object Storage 存储区作为证据存储时,建议的许可权为 读者对象写程序。 具有较高特权的许可权可能有害。

存储类

具有不同设置和部署频率的团队的成本各不相同。 建议不要将免费层用作云 Object Storage 存储区,因为无法将免费层配置为不可改变。

样本估计

如果您正在使用引用连续集成或连续部署管道,每个管道包含六个证据,那么单个连续集成和连续部署运行对将发出 37 个 A 类请求和 6 个 B 类请求。

  • 持续集成会写入 6 个日志,6 个工件和 6 个证据,这等于 18 个 PUT-Class A。
  • 持续部署会读取 6 个证据 (6 个 GET-Class B),写入 6 个证据,6 个日志,6 个工件和一个摘要,这等于 19 个 PUT-Class A。

通过平均 5 个微服务 (5 个连续集成) 和 4 个部署区域 (4 个连续部署),一个完整部署等于 166 个 A 类和 24 个 B 类请求。

通过每周一次完整部署 (每月四次),您可以计算每月 664 个 A 类和 96 个 B 类请求。

收集的数据量因用例而异。 使用证据 (1 kB),测试工件 (100 kB) 和日志 (15 kB) 的平均大小,您可以计算每月创建和传输的数据的 0.01 GByte。

弹性

如果需要保持在边界内,建议您使用 Cross-RegionRegional 弹性。 有关这些区域的更多信息,请参阅 端点和存储位置

存储区名称

云 Object Storage 存储区名称必须全局唯一且符合 DN。 名称长度必须为 3-63 个字符,并且必须包含小写字母,数字和短划线。 存储区名称必须以小写字母或数字开头和结尾。 不允许使用类似 IP 地址的名称。 存储区名称在整个 IBM Cloud Object Storage 系统中是唯一的,它们不能包含任何个人信息,例如名称或地址的任何部分,财务,安全帐户或 SSN。

端点

private 端点用于源自 IBM Cloud® 中的大多数请求,并将 public 端点用于源自 IBM Cloud®外部的大多数请求。 有关更多信息,请参阅 端点类型

对于在伦敦区域中运行的管道,由于那里的管道管理的工作程序基础结构,请使用 direct 端点。

适用于多个应用程序的最佳实践

这是在 CI 工具链上配置多个应用程序时要遵循的提示和最佳实践的列表,因为这涉及多个属性及其信息。 包括:

  • 最好按应用程序名称命名触发器,然后按其用途进行命名,这样人们就可以轻松地在仪表板中对其进行过滤。 例如,hello-world Git <branch> Trigger

  • 寻求最大化手动触发器中触发器属性的使用,以减少插入输入值的需求。 它还具有将这些值移动到属性列表顶部的帮助作用,因此无需搜索需要更改的属性。