Sử dụng Managed Prefix Lists trong cấu hình Security Group

Việc cấu hình thủ công hàng chục, thậm chí hàng trăm dải IP của một hệ thống vào Security Group là không khả thi và rất khó bảo trì vì các dải IP này có thể thay đổi.

May mắn là AWS đã cung cấp một giải pháp đơn giản và hiệu quả cho việc này: AWS Managed Prefix Lists (Danh sách Tiền tố do AWS Quản lý).

Cách hoạt động:

  1. AWS Managed Prefix Lists là gì? Đây là các tập hợp các dải địa chỉ IP (CIDR) cho các dịch vụ của AWS (như CloudFront, S3, DynamoDB...). Quan trọng nhất là các danh sách này được AWS tự động duy trì và cập nhật.
  2. Sử dụng trong Security Group: Thay vì nhập từng dải IP vào ô "Source" (Nguồn) của một quy tắc trong Security Group, bạn chỉ cần tham chiếu đến ID của Managed Prefix List tương ứng.
  3. Lợi ích:
  • Đơn giản: Chỉ cần một mục duy nhất trong quy tắc Security Group để đại diện cho tất cả các IP của dịch vụ đó.
  • Luôn cập nhật: Bạn không cần lo lắng về việc theo dõi và cập nhật thủ công khi AWS thêm/bớt/thay đổi IP của CloudFront. AWS sẽ tự động cập nhật danh sách nền tảng, và Security Group của bạn sẽ luôn sử dụng danh sách mới nhất.
  • Vượt qua giới hạn quy tắc: Một tham chiếu đến prefix list chỉ tính là một quy tắc, giúp bạn không bị vượt quá giới hạn số lượng quy tắc cho mỗi Security Group.

Cách cấu hình:

  1. Đi đến Security Group của EC2 instance của bạn trong AWS Management Console.
  2. Chọn tab "Inbound rules" (Quy tắc Inbound) và nhấn "Edit inbound rules".
  3. Nhấn "Add rule".
  4. Chọn "Type" (Loại) là giao thức bạn muốn cho phép (ví dụ: HTTP, HTTPS, hoặc Custom TCP cho cổng ứng dụng của bạn).
  5. Trong ô "Source" (Nguồn):
  • Thay vì chọn "Custom" và nhập CIDR, hãy nhấp vào ô tìm kiếm.
  • Bắt đầu gõ "cloudfront".
  • Bạn sẽ thấy các Managed Prefix List liên quan đến CloudFront xuất hiện. Danh sách bạn thường cần để cho phép CloudFront kết nối đến Origin (EC2/ALB) của mình là com.amazonaws.global.cloudfront.origin-facing. Hãy chọn danh sách này. ID của nó (ví dụ: pl-xxxxxxxx) sẽ xuất hiện trong ô Source.
  • (Giải thích: com.amazonaws.global.cloudfront.origin-facing chứa các IP mà CloudFront sử dụng từ các Regional Edge Cache để giao tiếp với máy chủ gốc của bạn. Đây thường là cái bạn cần cho Security Group của Origin).
  1. Thêm mô tả (Description) nếu muốn (ví dụ: "Allow HTTPS from CloudFront").
  2. Nhấn "Save rules".

Các phương pháp khác (ít phổ biến hơn và phức tạp hơn):

  • Tự động hóa bằng Lambda: Bạn có thể viết một hàm Lambda được kích hoạt định kỳ hoặc dựa trên thông báo thay đổi IP của AWS (qua SNS). Hàm này sẽ lấy tệp ip-ranges.json, lọc ra IP CloudFront và tự động cập nhật Security Group bằng AWS SDK. Tuy nhiên, cách này phức tạp hơn nhiều so với việc sử dụng Managed Prefix List.

Kết luận:

Cách nhanh nhất, dễ nhất và được khuyến nghị nhất để cho phép truy cập từ CloudFront vào EC2 instance của bạn là sử dụng AWS Managed Prefix List com.amazonaws.global.cloudfront.origin-facing trong quy tắc Inbound của Security Group.