Bảo mật hệ thống là một vấn đề quan trọng, đặc biệt là trong môi trường đám mây AWS. Việc bảo vệ dữ liệu và ứng dụng khỏi các mối đe dọa là điều cần thiết để đảm bảo tính ổn định và hiệu quả hoạt động. Trong Series về chủ đề về bảo mật trên AWS này Nghi sẽ lần lượt giới thiệu một số giải pháp phổ biến để tăng cường security trên AWS để bảo vệ hệ thống web.
Cụ thể ở bài đầu tiên này sẽ giới thiệu với các bạn giải pháp: Cloudfront + WAF
WAF
WAF là viết tắt của “Web Application Firewall”
WAF là một dịch vụ tường lửa ứng dụng web cho phép bạn giám sát các yêu cầu web được chuyển tiếp đến một API của Amazon API Gateway, CloudFront, hoặc một Application Load Balancer.
Các chức năng chính của WAF:
- Lọc và Kiểm Soát Truy Cập: WAF có khả năng lọc lưu lượng truy cập web, quản lý các yêu cầu và phản hồi dựa trên các quy tắc được đặt ra để ngăn chặn các loại tấn công như SQL injection, cross-site scripting (XSS), và các mối đe dọa khác.
- Bảo Vệ chống Các Loại Tấn Công Phổ Biến: WAF cung cấp các biện pháp bảo vệ chống lại các loại tấn công mà các ứng dụng web thường gặp phải, giúp ngăn chặn việc lợi dụng lỗ hổng bảo mật.
- Quản Lý Điều Khiển Truy Cập: WAF cho phép quản trị viên xác định quy tắc và chính sách để kiểm soát truy cập vào các tài nguyên web cụ thể, bảo vệ chúng khỏi các hoạt động không mong muốn hoặc đe dọa.
- Phân Tích và Báo Cáo: WAF thường cung cấp khả năng phân tích lưu lượng web và tạo báo cáo về các sự kiện an ninh, giúp người quản trị hiểu rõ về các mối đe dọa và tình trạng bảo mật của hệ thống.
Cloudfront
Amazon CloudFront là dịch vụ CDN (Content Delivery Network) của Amazon Web Services (AWS). Nó cung cấp một cách hiệu quả để phân phối nội dung và tăng tốc độ tải trang web bằng cách đưa nội dung gần hơn với người dùng cuối thông qua việc triển khai một mạng các edge locations (điểm đáp ứng) toàn cầu.Một số chức năng chính của IAM bao gồm:
- Phân Phối Nội Dung Tĩnh và Động: CloudFront cho phép bạn phân phối nội dung tĩnh (như hình ảnh, CSS, JavaScript) và nội dung động (như trang web được tạo động) thông qua nhiều edge locations trên thế giới.
- Tăng Tốc Độ Tải Trang Web: Bằng cách đặt nội dung ở các điểm đáp ứng gần người dùng, CloudFront giảm độ trễ và tăng tốc độ tải trang web, cải thiện trải nghiệm người dùng.
- Quản Lý Băng Thông: CloudFront giúp quản lý và tối ưu hóa việc sử dụng băng thông, giảm áp lực đối với origin server và giảm chi phí truy cập.
- Chuyển Hướng Tùy Chọn: Bạn có thể định tuyến yêu cầu của người dùng đến nhiều origin server khác nhau, bao gồm máy chủ web, Amazon S3 buckets, EC2 instances và các origin khác.
- Bảo Mật: CloudFront hỗ trợ nhiều tính năng bảo mật, bao gồm SSL/TLS để bảo vệ dữ liệu trong khi truyền tải, ký số và mã hóa dữ liệu.
- Phân Phối Video và Stream Trực Tiếp: Nó cung cấp tính năng phân phối video và stream trực tiếp với các tính năng như adaptive bitrate streaming (ABR) để cung cấp trải nghiệm xem video mượt mà.
- Quản Lý Cache: Bạn có thể quản lý cơ chế cache trên CloudFront để kiểm soát việc lưu trữ đệm nội dung tại các edge location.
Hướng dẫn xây dựng EC2 + Cloudfront + WAF
Khi sử dụng EC2 để làm web system, bạn có thể tăng thêm bảo mật bằng cách cấu hình security group (service mặc định gắn với EC2) và thêm Cloudfront + WAF.
B1: Cấu hình Security group. Tại giao diện trang Security group, ta cấu hình chỉ mở port cho những IP cần thiết.
B2: Tạo cloudfront. Ta vào trang Cloudfront, tạo 1 Distributions mới bằng cách nhấn vào nút Create distribution
Tại trang Create distribution, ta nhập thông tin Origin là nơi Cloudfront sẽ truy xuất dữ liệu để gởi đến người dùng. Origin có thể là 1 EC2 (web server), S3 hoặc 1 service khác.
Nếu dùng origin là EC2, ta nhập thông tin origin là Public IPv4 DNS của EC2.
Ở phần Default cache behavior, ta sẽ định nghĩa cách mà cloudfront điều hướng xử lý các request.
Ở phần Settings, ta chọn các thông tin của distribution. Trong đó mục Custom SSL certificate sẽ được tạo từ trước ở service Certificate Manager (region us-east-1) trên AWS
Sau khi nhập đầy đủ thông tin, ta nhấn Create distribution để tạo distribution cloudfront theo cấu hình vừa khai báo.
B3: ta sẽ tạo WAF cho cloudfront để quản lý những truy cập vào hệ thống
Tại trang WAF & Shield, chọn mục Web ACLs, sau đó chọn region cho Web ACLs là Global (Cloudfront), nhấn Create web ACL
Ở trang Create web ACL, ta nhập các thông tin như Name và resource cloudfront sẽ được add vào WAF
Nhấn Next, ta sẽ tới trang tạo rules cho WAF. Ở trang này, ta có thể cấu hình các rule bảo mật cho hệ thống, quản lý traffic hoặc ngăn chặn các cuộc tấn công theo mã nguồn có sẵn.
Ở bài viết này, ta sẽ tạo rules chặn toàn bộ IP từ US truy cập vào hệ thống.
Sau khi nhấn Add rule, ta sẽ tới trang quản lý rules. Ở bài viết này action của WAF khi có request không thuộc bất kì rule nào là: cho phép truy cập vào hệ thống
Tại trang Configure metrics, ta có thể tích chọn đẩy các thông số rules allow và block lên cloudwatch.
Sau khi cấu hình xong các rules cho web ACL, ta review lại các thông tin và nhấn Create web ACL.
Tại giao diện web ACL được tạo thành công, ta có thể theo dõi các dashboard request vào hệ thống.
Vậy là các bạn đã cấu hình thành công hệ thống EC2 (Server) kết hợp với Cloudfront và WAF. Với combo này các bạn có thể quản lý request vào hệ thống, xử lý các cuộc tấn công DDOS và các kiểu tấn công khác.
Tạm kết
Việc sử dụng kết hợp Cloudfront và WAF mang lại nhiều lợi ích cho việc bảo mật hệ thống web trên AWS. Cloudfront giúp tăng tốc độ tải trang web và giảm tải cho server, trong khi WAF cung cấp các quy tắc bảo mật để ngăn chặn các cuộc tấn công và truy cập trái phép. Bằng cách triển khai các giải pháp này, bạn có thể nâng cao đáng kể mức độ bảo mật cho hệ thống web của mình.