Hướng Dẫn Sử Dụng SSE-C và SSE-S3 Trên Sun S3¶
S3 hỗ trợ mã hóa phía server (Server-Side Encryption - SSE) để bảo vệ dữ liệu khi lưu trữ trên hệ thống. Có hai loại mã hóa phổ biến:
SSE-S3: S3 tự động tạo và quản lý key để mã hóa dữ liệu.
SSE-C: Người dùng tự quản lý khóa mã hóa (customer-provided encryption keys).
Hướng dẫn này sẽ giúp người dùng kết nối, tải lên dữ liệu và kiểm tra mã hóa trên S3 với SSE-S3 và SSE-C.
Pre-condition
Tạo Pool
Tạo Bucket
Tạo Access cho Bucket
Các bước thực hiện:¶
1. Cài Đặt AWS CLI¶
sudo apt install awscli # Ubuntu/Debian
brew install awscli # macOS
Sau khi cài đặt, kiểm tra phiên bản bằng lệnh:
aws --version
2. Cấu Hình AWS CLI¶
Người dùng cần thiết lập AWS CLI để sử dụng endpoint s3.sunteco.app
.
aws configure set aws_access_key_id <accessKey>
aws configure set aws_secret_access_key <secretKey>
3. Upload File Với SSE-S3¶
Khi sử dụng SSE-S3, S3 sẽ tự động mã hóa file với key do hệ thống quản lý.
aws s3api put-object --bucket my-bucket --key myfile.txt --body ./myfile.txt --endpoint-url https://s3.sunteco.app --server-side-encryption AES256
Kiểm tra thông tin object để xác nhận mã hóa:
aws s3api head-object --bucket my-bucket --key myfile.txt --endpoint-url https://s3.sunteco.app
Người dùng sẽ thấy phần "ServerSideEncryption": "AES256"
trong output.
4. Upload File Với SSE-C¶
Với SSE-C, người dùng cần tự cung cấp một khóa mã hóa 32-byte (dưới dạng base64). người dùng có thể tạo key bằng OpenSSL:
openssl rand -base64 32
Ví dụ, giả sử key tạo ra là:
w9rlGvDW8sJZnOyE7nHqFQzPqMZbNnLeEjX1c8ZXfzE=
Khi upload file với SSE-C, người dùng cần cung cấp khóa này cùng với các header thích hợp:
aws s3api put-object --bucket my-bucket --key mykey --body ./myfile.txt
--sse-customer-algorithm AES256 --sse-customer-key "w9rlGvDW8sJZnOyE7nHqFQzPqMZbNnLe" --profile $profile --endpoint-url https://s3.sunteco.app
Kiểm tra xem file có được mã hóa hay không:
aws s3api head-object --bucket my-bucket --key myfile.txt --endpoint-url https://s3.sunteco.app
Nếu sử dụng SSE-C, output sẽ không chứa "ServerSideEncryption"
vì S3 không lưu khóa mã hóa của người dùng.
5. Tải Xuống File SSE-C¶
Khi tải file được mã hóa bằng SSE-C, người dùng cần cung cấp cùng một khóa:
aws s3api put-object --bucket mybucket --key myfile.txt --body ./myfile.txt
--sse-customer-algorithm AES256 --sse-customer-key "w9rlGvDW8sJZnOyE7nHqFQzPqMZbNnLe" --endpoint-url https://s3.sunteco.app
Result
Người dùng có thể chọn phương pháp phù hợp với nhu cầu bảo mật cho tài nguyên và dịch vụ.
SSE-S3: Dễ sử dụng, không cần quản lý khóa, chỉ cần thêm
--sse AES256
khi upload.SSE-C: Cần tự quản lý khóa mã hóa và cung cấp khi upload/download.