Bài 4: Các dịch vụ mạng trên AWS – Phần 2: AWS Security Groups với AWS Network Access Control List (NACL)


Security group (SG)
Security groups trong AWS là một thành phần quan trọng để kiểm soát luồng dữ liệu vào và ra từ các tài nguyên trong virtual private cloud (VPC). Bằng cách chỉ định các cổng và giao thức được phép cho lưu lượng dữ liệu vào và ra, security groups hoạt động như một tường lửa giúp bảo vệ các tài nguyên của bạn.



Các đặc tính của security groups:

  • Khi tạo một security group, bạn cần cung cấp tên và mô tả cho nó. Tên của security group phải là duy nhất trong VPC.
  • Tên và mô tả có thể có độ dài tối đa là 255 ký tự và bao gồm các ký tự a-z, A-Z, 0-9, khoảng trắng và các ký tự đặc biệt như ._-:/()#,@[]+=&;{}!$*.
  • Security groups là stateful, tức là khi bạn gửi một yêu cầu từ một instance, traffic phản hồi cho yêu cầu đó sẽ được phép đến instance đó bất kể quy tắc (rule) inbound security group. Các phản hồi cho lưu lượng dữ liệu vào được cho phép rời khỏi instance mà không bị ảnh hưởng bởi quy tắc (rule) outbound.

Các lời khuyên tốt nhất:

  • Chỉ cho phép các IAM principals cụ thể tạo và sửa đổi security groups.
  • Tạo số lượng security groups tối thiểu cần thiết để giảm thiểu rủi ro sai sót. Sử dụng mỗi security group để quản lý truy cập đến các tài nguyên có chức năng và yêu cầu bảo mật tương tự.
  • Khi thêm inbound rules cho các cổng 22 (SSH) hoặc 3389 (RDP) để truy cập vào các instance EC2 của bạn, chỉ cho phép các phạm vi địa chỉ IP cụ thể. Nếu bạn chỉ định 0.0.0.0/0 (IPv4) và ::/ (IPv6), điều này cho phép bất kỳ ai truy cập vào các instance của bạn từ bất kỳ địa chỉ IP nào sử dụng giao thức được chỉ định.
  • Không mở các phạm vi cổng lớn. Hãy đảm bảo rằng truy cập qua từng cổng được giới hạn đối với các nguồn hoặc điểm đến cần thiết.
  • Cân nhắc tạo network ACLs với các quy tắc (rule) tương tự như security groups để thêm một lớp bảo mật bổ sung cho VPC của bạn. Để biết thêm thông tin về sự khác biệt giữa security groups và network ACLs, xem so sánh giữa security groups và network ACLs.
  • Các quy tắc (rule) bảo mật tốt nhất cho security groups bao gồm việc chỉ cho phép truy cập đến các tài nguyên cần thiết, tạo các rule cho từng cổng một và sử dụng các nguồn và điểm đến cụ thể. Bạn cũng nên thường xuyên kiểm tra các security group của mình để đảm bảo tính bảo mật của chúng.
  • Ngoài ra, bạn cũng nên tìm hiểu và thực hiện các giải pháp bảo mật khác trong AWS như sử dụng IAM roles và policies, cấu hình SSL/TLS cho các dịch vụ, sử dụng AWS WAF để bảo vệ ứng dụng web của mình, và đảm bảo tính toàn vẹn của dữ liệu của mình bằng cách sử dụng các dịch vụ như Amazon S3 và Amazon Glacier.

Security group rules

Các quy tắc (rule) của Security Group kiểm soát lưu lượng mạng đến (inbound traffic) được phép đến các tài nguyên được liên kết với Security Group. Các quy tắc (rule) cũng kiểm soát lưu lượng mạng đi (outbound traffic) được phép rời khỏi các tài nguyên đó.

Bạn có thể thêm hoặc xóa quy tắc (rule) cho Security Group (được gọi là cho phép hoặc thu hồi truy cập inbound hoặc outbound). Một quy tắc (rule) áp dụng cho inbound traffic (ingress) hoặc outbound traffic (egress). Bạn có thể cấp quyền truy cập cho một nguồn hoặc đích cụ thể.

Các đặc điểm của các quy tắc (rule) Security Group bao gồm:

  • Bạn có thể chỉ định quy tắc (rule) cho phép (allow rules), nhưng không cho phép quy tắc (rule) từ chối (deny rules).
  • Khi bạn tạo một Security Group lần đầu tiên, nó không có bất kỳ quy tắc (rule) inbound nào. Do đó, không cho phép lưu lượng inbound truy cập cho đến khi bạn thêm các quy tắc (rule) inbound vào Security Group.
  • Khi bạn tạo một Security Group lần đầu tiên, nó có một quy tắc (rule) outbound cho phép tất cả lưu lượng outbound rời khỏi tài nguyên. Bạn có thể xóa quy tắc (rule) này và thêm các quy tắc (rule) outbound cho phép chỉ lưu lượng outbound cụ thể. Nếu Security Group của bạn không có quy tắc (rule) outbound, không cho phép lưu lượng outbound.
  • Khi bạn liên kết nhiều Security Groups với một tài nguyên, các quy tắc (rule) từ mỗi Security Group được tổng hợp để tạo thành một bộ quy tắc (rule) đơn để xác định xem có cho phép truy cập hay không.
  • Khi bạn thêm, cập nhật hoặc xóa các quy tắc (rule), các thay đổi của bạn sẽ được áp dụng tự động cho tất cả các tài nguyên liên quan đến Security Group. Tuy nhiên, hiệu ứng của một số thay đổi quy tắc (rule) có thể phụ thuộc vào cách theo dõi lưu lượng. Để biết thêm thông tin, xem Connection tracking trong Amazon EC2 User Guide for Linux Instances.
  • Khi bạn tạo một quy tắc (rule) Security Group, AWS sẽ gán một ID duy nhất cho quy tắc (rule) đó. Bạn có thể sử dụng ID của một quy tắc (rule) khi bạn sử dụng API hoặc CLI để sửa đổi hoặc xóa quy tắc (rule).

Các thành phần của một quy tắc (rule) Security Group bao gồm:

  • Giao thức: Giao thức được phép truy cập. Các giao thức phổ biến nhất là 6 (TCP), 17 (UDP) và 1 (ICMP).
  • Phạm vi cổng: Đối với TCP, UDP hoặc một giao thức tùy chỉnh, phạm vi các cổng được phép truy cập. Bạn có thể chỉ định một số cổng duy nhất (ví dụ: 22) hoặc phạm vi cổng (ví dụ: 7000-8000).
  • Loại và mã ICMP: Đối với ICMP, loại và mã ICMP. Ví dụ, sử dụng loại 8 cho ICMP Echo Request hoặc loại 128 cho ICMPv6 Echo Request.
  • Nguồn hoặc đích: Nguồn (quy tắc (rule) inbound) hoặc đích (quy tắc (rule) outbound) cho lưu lượng truy cập. Chỉ định một trong các loại sau đây:
  • Một địa chỉ IPv4 duy nhất. Bạn phải sử dụng độ dài tiền tố /32.
  • Một địa chỉ IPv6 duy nhất. Bạn phải sử dụng độ dài tiền tố /128. Ví dụ: 2001:db8:1234:1a00::123/128.
  • Một phạm vi địa chỉ IPv4, trong ký hiệu CIDR block.
  • Một phạm vi địa chỉ IPv6, trong ký hiệu CIDR block. Ví dụ: 2001:db8:1234:1a00::/64.
  • ID của một danh sách tiền tố (prefix list). Ví dụ: pl-1234abc1234abc123. Để biết thêm thông tin, xem Group CIDR blocks using managed prefix lists.
  • ID của một Security Group. Ví dụ: sg-1234567890abcdef0. Để biết thêm thông tin, xem Security group referencing.
  • (Tùy chọn) Mô tả: Bạn có thể thêm mô tả cho quy tắc (rule), giúp bạn nhận ra nó sau này. Mô tả có thể dài tối đa 255 ký tự. Các ký tự được cho phép là a-z, A-Z, 0-9, khoảng trắng và dấu chấm câu cơ bản.

Ngoài các đặc điểm trên, các quy tắc (rule) Security Group còn có thể được áp dụng theo thứ tự ưu tiên. Điều này có nghĩa là khi có nhiều quy tắc (rule) được áp dụng cho một giao thức, phạm vi cổng và địa chỉ nguồn hoặc đích, quy tắc (rule) có ưu tiên cao hơn sẽ được áp dụng trước. Các quy tắc (rule) được xác định trước sẽ có ưu tiên cao hơn, do đó, nếu có xung đột giữa các quy tắc (rule), quy tắc (rule) được định nghĩa trước sẽ được áp dụng.

Các quy tắc (rule) Security Group cũng có thể được áp dụng cho nhiều loại tài nguyên khác nhau, bao gồm các máy chủ EC2, các dịch vụ RDS, Elasticsearch, Redis và nhiều dịch vụ khác. Do đó, chúng rất hữu ích trong việc kiểm soát lưu lượng truy cập đến các tài nguyên khác nhau trong một mạng AWS.

Network Access Control List (ACL)

Một Access Control List (ACL) của mạng cho phép hoặc từ chối một số lượng giao thông cụ thể được truyền vào hoặc ra khỏi một subnet. Bạn có thể sử dụng mặc định ACL của mạng cho VPC của bạn hoặc tạo một ACL tùy chỉnh cho VPC của bạn với các quy tắc (rule) tương tự như các quy tắc (rule) cho các nhóm bảo mật để thêm một lớp bảo mật bổ sung cho VPC của bạn.

Các khái niệm cơ bản về Network ACL

  • Sau đây là những điều cơ bản mà bạn cần phải biết về Network ACL:
  • VPC của bạn mặc định đi kèm với một mạng ACL có thể sửa đổi. Theo mặc định, nó cho phép tất cả lưu lượng IPv4 vào và ra, và nếu thích hợp, lưu lượng IPv6.
  • Bạn có thể tạo một ACL tùy chỉnh và liên kết nó với một subnet để cho phép hoặc từ chối lưu lượng cụ thể vào hoặc ra khỏi subnet.
  • Mỗi subnet trong VPC của bạn phải được liên kết với một Network ACL. Nếu bạn không liên kết rõ ràng một subnet với một Network ACL, subnet sẽ tự động được liên kết với Network ACL mặc định.
  • Bạn có thể liên kết một Network ACL với nhiều subnet. Tuy nhiên, một subnet chỉ có thể được liên kết với một Network ACL vào một thời điểm. Khi bạn liên kết một Network ACL với một subnet, liên kết trước đó sẽ bị xóa bỏ.
  • Một Network ACL có các quy tắc (rule) vào và ra. Mỗi quy tắc (rule) có thể cho phép hoặc từ chối lưu lượng. Mỗi quy tắc (rule) có một số từ 1 đến 32766. Chúng tôi đánh giá các quy tắc (rule) theo thứ tự, bắt đầu với quy tắc (rule) có số thấp nhất, khi quyết định cho phép hoặc từ chối lưu lượng. Nếu lưu lượng phù hợp với một quy tắc (rule), quy tắc (rule) sẽ được áp dụng và chúng tôi sẽ không đánh giá bất kỳ quy tắc (rule) bổ sung nào. Chúng tôi khuyến khích bạn bắt đầu bằng cách tạo các quy tắc (rule) tăng dần (ví dụ, tăng dần 10 hoặc 100) để bạn có thể chèn quy tắc (rule) mới sau này. nếu cần thiết.
  • Các quy tắc (rule) trong Network ACL được áp dụng khi lưu lượng vào và ra khỏi subnet, không phải khi nó được định tuyến trong một subnet.
  • Network ACL là stateless, có nghĩa là các phản hồi cho lưu lượng vào được cho phép sẽ tuân theo các quy tắc (rule) cho lưu lượng ra (và ngược lại).
  • Bạn có thể sử dụng Network ACL để kiểm soát lưu lượng vào hoặc ra của một subnet trong VPC của bạn. Ví dụ, bạn có thể sử dụng Network ACL để chặn các kết nối đến máy chủ web của bạn từ một số địa chỉ IP đáng ngờ hoặc giới hạn lưu lượng ra khỏi subnet để ngăn chặn việc truy cập không được ủy quyền đến các máy chủ bên ngoài.

Network ACL rules

Mỗi quy tắc (rule) trong Network ACL bao gồm các thành phần sau:

  • Số thứ tự quy tắc (rule). Các quy tắc (rule) được áp dụng theo thứ tự từ số thấp đến số cao. Khi một quy tắc (rule) khớp với traffic, quy tắc (rule) đó sẽ được áp dụng ngay lập tức, bất kể có quy tắc (rule) có số cao hơn mà mâu thuẫn với nó hay không.
  • Loại traffic. Loại traffic được định nghĩa, ví dụ như SSH hoặc tất cả traffic hoặc một dải tùy chỉnh.
  • Giao thức. Giao thức được sử dụng, ví dụ như TCP hoặc UDP. Nếu sử dụng giao thức ICMP, người dùng có thể chỉ định một hoặc nhiều kiểu và mã ICMP.
  • Port range. Các cổng kết nối hoặc dải cổng kết nối dành cho traffic, ví dụ như cổng 80 cho traffic HTTP.
  • Nguồn. [Chỉ áp dụng cho quy tắc (rule) inbound] Nguồn của traffic, được định nghĩa bởi CIDR range.
  • Đích. [Chỉ áp dụng cho quy tắc (rule) outbound] Đích của traffic, được định nghĩa bởi CIDR range.
  • Cho phép/từ chối. Quyết định cho phép hoặc từ chối traffic được định nghĩa trong quy tắc (rule).

Khi người dùng thêm hoặc xóa một quy tắc (rule) trong Network ACL, các thay đổi sẽ được tự động áp dụng cho các subnet mà nó liên kết đến. Nếu người dùng sử dụng các công cụ dòng lệnh hoặc API của Amazon EC2 để thêm quy tắc (rule), CIDR range sẽ được tự động chuyển đổi sang dạng chuẩn. Ví dụ, nếu người dùng chỉ định 100.68.0.18/18 cho CIDR range, chúng tôi sẽ tạo ra một quy tắc (rule) với CIDR range là 100.68.0.0/18.

Sự khác biệt cơ bản của AWS Security Groups và AWS Network Access Control List (NACL):

  • Phạm vi kiểm soát: Security Groups kiểm soát truy cập vào các trường hợp EC2, trong khi NACLs kiểm soát truy cập vào tất cả các tài nguyên mạng.
  • Kiểm soát truy cập: Security Groups là một tập hợp các quy tắc cho phép hoặc từ chối truy cập vào các trường hợp EC2 dựa trên địa chỉ IP, cổng và giao thức. NACLs, trên một phương diện khác, là một danh sách các quy tắc cho phép hoặc từ chối truy cập vào các địa chỉ IP hoặc phạm vi địa chỉ IP cụ thể.
  • Cấu hình: Security Groups được cấu hình tại mức trường hợp EC2, trong khi NACLs được cấu hình tại mức mạng.
  • Thứ tự áp dụng quy tắc: Security Groups áp dụng quy tắc từ trên xuống dưới, trong khi NACLs áp dụng quy tắc từ trái sang phải.
  • Số lượng quy tắc: Security Groups có thể chứa hơn 500 quy tắc, trong khi NACLs hỗ trợ tối đa 200 quy tắc.
  • Hiệu suất: Security Groups được xử lý tại mức trường hợp EC2, làm cho chúng hiệu quả hơn NACLs, được xử lý tại mức mạng.
  • Ưu tiên: Security Groups có thể thiết lập ưu tiên cho các quy tắc, trong khi NACLs không có tính năng này.
  • Mức độ an ninh: Security Groups là một lớp bảo vệ bổ sung cho tường lửa máy chủ, trong khi NACLs được sử dụng để bảo vệ tất cả các phần của mạng.
  • Quản lý: Security Groups được quản lý tại mức trường hợp EC2, trong khi NACLs được quản lý tại mức mạng.
  • Tính linh hoạt: Security Groups linh hoạt hơn NACLs trong xử lý các trường hợp truy cập mạng phức tạp và các tình huống bảo mật khác.

Create a website or blog at WordPress.com