2.1 Non-Rewriteable, Non-Erasable Record Format
2.1.1 Compliance Requirement [SEC 17a-4(f)(2)(ii)(A)]
As set forth in Section III(B) of the 2001 Interpretive Release, this requirement “is designed to ensure that electronic records are capable of being accurately reproduced for later reference by maintaining the records in an unalterable form [for the required retention period].”
The following statement in the 2003 Interpretive Release further clarifies that certain implementations of rewriteable and erasable media, such as magnetic disk or magnetic tape, meet the requirements of a non-rewriteable and non-erasable recording environment provided: (a) the storage solution delivers the prescribed functionality, and (b) the functionality is delivered via appropriate integrated control codes for the SEC designated retention period associated with the stored records.
A broker-dealer would not violate the requirement in paragraph (f)(2)(ii)(A) of the rule if it used an electronic storage system that prevents the overwriting, erasing or otherwise altering of a record during its required retention period through the use of integrated hardware and software control codes. [emphasis added]
Further, Section IV of the 2003 Interpretive Release places requirements on the storage system for retaining records beyond the SEC-established retention period when certain circumstances occur, such as a subpoena or legal hold:
Moreover, there may be circumstances (such as receipt of a subpoena) where a broker-dealer is required to maintain records beyond the retention periods specified in Rule 17a-4 or other applicable Commission rules. Accordingly, a broker-dealer must take appropriate steps to ensure that records are not deleted during periods when the regulatory retention period has lapsed but other legal requirements mandate that the records continue to be maintained, and the broker-dealer’s storage system must allow records to be retained beyond the retentions periods specified in Commission rules. [emphasis added]
This statement by the SEC clarifies that the storage system must have the capability to retain records beyond the retention period established at the time of initial recording when required for legal matters, external investigations or audits, or other similar circumstances.
2.1.2 Compliance Assessment
It is Cohasset’s opinion that the current features of MinIO Object Storage, with Object Lock enabled on the bucket and record objects stored in Compliance Mode, meet this SEC requirement to retain records in non-rewriteable, non-erasable format for time-based3 retention periods and any applied legal holds, when (a) properly configured, as described in Section 2.1.3, and (b) the considerations described in Section 2.1.4 are satisfied.
2.1.3 MinIO Object Storage Capabilities
Overview
- To meet the non-rewriteable, non-erasable requirements of SEC Rule 17a-4(f), a record requiring time-based retention, must (a) be stored in a Bucket with the Object Lock feature enabled, (b) have the Object Lock mode set to Compliance (hereinafter Compliance Mode), and (c) have a Retain Until Date applied to each record object (version). With this configuration, MinIO disables all application programming interfaces (APIs) that could potentially alter or prematurely delete the record object and immutable metadata.
- Object Lock mode may be set, either (a) explicitly by the user/API, or (b) implicitly by inheriting the default values configured for the bucket.
- In addition to Compliance Mode, MinIO Object Lock offers Governance Mode, which allows authorized users to remove Object Lock from an object. Therefore, only Compliance Mode meets the requirements of the Rule.
- When litigation or a subpoena requires record objects to be placed on hold, which could entail retention beyond the assigned retention period, a Legal Hold status may be applied to the record objects. This prohibits deletion of the record objects until the Legal Hold status is removed.
The fundamental features of MinIO Object Storage prevent changes or modifications to record objects and associated immutable metadata, once stored. Further, when the above configurations and settings are applied:
- The Object Lock feature cannot be removed from a Bucket that contains record objects.
- When Compliance Mode is set, on the record object, it cannot be removed, and prevents the specified Retain Until Date from being shortened or removed. It can only be extended, if necessary.
- The record object and its immutable metadata cannot be modified, overwritten or deleted until both (a) the Retain Until Date has expired and (b) the Legal Hold status is removed. MinIO Bucket and User Policy Configurations
MinIO Bucket and User Policy Configurations
- For each Bucket retaining record objects requiring compliance with SEC Rule 17a-4(f), the Object Lock feature must be enabled when the bucket is created. Enabling Object Lock automatically enables the Versioning feature. Once the Object Lock feature is enabled, it cannot be suspended or disabled.
- Optionally, Bucket default values may be set for (a) Object Lock mode, (b) Default retention duration (e.g., 6 Years), and (c) Minimum and Maximum retention durations. Once configured, these defaults automatically apply to each stored record object and metadata, unless retention controls are explicitly transmitted with the record object.
- Object Lock mode and the Default retention period must be configured together or neither default can be configured.
- The default Object Lock mode may be set to must be set to Compliance, for record objects requiring compliance with SEC Rule 17a-4(f)
- The Default retention duration is added to the storage date to calculate the record object’s Retain Until Date. (See section Record Object Definition and Retention Controls, for more information).
- The Bucket Minimum and Maximum retention durations only apply to anonymous users. Known users are governed by the User Policy Minimum and Maximum retention durations, described in the following paragraph.
- User Policies, configured via the S3 API, define a set of permissions that grant access to actions and resources in MinIO Object Storage. Optionally, a User Policy may constrain the user (e.g., source application) to an explicit minimum and maximum range for the applied Retain Until Dates.
- Since the Minimum and Maximum retention range is set through the User Policy, each permissioned user of a Bucket may be bound by a different Minimum and Maximum range. If a user attempts to set retention outside of this range, the request is denied.
- Authorized users may change the Minimum and Maximum range at any time. The updated Minimum and Maximum applies to new record objects and does not apply to previously stored record objects.
- IMPORTANT NOTE: When a record object is not transmitted with an explicit Retain Until Date, either (a) the object is stored without any retention controls (if no Bucket defaults were configured) or (b) the Bucket Default retention period is applied to the record object even if the default is outside the Minimum and Maximum range for the user, thus overriding the policy. Therefore, setting the Default retention period requires careful planning to assure an appropriate Retain Until Date is set, when an explicit Retain Until Date is not transmitted with the record object.
Record Object Definition and Retention Controls
- Each record object is comprised of:
- Complete content of the record object,
- Immutable Metadata, which includes, but is not limited to, unique object Key name, version identifier (VersionID), creation/storage (last modified) date and time, object size, and user-defined custom metadata (key-value pairs), and
- Mutable Metadata, which includes Retain Until Date, Object Lock mode and Legal Hold status
- Each record object has a separate Retain Until Date and Object Lock mode either transmitted with it or inherited from Bucket default values. (REMINDER: The term record object is defined as a version of a record object.)
- The Object Lock mode can be set to one of three options (null, Governance or Compliance) for a given record object and its metadata; only Compliance Mode meets the requirements of SEC Rule 17a-4(f).
- 1.Object Lock mode set to Compliance, assures the following retention controls:
- The Retain Until Date may be extended to a future date but cannot be shortened or cleared by any user, including the account root user.
- The Object Lock mode cannot be changed to Governance or cleared (null) by any user, including the account root user.
- 2.Object Lock mode set to Governance, permits clearing the Object Lock mode and the Retain Until Date. As a result, Governance is disallowed for record objects required to comply with the Rule.
- 3.Object Lock mode may be null (blank), which does not apply any retention controls and, therefore, is disallowed for records required to comply with the Rule.
- The following MinIO Object Store features prevent modification, overwrite and deletion, until eligible:
- The fundamental capabilities of Compliance Mode, when enabled, immutably stores record objects and immutable metadata.
- The Versioning feature ensures record objects are not overwritten; instead, a new version is created.
- Each record object is protected from deletion when either:
- The Retain Until Date of the record object has a future date, or
- The Legal Hold status of the record object is enabled (On).
- For record objects stored in Compliance Mode, the Retain Until Date may be extended to a future date but cannot be shortened or cleared, by any user, including the account root user.
- To apply Compliance Mode and a Retain Until Date to the record object, as required to comply with the Rule, either: (a) the source application transmits Compliance Mode and an explicit Retain Until Date with a record object, or (b) Bucket defaults apply Compliance Mode and a Default retention duration for record objects that are transmitted without retention values,.
- A record object may be copied between Buckets, resulting in the creation of a new copy with its own unique metadata. The copy does not retain the original record object’s Retain Until Date, Object Lock mode and Legal Hold status; therefore, the attributes need to be set via Bucket defaults or explicitly. The original record object and metadata will remain, unaltered, in the original Bucket.
- The following user actions are rejected, when Object Lock mode is set to Compliance:
- Shorten or remove a record object’s Retain Until Date in Compliance Mode.
- Change the Object Lock mode from Compliance to Governance or from Compliance to null (blank).
- Delete a record object, by VersionID, before the Retain Until Date has passed (expired).
Legal Hold
When litigation, regulatory investigation, or a subpoena requires record objects to be placed on hold, which could entail retention beyond the assigned retention period, the regulated entity must ensure the subject record objects are protected for the duration of the legal hold.
- The Legal Hold status (On/Off) may be applied to any record object stored in a Bucket with the Object Lock feature enabled.
- Each record object version includes a separate Legal Hold status attribute.
- The Legal Hold status is independent of the record object’s Retain Until Date and Object Lock mode; therefore, a Legal Hold status may be applied to any record object in a Bucket with the Object Lock feature enabled, including record objects without a Retain Until Date and Object Lock mode.
- When the Legal Hold status is set (On), it prohibits deleting the record object until the Legal Hold status is removed (Off).
- When the Legal Hold status is cleared (Off), this attribute no longer mandates preservation of the record object; however, the retention controls continue to apply to the record object.
- The Legal Hold status for a record object can be verified by either:
(a) using Stat command to view the metadata for the object or
(b) issuing ‘get-object-legal hold’ through the S3 API.
Managing Versions
- Enabling the Object Lock feature for a Bucket automatically enables the Versioning feature.
- When the versioning feature is enabled, each version of the record object is separately managed, in accordance with the following controls:
- 1.A new version is created when the file contents or metadata are changed or when a new file (with the same Key name) is uploaded.
- 2.A new version is not created when retention controls (Object Lock mode and Retain Until date) are applied or when the Legal Hold status is applied or removed for a stored version of the record object.
- 3.The retention controls use the version creation/storage date and time:
- When the Bucket Default retention duration is applied to the version, it is added to the creation/storage date and time to calculate the Retain Until date for the version.
- When a Minimum and Maximum range applies, the version creation/storage date and time is used for the validation.
- 4.Deleting a record object version by Key name without specifying a VersionID creates a ‘delete marker’, which is then considered the most recent version. The ‘delete marker’ does not affect the stored versions of the record. The ‘delete marker’ may be deleted in the future.
- 5.When attempting to delete a record object by VersionID, Compliance Lock protections apply, and only eligible versions are deleted. An error message is communicated, and the deletion operation fails, if the version is ineligible for deletion.
Deletion Controls
- The Retain Until Date and Legal Hold status determine if the record object is eligible for deletion (eligibility for deletion does not cause automatic deletion). The following criteria must be met for a record object to be eligible for deletion:
- The Retain Until Date must have expired (date prior to current date).
- The Legal Hold status must be clear (Off).
- The Bucket cannot be deleted, until it is empty.
Clock Management
- To meet the requirements of the Rule, Cohasset asserts that every system clock must synchronize to an external time server, e.g., a network time protocol (NTP) clock. The MinIO Object Storage system must be configured to enable NTP and regularly check the time of the external source (NTP) and resynchronize time.
- When Object Lock is enabled, MinIO Object Storage prohibits updating the system clock locally. These controls prevent or correct any inadvertent or intentional administrative modifications of the time clock, which could allow for premature deletion of record objects.
Security
- MinIO Object Storage is designed to meet Enterprise security and compliance requirements. MinIO Object Storage supports the following server-side encryption schemes to protect data at rest and in motion:
- Encryption is supported using AES-256-GCM and ChaCha20-Poly1305.
- Encrypted objects are tamper-proofed with AEAD server-side encryption.
- MinIO Object Storage is compatible with commonly used Key Management solutions (e.g., HashiCorp Vault).
- MinIO Object Storage uses a key management-system (KMS) to support SSE-S3. If a client requests SSE-S3, or auto-encryption is enabled, the MinIO Object Storage server encrypts each object with a unique object key which is protected by a master key managed by the KMS.
- MinIO Object Storage may be configured to protect data in-transit (data traveling to and from MinIO Object Storage) may be protected using Secure Sockets Layer (SSL).
- Roles-based Security (RBAC) is employed by MinIO Object Storage. The user is identified by access key and policy to allow S3 API (Application Programming Interface) calls. The permissions for each user are controlled through User Policies.
2.1.4 Additional Considerations
To assure compliance with the non-erasable and non-rewritable requirements of the SEC Rule, the regulated entity is responsible for:
- Assigning permissions required to manage the retention controls and property configuring the User Policies and MinIO Object Store Buckets that will retain regulated records. NOTE: Cohasset recommends setting Bucket defaults: (a) Object Lock in Compliance Mode and (b) an appropriate retention period that complies with the regulatory retention requirements.
- Optionally setting Minimum and Maximum retention durations for the Bucket (which apply to anonymous users) or for User Policies, to validate the Retain Until Date applied to each record object.
- Applying the retention controls to each record object that is required for regulatory compliance.
- Setting the Object Lock mode to Compliance
- Applying a Retain Until Date that meets regulatory retention requirements
Cohasset recommends that retention controls be applied within 24 hours of storing a record object required for compliance with the Rule: - Setting a Legal Hold status to On, when required, to preserve record objects for legal matters, government investigations, external audits and other similar circumstances. NOTE: The Legal Hold status should be set to Off, when preservation is no longer required.
- Limiting the creation and management of ‘delete markers.’ NOTE: Cohasset recommends always specifying the VersionID in delete requests.
- Storing record objects requiring event-based4 retention periods in a separate compliance system, since MinIO Object Storage does not currently support event-based retention periods.
- Setting appropriate security controls to (1) restrict network ports and protocol access, (2) establish roles-based access, and (3) encrypt data in transit and while at rest.