Cohasset Associates 报告

MinIO 对象存储:SEC 17a-4(f)、FINRA 4511(c) 和 CFTC 1.31(c)-(d) 合规性评估

下载 PDF

2 | SEC 规则 17a-4(f) 合规性评估

本节介绍 Cohasset 对 MinIO 对象存储功能的评估,以确定其是否符合 SEC 规则 17a-4(f) 中规定的与电子记录的记录和不可重写、不可擦除存储相关的五个要求。

对于 SEC 规则 17a-4(f) 中的五个相关要求,本评估分为以下四个主题

  • 合规性要求 – SEC 规则 17a-4(f) 中每个电子存储要求的摘录以及 Cohasset 对该要求的解释
  • 合规性评估 – 对 MinIO 对象存储的相关功能的评估
  • MinIO 对象存储功能 – 相关功能的描述
  • 其他注意事项 – 与满足特定要求相关的其他注意事项

以下小节记录了 Cohasset 对 MinIO 对象存储功能的评估,如第 1.3 节“MinIO 对象存储概述和评估范围”中所述,相对于 SEC 规则 17a-4(f) 的每个相关要求。

2.1不可重写、不可擦除的记录格式

2.1.1合规性要求 [SEC 17a-4(f)(2)(ii)(A)]

如 2001 年解释性公告的第 III(B) 节所述,此要求“旨在确保电子记录能够以可准确复制的形式进行维护,以便稍后参考 [在规定的保留期内]。”

2003 年解释性公告中的以下声明进一步阐明,某些可重写和可擦除介质的实现(例如磁盘或磁带)满足不可重写和不可擦除记录环境的要求,前提是:(a) 存储解决方案提供规定的功能,以及 (b) 该功能通过适用于 SEC 指定的与存储记录相关的保留期的适当集成控制代码来提供。

如果经纪自营商使用一种电子存储系统,该系统通过使用集成的硬件和软件控制代码来防止在规定的保留期内覆盖、擦除或以其他方式更改记录,则不会违反规则第 (f)(2)(ii)(A) 款中的要求。[重点添加]

此外,2003 年解释性公告的第 IV 节对在发生某些情况(例如传票或法律保留)时保留超过 SEC 规定的保留期的记录的存储系统提出了要求

此外,在某些情况下(例如收到传票),经纪自营商可能需要在规则 17a-4 或其他适用的委员会规则中指定的保留期过后继续维护记录。因此,经纪自营商必须采取适当措施,确保在监管保留期已过但其他法律要求规定必须继续维护记录的期间内不删除记录,并且经纪自营商的存储系统必须允许在委员会规则中指定的保留期过后继续保留记录。[重点添加]

SEC 的此声明阐明,当因法律事务、外部调查或审计或其他类似情况需要时,存储系统必须能够保留超出初始记录时确定的保留期的记录。

2.1.2合规性评估

Cohasset 认为,MinIO 对象存储的当前功能,在存储桶上启用对象锁定并在合规模式下存储记录对象时,满足 SEC 这一要求,即以不可重写、不可擦除的格式保留记录以进行基于时间的3保留期和任何适用的法律保留,前提是 (a) 正确配置,如第 2.1.3 节所述,以及 (b) 满足第 2.1.4 节中描述的注意事项。

2.1.3MinIO 对象存储功能

概述

  • 为了满足 SEC 规则 17a-4(f) 的不可重写、不可擦除的要求,需要进行基于时间保留的记录必须 (a) 存储在启用了对象锁定功能的存储桶中,(b) 将对象锁定模式设置为合规(以下简称合规模式),以及 (c) 对每个记录对象(版本)应用保留截止日期。通过此配置,MinIO 将禁用所有可能更改或过早删除记录对象和不可变元数据的应用程序编程接口 (API)。
  • 对象锁定模式可以通过 (a) 用户/API 显式设置,或 (b) 通过继承为存储桶配置的默认值隐式设置。
  • 除了合规模式之外,MinIO 对象锁定还提供治理模式,允许授权用户从对象中删除对象锁定。因此,合规模式满足规则的要求。

  • 当诉讼或传票要求将记录对象保留,这可能需要超出分配的保留期限进行保留时,可以将法律保留状态应用于记录对象。这将禁止删除记录对象,直到法律保留状态被移除。

MinIO 对象存储的基本特性可以防止记录对象和关联的不可变元数据在存储后发生更改或修改。此外,当应用上述配置和设置时

  • 无法从包含记录对象的存储桶中移除对象锁定功能。
  • 当在记录对象上设置合规模式时,它将无法移除,并阻止缩短或移除指定的保留到日期。如有必要,只能将其延长。
  • 在 (a) 保留到日期过期和 (b) 法律保留状态被移除之前,记录对象及其不可变元数据都无法修改、覆盖或删除。MinIO 存储桶和用户策略配置

MinIO 存储桶和用户策略配置

  • 对于每个保留需要符合 SEC 规则 17a-4(f) 的记录对象的存储桶,在创建存储桶时,对象锁定功能必须启用。启用对象锁定会自动启用版本控制功能。启用对象锁定功能后,无法暂停或禁用。
  • 可选地,可以为 (a) 对象锁定模式、(b) 默认保留期限(例如,6 年)和 (c) 最小和最大保留期限设置存储桶默认值。配置后,这些默认值会自动应用于每个存储的记录对象和元数据,除非记录对象明确传输了保留控制。
    • 对象锁定模式和默认保留期限必须一起配置,否则两个默认值都不能配置。
      • 对于需要符合 SEC 规则 17a-4(f) 的记录对象,默认对象锁定模式可能被设置为必须设置为合规
      • 默认保留期限会添加到存储日期,以计算记录对象的保留到日期。(有关更多信息,请参阅记录对象定义和保留控制部分)。
    • 存储桶最小和最大保留期限适用于匿名用户。已知用户受以下段落中描述的用户策略最小和最大保留期限约束。
  • 通过 S3 API 配置的用户策略定义了一组权限,这些权限授予对 MinIO 对象存储中的操作和资源的访问权限。可选地,用户策略可以将用户(例如,源应用程序)限制在应用保留到日期的明确最小和最大范围内。
    • 由于最小和最大保留范围是通过用户策略设置的,因此存储桶的每个有权限用户可能受不同的最小和最大范围约束。如果用户尝试设置超出此范围的保留期限,则会拒绝该请求。
      • 授权用户可以随时更改最小和最大范围。更新的最小和最大适用于新的记录对象,并且适用于先前存储的记录对象。
  • 重要说明:当记录对象传输显式的保留到日期时,则 (a) 对象在没有任何保留控制的情况下存储(如果未配置存储桶默认值)或 (b) 即使默认值超出用户的最小和最大范围,存储桶默认保留期限也会应用于记录对象,从而覆盖策略。因此,设置默认保留期限需要仔细规划,以确保在随记录对象传输显式保留到日期时,设置了适当的保留到日期

记录对象定义和保留控制

  • 每个记录对象包含
    • 记录对象的完整内容,
    • 不可变元数据,包括但不限于唯一的对象名称、版本标识符(VersionID)、创建/存储(上次修改)日期和时间、对象大小以及用户定义的自定义元数据(键值对),以及
    • 可变元数据,包括保留到日期、对象锁定模式和法律保留状态
  • 每个记录对象都有一个单独的保留到日期对象锁定模式,要么随其一起传输,要么从存储桶默认值继承。(提醒:记录对象一词定义为记录对象的一个版本)。
  • 对于给定的记录对象及其元数据,对象锁定模式可以设置为三个选项之一(null治理合规);合规模式符合 SEC 规则 17a-4(f) 的要求。
  • 1.对象锁定模式设置为合规,可确保以下保留控制
    • 保留到日期可以延长到将来的日期,但任何用户(包括帐户根用户)都无法缩短或清除。
    • 任何用户(包括帐户根用户)都无法对象锁定模式更改为治理或清除(null)。
  • 2.对象锁定模式设置为治理,允许清除对象锁定模式保留到日期。因此,对于需要遵守该规则的记录对象,不允许使用治理
  • 3. 对象锁定模式可以为null(空白),这不会应用任何保留控制,因此,对于需要遵守该规则的记录,不允许
  • 以下 MinIO 对象存储功能可以防止修改、覆盖和删除,直到符合条件
    • 启用后,合规模式的基本功能会不可变地存储记录对象和不可变元数据。
    • 版本控制功能可确保不会覆盖记录对象;而是会创建一个新版本。
    • 当以下任一情况发生时,每个记录对象都受到删除保护
      • 记录对象的保留到日期是将来的日期,或者
      • 记录对象的法律保留状态已启用(开启)。
    • 对于存储在合规模式中的记录对象,任何用户(包括帐户根用户)都无法缩短或清除保留到日期,但可以将其延长到将来的日期。
  • 要根据规则的要求将合规模式保留到日期应用于记录对象,可以:(a)源应用程序随记录对象传输合规模式和显式的保留到日期,或者 (b) 存储桶默认值应用合规模式和默认保留期限,用于传输保留值的记录对象。
  • 记录对象可以在存储桶之间复制,从而创建具有自身唯一元数据的新副本。副本不会保留原始记录对象的保留到日期对象锁定模式法律保留状态;因此,需要通过存储桶默认值或显式设置这些属性。原始记录对象和元数据将保持不变,并保留在原始存储桶中。
  • 对象锁定模式设置为合规时,以下用户操作将被拒绝
    • 缩短或删除合规模式下记录对象的保留到日期
    • 对象锁定模式合规更改为治理或从合规更改为null(空白)。
    • 保留到日期过去(过期)之前,通过VersionID删除记录对象。

法律保留

当诉讼、监管调查或传票要求将记录对象保留,这可能需要超出分配的保留期限进行保留时,受监管实体必须确保在法律保留期间保护相关记录对象。

  • 法律保留状态(开启/关闭)可以应用于启用对象锁定功能的存储桶中存储的任何记录对象。
    • 每个记录对象版本都包含一个单独的法律保留状态属性。

    • 法律保持状态独立于记录对象的保留截止日期对象锁定模式;因此,可以将法律保持状态应用于 Bucket 中具有对象锁定功能启用的任何记录对象,包括没有保留截止日期对象锁定模式的记录对象。
    • 法律保持状态设置为(开启)时,它会禁止删除记录对象,直到法律保持状态被移除(关闭)。
    • 法律保持状态被清除(关闭)时,此属性不再强制保留记录对象;但是,保留控制将继续应用于记录对象。
  • 可以通过以下任一方式验证记录对象的法律保持状态
    (a) 使用Stat命令查看对象的元数据,或
    (b) 通过 S3 API 发出“get-object-legal hold”命令。

版本管理

  • 为 Bucket 启用对象锁定功能会自动启用版本控制功能。
  • 启用版本控制功能后,每个版本的记录对象将根据以下控制单独管理
    1. 1. 当文件内容或元数据发生更改,或上传新的文件(具有相同的Key名称)时,将创建新版本。
    2. 2. 应用保留控制(对象锁定模式保留截止日期)或对存储的记录对象版本应用或移除法律保持状态时,不会创建新版本。
    3. 3. 保留控制使用版本创建/存储日期和时间
      • 当 Bucket 的默认保留期限应用于版本时,它将添加到创建/存储日期和时间中,以计算版本的保留截止日期
      • 当应用最小和最大范围时,将使用版本创建/存储日期和时间进行验证。
    4. 4. 通过Key名称删除记录对象版本而不指定VersionID会创建一个“删除标记”,然后将其视为最新版本。“删除标记”不会影响记录的存储版本。“删除标记”将来可能会被删除。
    5. 5. 当尝试通过VersionID删除记录对象时,将应用合规性锁定保护,并且仅删除符合条件的版本。如果版本不符合删除条件,则会传达错误消息,并且删除操作失败。

删除控制

  • 保留截止日期法律保持状态决定记录对象是否符合删除条件(符合删除条件不会导致自动删除)。要使记录对象符合删除条件,必须满足以下条件
    • 保留截止日期必须已过期(日期早于当前日期)。
    • 法律保持状态必须为清除(关闭)。
  • Bucket 必须为空才能删除。

时钟管理

  • 为了满足规则的要求,Cohasset 断言每个系统时钟必须与外部时间服务器(例如网络时间协议 (NTP) 时钟)同步。MinIO 对象存储系统必须配置为启用 NTP 并定期检查外部源 (NTP) 的时间并重新同步时间。
    • 对象锁定启用时,MinIO 对象存储禁止在本地更新系统时钟。这些控制措施可防止或纠正任何无意或故意的时钟管理修改,这可能导致过早删除记录对象。

安全性

  • MinIO 对象存储旨在满足企业安全和合规性要求。MinIO 对象存储支持以下服务器端加密方案来保护静态和传输中的数据
    • 使用 AES-256-GCM 和 ChaCha20-Poly1305 支持加密。
    • 加密对象使用 AEAD 服务器端加密进行防篡改。
    • MinIO 对象存储与常用的密钥管理解决方案(例如 HashiCorp Vault)兼容。
    • MinIO 对象存储使用密钥管理系统 (KMS) 支持 SSE-S3。如果客户端请求 SSE-S3 或启用了自动加密,则 MinIO 对象存储服务器将使用由 KMS 管理的主密钥保护的唯一对象密钥加密每个对象。
    • 可以将 MinIO 对象存储配置为使用安全套接字层 (SSL) 保护传输中的数据(进出 MinIO 对象存储的数据)。
    • MinIO 对象存储采用基于角色的访问控制 (RBAC)。用户通过访问密钥和策略进行识别,以允许 S3 API(应用程序编程接口)调用。每个用户的权限通过用户策略进行控制。

2.1.4其他注意事项

为了确保符合 SEC 规则中不可擦除和不可重写要求,受监管实体负责

  • 分配管理保留控制所需的权限,并配置将保留受监管记录的用户策略和 MinIO 对象存储 Bucket。注意:Cohasset 建议设置 Bucket 默认值:(a) 对象锁定处于合规模式,以及 (b) 符合监管保留要求的适当保留期限。
  • 可选地为 Bucket(适用于匿名用户)或用户策略设置最小和最大保留期限,以验证应用于每个记录对象的保留截止日期
  • 将保留控制应用于每个需要符合监管要求的记录对象。
    • 对象锁定模式设置为合规
    • 应用符合监管保留要求的保留截止日期
    Cohasset 建议在存储需要符合规则的记录对象后的 24 小时内应用保留控制
  • 在需要时将法律保持状态设置为开启,以保留用于法律事务、政府调查、外部审计和其他类似情况的记录对象。注意:当不再需要保留时,应将法律保持状态设置为关闭。
  • 限制创建和管理“删除标记”。注意:Cohasset 建议始终在删除请求中指定VersionID
  • 将需要基于事件4保留期限的记录对象存储在单独的合规系统中,因为 MinIO 对象存储目前不支持基于事件的保留期限。
  • 设置适当的安全控制以 (1) 限制网络端口和协议访问,(2) 建立基于角色的访问,以及 (3) 在传输中和静态时加密数据。

2.2准确记录流程

2.2.1合规性要求 [SEC 17a-4(f)(2)(ii)(B)]

Compliance Requirement [SEC 17a-4(f)(2)(ii)(B)]

此要求的目的是确保记录流程的准确性和质量,以便从存储介质读取的记录与记录的记录完全相同。此要求包括记录流程的质量验证和记录后验证流程。

2.2.2合规性评估

Cohasset 确认 MinIO 对象存储的功能与高级磁存储技术的固有功能相结合,满足了 SEC 对准确记录和记录后验证的要求。

2.2.3MinIO 对象存储功能

MinIO 对象存储结合了记录和记录后验证流程,这些流程在以下小节中进行了描述。

记录流程

  • 必须与记录对象一起传输 MD5 校验和。只有当 MinIO 对象存储计算出的 MD5 校验和值与上传的校验和匹配时,才会存储记录对象。如果不匹配,则会报告错误,并且必须重新上传记录对象。
  • MinIO 对象存储利用先进的电子记录技术,该技术应用了一系列检查和平衡措施,以确保记录对象以高质量和准确的方式写入。
  • 每个记录对象和相关元数据都受到擦除码和位腐烂哈希的保护。记录后验证流程

记录后验证流程

  • MinIO 对象存储使用擦除编码将记录对象拆分为数据段(块),并为每个段分配校验和。通过在读取期间比较每个段的校验和来验证记录对象的完整性,以确保提供准确的记录对象。
  • MinIO 对象存储采用后台修复流程,扫描数据段,检查和纠正错误。如果某个段已损坏,这意味着校验和值无效,则会启动自动恢复流程以从其他有效段重建该段。
    • MinIO 对象存储允许管理员手动修复(纠正)错误,尽管在可能的情况下会使用自动修复。

2.2.4其他注意事项

此要求没有其他注意事项。

2.3对原始和重复的存储介质单元进行序列化

2.3.1合规性要求 [SEC 17a-4(f)(2)(ii)(C)]

根据 SEC 2001 年解释性公告的第 III(B) 节,此要求“旨在通过指示记录存储的顺序来确保记录的准确性和可访问性,从而使特定记录更容易定位并对存储流程进行认证。”

Compliance Requirement [SEC 17a-4(f)(2)(ii)(C)]

当 SEC 规则于 1997 年发布时,人们认为此要求与跟踪与缩微胶片或光学存储相关的可移动介质的各个单元更相关。对于非单元化电子存储,此要求可以通过捕获和存储与每个电子记录关联的不可变元数据来满足,以唯一地识别记录以及记录的日期和时间

2.3.2合规性评估

Cohasset 认为,MinIO 对象存储的功能满足此 SEC 要求,可以对原始记录和副本记录进行序列化。

2.3.3MinIO 对象存储功能

  • 每个记录对象都使用以下组合在 MinIO 对象存储桶中进行序列化:(a) 唯一的对象Key名称,(b)VersionID,以及 (c) 创建时间/存储日期和时间戳。这些属性是不可变的。
    • 对象名称在存储桶内必须唯一。
    • VersionID会自动分配。
    • 创建时间/存储日期(上次修改)日期和时间由系统定义,不可变,并与每个记录对象一起存储。
  • 这种唯一的对象Key名称、VersionID和创建时间/存储日期和时间的组合,在空间和时间上对每个记录对象进行序列化。

2.3.4其他注意事项

此要求没有其他注意事项。

2.4下载索引和记录的能力

此要求需要有足够的能力来方便地下载记录和关联的索引,格式和介质必须符合规则,以及 SEC 或自律组织指定的格式和介质。这允许 SEC 或自律组织获取下载的记录和索引。

Capacity to Download Indexes and Records

2.4.2合规性评估

Cohasset 认为,MinIO 对象存储的功能满足此 SEC 要求,可以方便地下载记录和索引(元数据属性),前提是解决了第 2.4.4 节中描述的注意事项。

2.4.3MinIO 对象存储功能

  • 拥有管理员权限的 MinIO 对象存储用户可以使用已扩展以涵盖治理功能的 Linux 命令查找对象和关联的元数据。
    • 搜索功能仅限于记录对象的名称、VersionID或列出所有对象。
    • 元数据不可搜索;但是,可以使用 stat 命令列出元数据。
    • 对于高级搜索功能,元数据可以插入自定义数据库,然后用于过滤基本元数据和头部属性。
  • 记录对象和索引(元数据属性)可以使用 S3 API 下载。以下功能支持使用 S3 API 下载记录对象和索引数据(元数据属性)的能力。
    • 列出存储桶中的所有版本(包括删除标记)的记录对象(基于名称的选择条件可以细化,以查找和返回存储桶中对象的子集)。
    • 将选定的记录对象和关联的索引(元数据属性)下载到指定的存储位置。

2.4.4其他注意事项

受监管实体负责:(a) 确保搜索结果中包含带有删除标记的记录对象,(b) 授权用户权限,(c) 维护访问 MinIO 对象存储的硬件和软件,(d) 确保监管机构、自律组织或指定的审查机构以请求的格式和介质接收请求的记录对象和关联索引(元数据属性)的下载。

2.5单独存储的记录副本

2.5.1合规性要求 [SEC 17a-4(f)(3)(iii)]

此要求的目的是提供一个备用来源来访问记录,以防主要来源受到损害,即丢失或损坏。

Compliance Requirement [SEC 17a-4(f)(3)(iii)]

注意:副本定义为持久副本,允许从存储在符合标准的存储系统或介质上的数据中重新建立完整且准确的记录。而备份副本定义为非持久副本,会在定期轮换时被覆盖,导致保留期远短于原始记录。

2.5.2合规性评估

Cohasset 断言,MinIO 对象存储满足此 SEC 要求,可以提供记录对象的持久副本,前提是:(a) 正确配置,如第 2.5.3 节所述,以及 (b) 满足第 2.5.4 节中描述的注意事项。

2.5.3MinIO 对象存储功能

有两种方法可以满足此单独存储副本的要求。

使用擦除编码创建副本

  • MinIO 对象存储使用擦除编码 (EC) 将记录对象的冗余数据段(块)存储在多个节点上。如果磁盘或节点发生故障,可以从冗余数据段重新生成原始记录对象。
    • MinIO 创建每个集合包含 4 到 16 个驱动器的擦除编码集合。
    • 每个对象都写入单个擦除编码集合,因此最多分布在 16 个驱动器上。
    • 记录对象是从擦除编码数据中重新生成的。
    • 擦除编码数据段会保留整个保留期以及任何应用的法律保留。

使用镜像创建副本

  • 可以使用镜像功能存储副本,该功能提供存储桶级别的持续同步。
    • 配置镜像时,它会从源存储桶复制默认的锁定配置。
    • 监视标志识别源存储桶中的更改并将更改复制到目标存储桶。如果目标存储桶不可用,它将继续重试,直到复制完成。
    • 计划作业收集未处理的源存储桶更改并将更改复制到目标存储桶,以确保同步。
    • 当在源存储桶中的记录对象上添加对象锁定或法律保留时,会触发事件以将这些控制应用于目标服务器上的对象。

2.5.4其他注意事项

受监管实体负责以下事项。

  • 使用镜像功能时,请确保配置计划作业至少每天运行一次,以收集源存储桶上任何未复制的更改并将更改复制到目标存储桶。
  • 当仅依靠擦除编码创建副本时,Cohasset建议受监管实体配置系统,使存储池均匀分布在三个或更多地理分散的数据中心中。
  • 3 基于时间的保留期要求记录从创建和存储之日起保留指定的时间段。
  • 4 基于事件或基于事件时间的保留期要求无限期保留记录,直到发生指定的事件(例如,合同到期或员工离职),之后记录将保留固定的最终保留期。
1 2 3 4 5 6 7

您正在使用 Internet Explorer 版本 11 或更低版本。由于安全问题和缺乏对 Web 标准的支持,强烈建议您升级到现代浏览器。