Mã hóa dữ liệu trong S3

S3 Encryption cho Objects

Để tránh việc lưu trữ dữ liệu dưới dạng thô, Amazon S3 cung cấp phương thức mã hóa dữ liệu. Cách thức hoạt động của mã hóa là dùng keythuật toán (algorithm) để biến dữ liệu ban đầu thành dữ liệu được mã hóa. Vậy nên, vấn đề cần quan tâm là lưu trữ key ở đâu. Trong S3 có 2 cách chính để mã hóa

  • Server-side encryption: Mã hóa phía server (S3)
  • Client-side encryption: Mã hóa phía client (dùng các libs để mã hóa) rồi upload dữ liệu được mã hóa lên S3 Amazon S3 cung cấp 4 phương thức mã hóa object:
  • SSE-S3: Mã hóa S3 objects sử dụng key quản lý bởi AWS
  • SSE-KMS: Sử dụng AWS Key Management Service (KMS) để quản lý encryption keys
  • SSE-C: Sử dụng khi bạn muốn quản lý encryption keys riêng của mình
  • Client Side Encryption

SSE-S3

  • Mã hóa sử dụng key quản lý bởi Amazon S3
  • Object được mã hóa phía server side
  • Phương thức mã hóa: AES-256
  • Phải set header: "x-amz-server-side-encryption":"AES256"

SSE-S3 mã hóa

SSE-KMS

  • Mã hóa sử dụng key quản lý bởi AWS Key Management Service (KMS)
  • Object được mã hóa phía server side
  • Phải set header: "x-amz-server-side-encryption":"aws:kms"

SSE-KMS mã hóa

SSE-C

  • Là server-side encryption sử dụng key cung cấp bởi khách hàng (AWS không quản lý key này)
  • Phải dùng HTTPS
  • Encyption key phải được cung cấp trong HTTPs headers trong mỗi request

SSE-C mã hóa

Client Side Encryption

  • Mã hóa phía client trước khi upload lên S3
  • Sử dụng client libs chẳng hạn như: Amazon S3 Encryption Client
  • Khi đọc dữ liệu trả về cần decrypt chúng

Client Side Encryption

Bài trước
left Bài trước
left Giới thiệu về S3
Bài tiếp theo
Bảo mật trong S3 right
Bài tiếp theo right
Avatar Phan Văn Đức
VIẾT BỞI

Phan Văn Đức