Tuân thủ

Xây kho lưu trữ email đạt chuẩn tuân thủ, từ tầng lưu trữ trở lên.

Bối cảnh

Khách hàng bán cho các doanh nghiệp y tế, tài chính và công ty đại chúng, và mỗi nhóm mang theo một quy tắc lưu giữ riêng: HIPAA sáu năm, SOX bảy năm, SEC 17a-4 và FINRA sáu năm với hai năm đầu phải truy cập được ngay. Các sản phẩm lưu trữ thương mại trên thị trường hoặc tính giá theo hộp thư theo cách không phù hợp với một đơn vị bán lại, hoặc đặt dữ liệu ở nơi khách hàng không thể bảo chứng. Điều họ cần là một kho lưu trữ tự vận hành được và bảo vệ được từng dòng.

Chúng tôi đã làm gì

Chúng tôi viết bản đặc tả trước, với mỗi quyết định kiến trúc truy được về quy định đòi hỏi nó, rồi xây theo đó.

Thư đến qua quy tắc journal trên TLS, qua một lớp HAProxy chế độ TCP vào các node tiếp nhận không trạng thái, chỉ làm đúng ba việc: nhận, đưa vào hàng đợi, trả về 250 OK. Các worker mã hóa lấy thư từ hàng đợi nằm trên cùng cơ sở dữ liệu SQL phân tán với siêu dữ liệu, sinh một khóa dữ liệu riêng cho từng thư, bọc nó bằng khóa riêng của từng thuê bao không bao giờ rời khỏi Vault, và ghi bản mã vào lưu trữ đối tượng với khóa đối tượng chế độ tuân thủ được đặt ngay lúc ghi. Tầng lưu trữ từ chối xóa hay ghi đè về mặt vật lý trước khi hết thời hạn lưu giữ.

Mã băm SHA-256 của bản rõ được lưu tách biệt với khối dữ liệu mã hóa và được kiểm tra trước khi bất kỳ thư nào được trả về. Sai lệch sẽ cách ly thư và phát sự kiện kiểm toán nghiêm trọng. Một đợt rà quét hàng tuần xác minh lại từng thư trong từng thuê bao từ đầu đến cuối.

Tìm kiếm chạy trên chỉ mục mù, nên cơ sở dữ liệu không bao giờ thấy người gửi hay tiêu đề ở dạng rõ. Giữ pháp lý, xóa hủy, xoay khóa và xuất eDiscovery đều là các job có hàng đợi với dấu vết kiểm toán riêng, và mỗi bản xuất mang theo một bản kê có chữ ký liệt kê những gì được xuất, bởi ai, với mã băm nào.

Hai điều mà thư viện hàng đợi có sẵn không vượt qua được lộ ra ngay tuần đầu thử nghiệm: nó giả định ngữ nghĩa khóa mà cơ sở dữ liệu phân tán không cung cấp. Chúng tôi xây một hàng đợi nhỏ trong nội bộ thay thế, tốn ít thời gian hơn là tìm cách đi vòng.

Điều gì đã thay đổi

Khách hàng có một sản phẩm lưu trữ hoàn toàn thuộc sở hữu của mình, định giá theo điều kiện của mình, không có bất kỳ đường mã nào có thể sửa hay xóa một thư trước thời hạn. Lưu giữ là thuộc tính của tầng lưu trữ, không phải một văn bản chính sách. Khi kiểm toán viên hỏi một thư có thể bị can thiệp bằng cách nào, câu trả lời là một mã băm họ tự tính lại được.

Nhật ký kiểm toán chứng minh có người đã xem. Khóa đối tượng chứng minh không ai có thể sửa.