2 điểm bởi GN⁺ 2024-06-02 | 1 bình luận | Chia sẻ qua WhatsApp

Mã hóa bucket AWS S3 không đơn giản như bạn nghĩ

Các tùy chọn mã hóa của S3

  • Mã hóa phía máy chủ (SSE-S3): Mã hóa dữ liệu bằng khóa do AWS quản lý.
  • Mã hóa phía máy chủ (SSE-KMS): Mã hóa dữ liệu bằng AWS Key Management Service (KMS).
  • Mã hóa phía máy chủ (SSE-C): Mã hóa dữ liệu bằng khóa do người dùng cung cấp.
  • Mã hóa phía máy khách: Người dùng tự mã hóa dữ liệu trước khi tải lên.

Sự khác biệt giữa mã hóa và kiểm soát truy cập

  • Mã hóa: Quá trình biến đổi dữ liệu để bảo vệ dữ liệu.
  • Kiểm soát truy cập: Chính sách xác định ai có thể truy cập dữ liệu.
  • Mã hóa S3 trên thực tế gần với kiểm soát truy cập hơn, và tập trung vào quản lý quyền truy cập hơn là bảo vệ dữ liệu.

Vì sao điều này quan trọng

  • Bảo mật: Mã hóa có thể bảo vệ dữ liệu ngay cả khi bị rò rỉ.
  • Tuân thủ: Có thể cần mã hóa để đáp ứng các quy định ngành hoặc yêu cầu pháp lý cụ thể.
  • Tính toàn vẹn dữ liệu: Mã hóa giúp đảm bảo dữ liệu không bị chỉnh sửa trái phép.

Ý kiến của GN⁺

  • Nhầm lẫn giữa mã hóa và kiểm soát truy cập: Nhiều người nhầm lẫn giữa mã hóa và kiểm soát truy cập. Bài viết này giải thích rõ sự khác biệt đó.
  • Mức độ bảo mật thực tế: Cần có góc nhìn phản biện về việc các tùy chọn mã hóa của S3 thực sự an toàn đến mức nào.
  • Công nghệ thay thế: Ngoài S3, cũng đáng cân nhắc các dịch vụ lưu trữ đám mây khác như Google Cloud Storage hoặc Azure Blob Storage.
  • Đào tạo người dùng: Điều quan trọng là giúp các kỹ sư mới vào nghề hiểu rõ sự khác biệt giữa mã hóa và kiểm soát truy cập.
  • Các yếu tố cần cân nhắc khi áp dụng công nghệ: Khi triển khai công nghệ mã hóa, cần tính đến các yếu tố như suy giảm hiệu năng và chi phí gia tăng.

1 bình luận

 
GN⁺ 2024-06-02
Ý kiến trên Hacker News
  • Không đồng ý với lời phàn nàn về việc hệ thống tệp phân biệt chữ hoa chữ thường. Điều đó là hiển nhiên, và việc macOS không hỗ trợ điều này mới là điều bất tiện.
  • Đường dẫn S3 là mô phỏng chứ không phải thư mục thực. Ví dụ, /builds/1/installer.exe thực chất là một tệp có chứa / trong tên.
  • Việc dùng S3 hay các dịch vụ AWS khác khá phức tạp và tài liệu quá nhiều, nên có thể vô tình làm lộ dữ liệu. Ưu tiên các dịch vụ đơn giản như Hetzner Storage Boxes hoặc DigitalOcean Spaces.
  • Việc xóa hàng tỷ đối tượng có thể rất tốn kém. Tuy nhiên, nếu đặt ký tự đại diện hoặc thời gian hết hạn cho toàn bộ đối tượng trong bucket thì có thể dừng tính phí lưu trữ ngay lập tức mà không mất tiền.
  • Các bản tải lên multipart bị lỗi có thể âm thầm tồn tại và phát sinh chi phí lưu trữ. Cái tên 'Simple' của S3 trở nên khá mỉa mai.
  • Không thể thực hiện tải lên multipart từ nhiều máy, yêu cầu LIST thì chậm và tốn kém. Việc tạo bucket cũng có thể thiếu nhất quán.
  • S3 phân biệt chữ hoa chữ thường, và điều này có thể gây vấn đề khi chuyển đổi sang cấu trúc hệ thống tệp.
  • Hầu hết cấu hình S3 cho phép yêu cầu GET nhưng không cho phép yêu cầu HEAD. Luồng hoạt động tận dụng cache có thể không vận hành được.
  • Nếu sử dụng nhiều pre-signed URL, có thể tăng tốc độ tạo URL từ 10 đến 40 lần.
  • Phải trả chi phí lưu trữ cho các bản tải lên multipart chưa hoàn tất. Cần bật thiết lập tự động xóa.
  • Cuộc tranh luận về phân biệt chữ hoa chữ thường quá thiên về tiếng Anh.
  • S3 sẽ âm thầm bỏ qua mọi yêu cầu sau khi một kết nối TCP đơn đã gửi 100 yêu cầu HTTP.
  • Một website cấu hình sai có thể tải nội dung người dùng lên Amazon Glacier rồi phục vụ nó về sau.
  • S3 không phù hợp để phục vụ web do độ trễ cao. Độ trễ ổn định của các đối tượng nhỏ là 100-200 mili giây.