Hướng dẫn cấu hình CORS cho Bucket trong
Simple Storage của Gdata
Giới thiệu
CORS (Cross-Origin Resource Sharing) là cơ chế cho phép các ứng dụng Web truy cập dữ liệu từ một tên miền khác.
Trong Simple Storage của Gdata, CORS được sử dụng khi:
Website cần tải ảnh từ Bucket.
Ứng dụng Web cần đọc dữ liệu từ Object Storage.
Frontend cần gọi trực tiếp tới Bucket.
Hệ thống CDN hoặc Static Website sử dụng dữ liệu trong Bucket.
Nếu không cấu hình CORS, trình duyệt có thể chặn các yêu cầu truy cập dữ liệu từ Bucket mặc dù Object vẫn tồn tại và có quyền truy cập hợp lệ.
Điều kiện trước khi thực hiện
Đã đăng nhập Portal Cloud Gdata.
Đã tạo Bucket.
Có quyền quản trị Bucket.
Xác định Website hoặc ứng dụng cần truy cập dữ liệu.
Các thành phần trong cấu hình CORS
Allowed Origins
Xác định các tên miền được phép truy cập Bucket.
Ví dụ:
Dấu * cho phép mọi tên miền truy cập.
Allowed Headers
Xác định các HTTP Header được phép gửi tới Bucket.
Ví dụ:
Authorization
Content-Type
x-amz-date
Dấu * cho phép tất cả Header.
Allowed Methods
Xác định các phương thức HTTP được phép sử dụng.
Các phương thức hỗ trợ:
GET
PUT
POST
DELETE
HEAD
Expose Headers
Cho phép trình duyệt đọc các Header phản hồi từ Bucket.
Ví dụ:
ETag
Content-Length
Last-Modified
Max Age Seconds
Thời gian trình duyệt lưu cache cấu hình CORS.
Giá trị càng lớn sẽ giảm số lần trình duyệt gửi yêu cầu kiểm tra CORS.
Ví dụ:
300
600
3600
86400
Bước 1: Truy cập cấu hình CORS
Thực hiện:
Đăng nhập Portal Cloud Gdata.
Chọn menu Simple Storage.
Chọn Bucket cần cấu hình.
Truy cập tab Cấu hình CORS.

Hệ thống sẽ hiển thị:
Danh sách các cấu hình CORS hiện tại của Bucket.
Nếu Bucket chưa có cấu hình nào, hệ thống sẽ hiển thị trạng thái không có dữ liệu.
Bước 2: Thêm cấu hình CORS mới
Thực hiện:
Nhấn nút Thêm.


Hệ thống sẽ hiển thị:
Một dòng cấu hình mới với các trường:
Allowed Origins.
Allowed Headers.
Allowed Methods.
Expose Headers.
Max Age Seconds.
Người dùng có thể tạo một hoặc nhiều quy tắc CORS tùy theo nhu cầu sử dụng.
Bước 3: Khai báo tên miền được phép truy cập
Cấu hình Allowed Origins
Thực hiện:
Nhập tên miền được phép truy cập dữ liệu.
Ví dụ:
Hoặc:
Hoặc:
Lưu ý:
Dấu * cho phép tất cả Website truy cập Bucket.
Chỉ nên sử dụng trong các trường hợp dữ liệu công khai.
Bước 4: Khai báo Header được phép
Cấu hình Allowed Headers
Thực hiện:
Nhập các Header được phép gửi tới Bucket.
Ví dụ:
Authorization
Content-Type
x-amz-date
Hoặc:
Khuyến nghị:
Đối với các ứng dụng Web thông thường có thể sử dụng dấu * để đơn giản hóa cấu hình.
Bước 5: Chọn phương thức truy cập
Cấu hình Allowed Methods
Thực hiện:
Chọn các phương thức cần cho ứng dụng.
GET
Cho phép đọc dữ liệu.
Sử dụng khi:
Hiển thị ảnh.
Tải file.
Truy xuất Object.
PUT
Cho phép tải hoặc ghi đè dữ liệu.
Sử dụng khi:
Upload file từ trình duyệt.
POST
Cho phép gửi dữ liệu tới Bucket.
Sử dụng khi:
Upload thông qua biểu mẫu Web.
DELETE
Cho phép xóa Object.
Sử dụng khi:
Người dùng được phép xóa dữ liệu.
HEAD
Cho phép kiểm tra thông tin Object.
Sử dụng khi:
Kiểm tra dung lượng.
Kiểm tra trạng thái Object.
Bước 6: Khai báo Expose Headers
Thực hiện:
Nhập các Header phản hồi cần cho phép trình duyệt đọc.
Ví dụ:
ETag
Content-Length
Last-Modified
Nếu không có nhu cầu đặc biệt, có thể để trống.
Bước 7: Cấu hình thời gian cache
Max Age Seconds
Thực hiện:
Nhập thời gian cache.
Ví dụ:
3600
Giá trị này tương đương 1 giờ.
Ý nghĩa:
Trong thời gian này trình duyệt sẽ sử dụng lại thông tin CORS đã được xác thực mà không cần gửi yêu cầu kiểm tra mới.
Bước 8: Lưu cấu hình
Thực hiện:
Kiểm tra lại các thông tin cấu hình.
Nhấn nút Lưu thay đổi hoặc Cập nhật.
Hệ thống sẽ hiển thị:
Danh sách cấu hình CORS đã được lưu.
Bucket sẽ bắt đầu áp dụng chính sách CORS mới.
Ví dụ cấu hình phổ biến
Website chỉ đọc dữ liệu
Phù hợp cho:
Website hiển thị ảnh.
Tài liệu tải về.
Nội dung công khai.
Cấu hình:
Allowed Origins: *
Allowed Headers: *
Allowed Methods: GET
Max Age Seconds: 3600
Ứng dụng Upload File
Phù hợp cho:
Form Upload.
Ứng dụng quản lý tài liệu.
Hệ thống lưu trữ hình ảnh.
Cấu hình:
Allowed Origins: https://your-domain.com
Allowed Headers: *
Allowed Methods: GET, PUT, POST
Max Age Seconds: 3600
Ứng dụng quản trị
Phù hợp cho:
Hệ thống quản trị nội bộ.
Dashboard quản lý dữ liệu.
Cấu hình:
Allowed Origins: https://admin.your-domain.com
Allowed Headers: *
Allowed Methods: GET, PUT, POST, DELETE, HEAD
Max Age Seconds: 3600
Một số lưu ý quan trọng
Chỉ mở quyền cần thiết
Không nên cấp các phương thức PUT, POST hoặc DELETE nếu ứng dụng chỉ cần đọc dữ liệu.
Hạn chế sử dụng dấu *
Đối với dữ liệu quan trọng, nên khai báo chính xác tên miền được phép truy cập.
Kết hợp với Access Control
CORS không thay thế cơ chế phân quyền.
Ngay cả khi CORS cho phép truy cập, Object vẫn phải có quyền đọc phù hợp thông qua:
Access Control.
Bucket Policy.
Kiểm tra sau khi cấu hình
Sau khi lưu cấu hình, nên kiểm tra lại Website hoặc ứng dụng để xác nhận dữ liệu đã truy cập được từ trình duyệt.
Kết quả
Sau khi hoàn thành các bước trên, người dùng có thể:
Cho phép Website truy cập dữ liệu trong Bucket.
Cấu hình quyền truy cập theo từng tên miền.
Kiểm soát các phương thức GET, PUT, POST, DELETE và HEAD.
Tăng cường bảo mật khi tích hợp Object Storage với ứng dụng Web.
Hạn chế lỗi CORS khi sử dụng dữ liệu từ Simple Storage của Gdata.
