Chính Sách Tường Lửa VPC Google Cloud – Áp Dụng Quy Tắc Trên Nhiều Mạng VPC
Trong hầu hết các trường hợp, chúng ta thường tạo các quy tắc tường lửa trong từng mạng VPC riêng lẻ. Nhưng nếu bạn muốn áp dụng một chính sách tường lửa tập trung cho nhiều VPC thì sao?
Giới thiệu về Chính Sách Tường Lửa VPC
Chính sách tường lửa VPC là một tính năng cho phép bạn tạo một chính sách duy nhất và gán nó cho nhiều VPC, từ đó thực thi các quy tắc nhất quán trên nhiều môi trường khác nhau.
Mục tiêu của bài hướng dẫn
Trong bài hướng dẫn này, chúng ta sẽ:
- Khởi chạy các máy ảo (VM) trong hai VPC khác nhau (vpc1-auto và vpc2-custom).
- Tạo một chính sách tường lửa cho phép lưu lượng HTTP (cổng 80).
- Áp dụng chính sách này cho cả hai VPC.
- Xác minh rằng cả hai VM đều có thể phục vụ ứng dụng qua cổng 80.
Bước 1: Chuẩn bị môi trường
- VM1: Trong vpc1-auto (VPC chế độ tự động).
- VM2: Trong vpc2-custom (VPC chế độ tùy chỉnh).
- Chính sách Tường lửa: fw-policy-allow-80-in-vpc1-and-vpc2.
- Mục tiêu: Sử dụng một chính sách tường lửa duy nhất để cho phép truy cập cổng 80 cho cả hai VM.
Bước 2: Tạo các máy ảo trong vpc1-auto và vpc2-custom
Chúng ta sẽ triển khai máy chủ web Nginx trên cả hai VM bằng cách sử dụng một tập lệnh khởi động.
bash
#!/bin/bash
sudo apt install -y telnet
sudo apt install -y nginx
sudo systemctl enable nginx
sudo chmod -R 755 /var/www/html
HOSTNAME=$(hostname)
sudo echo "<!DOCTYPE html> <html>
<body style='background-color:rgb(250, 210, 210);'>
<h1>Chào mừng đến với Latchu@DevOps - WebVM App1 </h1>
<p><strong>Tên máy chủ VM:</strong> $HOSTNAME</p>
<p><strong>Địa chỉ IP VM:</strong> $(hostname -I)</p>
<p><strong>Phiên bản ứng dụng:</strong> V1</p>
<p>Nền tảng Google Cloud - Các bản demo</p>
</body></html>" | sudo tee /var/www/html/index.html
Tạo VM:
bash
# Thiết lập dự án
gcloud config set project gcpdemos
# VM trong vpc1-auto
gcloud compute instances create myvm6-vpc1-auto \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface=subnet=vpc1-auto \
--metadata-from-file=startup-script=nginx-webserver.sh
# VM trong vpc2-custom
gcloud compute instances create myvm6-vpc2-custom \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface=subnet=mysubnet1 \
--metadata-from-file=startup-script=nginx-webserver.sh
Quan sát (Trước khi áp dụng chính sách tường lửa):
- Truy cập HTTP (cổng 80) → ❌ Bị chặn
- Bởi vì không có quy tắc tường lửa nào tồn tại trong cả hai VPC.
Bước 3: Tạo Chính sách Tường lửa Mạng
Đi tới Network Security → Cloud NGFW → Firewall Policies → CREATE FIREWALL POLICY.
- Tên chính sách: fw-policy-allow-80-in-vpc1-and-vpc2
- Mô tả: Cho phép cổng 80 trong vpc1-auto và vpc2-custom.
- Phạm vi triển khai: Toàn cầu.
Thêm quy tắc:
- Độ ưu tiên: 100
- Mô tả: Quy tắc cho phép HTTP cho vpc1-auto và vpc2-custom.
- Hướng: Ingress.
- Hành động khi khớp: Cho phép.
- Loại mục tiêu: Tất cả các máy ảo trong mạng.
- Nguồn: IPv4 → 0.0.0.0/0.
- Giao thức/Cổng: TCP: 80.
Liên kết chính sách với các VPC:
- Nhấp vào ASSOCIATE → chọn vpc1-auto và vpc2-custom.
Bước 4: Xác minh Truy cập Ứng dụng
bash
# Liệt kê các máy ảo
gcloud compute instances list
# Kiểm tra cả hai VM
telnet VM1_EXTERNAL_IP 80
telnet VM2_EXTERNAL_IP 80
curl VM1_EXTERNAL_IP
curl VM2_EXTERNAL_IP
Quan sát (Sau khi áp dụng chính sách tường lửa):
- Truy cập HTTP (cổng 80) → ✅ Được phép.
- Cả hai VM trong các VPC khác nhau đều có thể truy cập với một chính sách tường lửa duy nhất.
Bước 5: Dọn dẹp
bash
# Xóa các máy ảo
gcloud compute instances delete myvm6-vpc1-auto --zone=us-central1-a
gcloud compute instances delete myvm6-vpc2-custom --zone=us-central1-a
# Xóa chính sách tường lửa
# Lưu ý: Phải xóa liên kết trước khi xóa chính sách.
Phân Tích Thực Tế
Hãy tưởng tượng điều này giống như một nhóm IT của công ty áp dụng một chính sách bảo mật trung tâm cho nhiều chi nhánh văn phòng.
Thay vì tạo quy tắc tại mỗi chi nhánh (VPC), họ tạo một chính sách toàn cầu và gán nó ở mọi nơi.
Tóm tắt
- Các quy tắc tường lửa VPC bị giới hạn trong một VPC duy nhất.
- Chính sách tường lửa mạng cho phép bạn tạo các quy tắc trung tâm, có thể tái sử dụng.
- Bạn có thể thực thi các kiểm soát truy cập vào và ra nhất quán trên nhiều VPC.
Các Thực Hành Tốt Nhất
- Luôn kiểm tra hiệu suất của chính sách tường lửa sau khi triển khai.
- Đảm bảo rằng các quy tắc không xung đột với nhau.
Các Cạm Bẫy Thường Gặp
- Không có quy tắc nào gây ra sự cố truy cập.
- Quên xóa liên kết giữa chính sách và các VPC trước khi xóa chính sách có thể dẫn đến lỗi.
Mẹo Hiệu Suất
- Theo dõi lưu lượng truy cập để tối ưu hóa các quy tắc tường lửa.
- Sử dụng công cụ giám sát để phát hiện sớm các vấn đề.
Giải Quyết Vấn Đề
- Nếu không thể truy cập ứng dụng, hãy kiểm tra lại quy tắc tường lửa và đảm bảo rằng chúng được áp dụng đúng cách.
Câu Hỏi Thường Gặp (FAQ)
1. Chính sách tường lửa VPC có thể áp dụng cho bao nhiêu VPC?
Có thể áp dụng cho nhiều VPC cùng một lúc.
2. Làm thế nào để kiểm tra các quy tắc tường lửa của tôi?
Sử dụng lệnh gcloud compute firewall-rules list để liệt kê các quy tắc hiện tại.
3. Tôi có thể gán nhiều chính sách cho một VPC không?
Không, mỗi VPC chỉ có thể gán một chính sách tường lửa tại một thời điểm.