Introduction to Security Groups
Security Groups là cơ sở của bảo mật mạng trong AWS. Chúng được sử dụng để kiểm soát cách thức cho phép lưu lượng mạng đi vào hoặc ra khỏi các EC2 Instances của chúng ta. Mỗi instance trong AWS có thể được liên kết với một hoặc nhiều Security Groups.
Mỗi Security Group chứa một tập hợp các luật cho phép (allow rules) quy định các giao thức, cổng và IP được phép truy cập vào instance đó. Các luật này chỉ cho phép lưu lượng mạng đi qua nếu chúng khớp với các quy tắc đã định trước. Một điểm quan trọng cần lưu ý là Security Groups chỉ chứa các luật cho phép, tức là chúng không bao gồm các luật từ chối (deny rules).
Luật trong Security Groups có thể được tham chiếu bằng địa chỉ IP hoặc bằng Security Groups khác. Nếu một Security Group được tham chiếu trong một luật khác, nó sẽ được xem như một danh sách các địa chỉ IP cho phép trong Security Group đó.
Security Groups là một phần quan trọng của bảo mật mạng trong AWS, chúng giúp đảm bảo rằng các EC2 Instances của chúng ta chỉ có thể giao tiếp với những nguồn lưu lượng mạng mà chúng ta định rõ và chấp nhận.
Security Groups Deeper Dive
Security Groups là một phần quan trọng trong bảo mật mạng trên AWS. Chúng được sử dụng để điều khiển cách mà traffic được phép vào hoặc ra khỏi các EC2 instances.
Security Groups có thể được xem như một “tường lửa” trên các EC2 instances. Chúng điều chỉnh quyền truy cập vào các cổng kết nối (ports) trên instance và xác định những địa chỉ IP được phép kết nối đến instance đó.
Security Groups chỉ chứa các quy tắc cho phép (allow rules), không có các quy tắc từ chối (deny rules). Các quy tắc trong Security Groups có thể tham chiếu đến địa chỉ IP hoặc đến một Security Group khác.
Security Groups điều chỉnh luồng mạng vào (inbound) và ra (outbound) của các EC2 instances. Nghĩa là chúng kiểm soát việc truy cập vào các dịch vụ trên instance từ các thiết bị khác trong mạng (inbound), và kiểm soát việc truy cập từ instance ra các dịch vụ bên ngoài (outbound).
Security Groups Diagram
Đây là sơ đồ mô tả cách Security Groups hoạt động để điều khiển việc truy cập vào EC2 Instances trên AWS.
Sơ đồ bao gồm các thành phần sau:
- EC2 Instances: Đại diện cho các máy ảo trên AWS.
- Security Groups: Là một bộ lọc mạng trên instance, quy định các luật truy cập vào và ra khỏi instance. Security Groups là một phần quan trọng của mô hình bảo mật có tên là Zero Trust Security, nghĩa là mọi kết nối đều bị chặn mặc định và chỉ cho phép những kết nối được xác định trước theo các quy tắc rõ ràng.
- Inbound rules: Quy định cách thức truy cập vào các EC2 Instances thông qua các cổng và phạm vi địa chỉ IP được chỉ định.
- Outbound rules: Quy định cách thức truy cập ra khỏi các EC2 Instances thông qua các cổng và phạm vi địa chỉ IP được chỉ định.
Khi một yêu cầu kết nối được gửi đến EC2 Instances, Security Groups sẽ kiểm tra yêu cầu này và xác định xem nó có phù hợp với các quy tắc được thiết lập trong các luật Inbound và Outbound. Nếu yêu cầu được phê duyệt, nó sẽ được chuyển đến EC2 Instances để xử lý, ngược lại nó sẽ bị chặn lại và không được phép truy cập vào EC2 Instances.
Tóm lại, Security Groups cho phép kiểm soát truy cập vào EC2 Instances trên AWS thông qua việc quản lý các luật truy cập vào và ra khỏi các instance.
Security Groups Good to know
Dưới đây là giải thích chi tiết về một số điều cần biết về Security Groups trên AWS:
- Security Groups có thể được gắn vào nhiều instances khác nhau trong cùng một VPC (Virtual Private Cloud).
- Security Groups được giới hạn chỉ áp dụng trong cùng một vùng địa lý (region) và VPC.
- Security Groups không nằm trong EC2 instance mà được quản lý bên ngoài. Nếu traffic bị chặn bởi Security Group, EC2 instance sẽ không nhận được nó.
- Tốt nhất nên tạo một Security Group riêng cho phép truy cập vào EC2 instance thông qua SSH.
- Nếu ứng dụng của bạn không thể truy cập được (time out), thì có thể là do vấn đề liên quan đến Security Group.
- Nếu ứng dụng của bạn hiển thị lỗi “connection refused”, thì đó có thể là lỗi của ứng dụng hoặc ứng dụng chưa được khởi động.
- Tất cả traffic đến (inbound traffic) mặc định đều bị chặn, và tất cả traffic đi (outbound traffic) mặc định đều được phép.
Referencing other security groups Diagram
Trong AWS, Security Group cũng có thể tham chiếu đến một Security Group khác. Điều này cho phép bạn mở ra các cấp độ truy cập phức tạp hơn cho các nhóm khác nhau của EC2 instances.
Trong diagram “Referencing other security groups”, chúng ta có hai Security Group: SG1 và SG2. SG1 được gán cho EC2 instance A và SG2 được gán cho EC2 instance B. SG2 được cấu hình để cho phép các yêu cầu truy cập đến cổng 80. Ngoài ra, SG1 được cấu hình để cho phép truy cập đến SG2 thông qua cổng 80.
Điều này có nghĩa là, chỉ có các yêu cầu truy cập đến cổng 80 được chuyển đến EC2 instance B từ EC2 instance A. Tất cả các yêu cầu truy cập đến các cổng khác sẽ bị chặn bởi SG1. Nếu chúng ta muốn cho phép các yêu cầu truy cập đến các cổng khác, chúng ta sẽ cần phải cấu hình thêm trong SG1 hoặc trong SG2.
Tham chiếu Security Group khác là một tính năng quan trọng và tiện lợi trong việc quản lý các quy tắc an ninh của mạng trong AWS.
Classic Ports to know
Các cổng (ports) thường sử dụng trong môi trường AWS EC2 Classic gồm:
- 22: Sử dụng giao thức SSH (Secure Shell) để đăng nhập vào các máy ảo Linux trên EC2
- 21: Sử dụng giao thức FTP (File Transfer Protocol) để tải lên các file vào các dịch vụ lưu trữ file
- 22: Sử dụng giao thức SFTP (Secure File Transfer Protocol) để tải lên các file sử dụng SSH
- 80: Sử dụng giao thức HTTP để truy cập các trang web không bảo mật
- 443: Sử dụng giao thức HTTPS để truy cập các trang web được bảo mật
- 3389: Sử dụng giao thức RDP (Remote Desktop Protocol) để đăng nhập vào các máy ảo Windows trên EC2.
Security Groups Hands On
Và mình đang có 1 instance đã khởi tạo ở bài trước, và nó đang ở trạng thái running.
Bây giờ nếu bạn vào Security Groups (1) bạn sẽ thấy có 2 Security Groups, 1 của mặc định được tạo ra và Security Groups còn lại được tạo ra khi chúng ta khởi chạy EC2 “My First Instance” ở trên.
NẾu bạn chọn Inbound rules (1) bạn sẽ thấy phần Inbound rules này có 2 quy tắc được tạo tự động khi chúng ta khởi chạy “My First Instance”.
Nếu bạn bấm vào Edit inbound rules ở hình trên, nó sẽ đẫn đến nơi chỉnh sửa, thêm , xoá các quy tắc của inbound rules.
Dưới đây là hình ảnh giả sử mình thêm 1 rule mới cho https.
Phần outbound rule cũng tương tự như inbound rule nên mình không nói lại nhé.