Mã hóa dữ liệu bằng SSE-C
Mã hóa phía server bằng khóa do khách hàng cung cấp (SSE-C) giúp mã hóa object bằng khóa chỉ bạn nắm giữ. Dùng SSE-C cho dữ liệu nhạy cảm hoặc khi quy định bảo mật yêu cầu bạn tự kiểm soát khóa mã hóa.
Cách SSE-C hoạt động
Upload: bạn gửi khóa mã hóa kèm object. FPT Object Storage mã hóa dữ liệu bằng khóa đó, lưu dữ liệu đã mã hóa và hủy khóa.
Download: bạn gửi lại đúng khóa đó kèm request. FPT Object Storage dùng khóa để giải mã dữ liệu và trả về object.
Quản lý khóa
FPT Object Storage không lưu khóa mã hóa, nên bạn chịu hoàn toàn trách nhiệm quản lý khóa.
- Tự tạo, lưu trữ và bảo vệ từng khóa theo quy trình bảo mật phù hợp với tổ chức.
- Ghi lại khóa nào đã mã hóa object nào. Mỗi lần download object sau này đều cần đúng khóa đó.
Nếu mất khóa mã hóa, dữ liệu mã hóa bằng khóa đó không thể khôi phục.
Dùng SSE-C qua SDK
SSE-C được thiết lập theo từng request qua S3 API, ví dụ bằng SDK hoặc AWS CLI. Request dùng SSE-C phải gửi qua HTTPS.
Ví dụ Python sau upload và download object bằng khóa 256-bit:
import os
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://s3-hcm04.fptcloud.com",
aws_access_key_id="YOUR_ACCESS_KEY",
aws_secret_access_key="YOUR_SECRET_KEY",
)
key = os.urandom(32) # store this key safely; it is required to read the object
s3.put_object(Bucket="YOUR_BUCKET", Key="secret.txt", Body=b"Hello",
SSECustomerAlgorithm="AES256", SSECustomerKey=key)
obj = s3.get_object(Bucket="YOUR_BUCKET", Key="secret.txt",
SSECustomerAlgorithm="AES256", SSECustomerKey=key)
print(obj["Body"].read())
Cấu hình kết nối cho các ngôn ngữ khác, xem Tham chiếu SDK.