# 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. ```{admonition} 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 ```sh 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: ```sh 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`. ```sh aws configure set aws_access_key_id aws configure set aws_secret_access_key ``` ### 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ý. ```sh 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: ```sh 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: ```sh 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: ```sh 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: ```sh 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: ```sh 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 ``` ```{div} sd-fs-5 sd-text-primary 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.