Giới hạn số lần yêu cầu bằng Cloud Armor

1. Giới thiệu

Tính năng cân bằng tải HTTP(S) của Google Cloud được triển khai ở rìa mạng của Google tại các điểm hiện diện (POP) của Google trên khắp thế giới. Lưu lượng truy cập của người dùng được chuyển đến một trình cân bằng tải HTTP(S) sẽ đi vào POP gần người dùng nhất, sau đó được cân bằng tải trên mạng lưới toàn cầu của Google đến phần phụ trợ gần nhất có đủ dung lượng.

Cloud Armor là hệ thống phát hiện tường lửa cho ứng dụng web (WAF) và tấn công từ chối dịch vụ phân tán (DDoS) của Google. Cloud Armor được liên kết chặt chẽ với Trình cân bằng tải HTTP của Google Cloud và cho phép bạn kiểm tra lưu lượng truy cập đến để phát hiện các yêu cầu không mong muốn. Tính năng giới hạn tốc độ của dịch vụ này cho phép bạn giảm lưu lượng truy cập vào các tài nguyên phụ trợ dựa trên số lượng yêu cầu và ngăn lưu lượng truy cập không mong muốn tiêu thụ tài nguyên trên mạng Đám mây riêng ảo (VPC) của bạn.

Trong bài thực hành này, bạn sẽ định cấu hình một Trình cân bằng tải HTTP với các phần phụ trợ trên toàn cầu, như minh hoạ trong sơ đồ bên dưới. Sau đó, bạn sẽ kiểm tra hiệu suất của Bộ cân bằng tải và thêm chính sách giới hạn tốc độ của Cloud Armor để giới hạn lưu lượng truy cập vào các tài nguyên phụ trợ.

2e1b99d22f4f32a.png

Kiến thức bạn sẽ học được

  • Cách thiết lập Trình cân bằng tải HTTP với các chế độ kiểm tra tình trạng phù hợp.
  • Cách tạo chính sách giới hạn tốc độ Cloud Armor.
  • Cách xác thực rằng chính sách giới hạn tốc độ đang chặn lưu lượng truy cập khi chạy kiểm thử tải từ một máy ảo.

Bạn cần có

  • Kiến thức cơ bản về Mạng và HTTP
  • Kiến thức cơ bản về dòng lệnh Unix/Linux

2. Thiết lập và yêu cầu

Thiết lập môi trường theo tốc độ của riêng bạn

  1. Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không dùng và bạn có thể cập nhật chuỗi này bất cứ lúc nào.
  • Mã dự án phải là duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là PROJECT_ID). Vì vậy, nếu không thích mã này, bạn có thể tạo một mã ngẫu nhiên khác hoặc thử mã của riêng mình để xem mã đó có dùng được hay không. Sau đó, mã này sẽ "đóng băng" sau khi dự án được tạo.
  • Có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
  1. Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này, hãy làm theo mọi hướng dẫn "dọn dẹp" ở cuối lớp học lập trình. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.

Khởi động Cloud Shell

Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.

Trên Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

bce75f34b2c53987.png

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

f6ef2b5f13479f3a.png

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn chỉ cần một trình duyệt là có thể thực hiện mọi thao tác trong phòng thí nghiệm này.

Trước khi bắt đầu

Trong Cloud Shell, hãy đảm bảo rằng bạn đã thiết lập mã dự án

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

Cho phép API

Bật tất cả các dịch vụ cần thiết

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Định cấu hình các quy tắc về tường lửa để cho phép lưu lượng truy cập HTTP đến các máy chủ phụ trợ

Định cấu hình các quy tắc tường lửa để cho phép lưu lượng truy cập HTTP đến các máy chủ phụ trợ từ các quy trình kiểm tra tình trạng của Google Cloud và Trình cân bằng tải.

Chúng tôi sẽ sử dụng mạng VPC mặc định được tạo trong dự án của bạn. Tạo một quy tắc tường lửa để cho phép lưu lượng truy cập HTTP đến các máy chủ phụ trợ. Các quy trình kiểm tra tình trạng hoạt động sẽ xác định những phiên bản của một bộ cân bằng tải có thể nhận các kết nối mới. Đối với tính năng cân bằng tải HTTP, các lệnh kiểm tra tình trạng của phiên bản được cân bằng tải sẽ đến từ các địa chỉ trong dải 130.211.0.0/22 và 35.191.0.0/16. Các quy tắc về tường lửa VPC phải cho phép những kết nối này. Ngoài ra, các bộ cân bằng tải giao tiếp với phần phụ trợ trên cùng một dải IP.

  1. Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png) > Mạng VPC > Tường lửa.

dbdf491e6d7863f3.png

  1. Lưu ý các quy tắc tường lửa hiện có của ICMP, nội bộ, RDPSSH.Mỗi dự án trên đám mây của Google Cloud đều bắt đầu bằng mạng mặc định và các quy tắc tường lửa này.
  2. Nhấp vào Tạo quy tắc tường lửa.
  3. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Tên

default-allow-health-check

Mạng

mặc định

Mục tiêu

Thẻ mục tiêu được chỉ định

Thẻ mục tiêu

http-server

Bộ lọc nguồn

Dải IP

Dải IP nguồn

130.211.0.0/22, 35.191.0.0/16

Giao thức và cổng

Chỉ định giao thức và cổng, sau đó kiểm tra tcp

  1. Nhấp vào Tạo.

Hoặc nếu bạn đang sử dụng dòng lệnh gcloud. Sau đây là lệnh:

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server

4. Định cấu hình mẫu phiên bản và tạo nhóm phiên bản được quản lý

Một nhóm phiên bản được quản lý sử dụng một mẫu phiên bản để tạo một nhóm các phiên bản giống hệt nhau. Sử dụng các thành phần này để tạo các phần phụ trợ của Trình cân bằng tải HTTP.

Định cấu hình mẫu phiên bản

Mẫu phiên bản là một tài nguyên API mà bạn dùng để tạo các phiên bản VM và nhóm phiên bản được quản lý. Mẫu phiên bản xác định loại máy, hình ảnh đĩa khởi động, mạng con, nhãn và các thuộc tính khác của phiên bản. Tạo một mẫu phiên bản cho us-east1 và một mẫu cho europe-west1.

  1. Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png) > Compute Engine > Mẫu phiên bản, rồi nhấp vào Tạo mẫu phiên bản.
  2. Đối với Tên, hãy nhập us-east1-template.
  3. Đối với Series (Dòng), hãy chọn N1.
  4. Nhấp vào Kết nối mạng, Ổ đĩa, Bảo mật, Quản lý , Miền thuê duy nhất.

b60e2a44c3e4d50e.png

  1. Chuyển đến mục Quản lý

ee57f20ce55298fd.png

  1. Trong mục Siêu dữ liệu, hãy nhấp vào Thêm mục rồi chỉ định những thông tin sau:

Khóa

Giá trị

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. Nhấp vào Kết nối mạng.
  2. Đặt các giá trị sau và giữ nguyên tất cả các giá trị khác theo mặc định –

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Mạng (Trong phần Giao diện mạng)

mặc định

Mạng con (Trong phần Giao diện mạng)

mặc định (us-east1)

Thẻ mạng

http-server

  1. Nhấp vào Tạo.
  2. Đợi cho đến khi mẫu phiên bản được tạo.

Bây giờ, hãy tạo một mẫu phiên bản khác cho subnet-b bằng cách sao chép us-east1-template:

  1. Nhấp vào us-east1-template rồi nhấp vào lựa chọn Sao chép ở trên cùng.
  2. Đối với Name (Tên), hãy nhập europe-west1-template.
  3. Nhấp vào Kết nối mạng, Ổ đĩa, Bảo mật, Quản lý , Miền thuê duy nhất.
  4. Nhấp vào Kết nối mạng.
  5. Trong phần Network Interfaces (Giao diện mạng), hãy chỉnh sửa giao diện mặc định. Đối với Mạng con, hãy chọn mặc định (europe-west1).
  6. Nhấp vào Tạo.

Tạo nhóm phiên bản được quản lý

Tạo một nhóm phiên bản được quản lý trong us-east1 và một nhóm trong europe-west1.

  1. Vẫn trong Compute Engine, hãy nhấp vào Nhóm phiên bản trong trình đơn bên trái.

72319de055de3942.png

  1. Nhấp vào Tạo nhóm phiên bản. Chọn Nhóm phiên bản được quản lý mới (không trạng thái).
  2. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Tên

us-east1-mig

Thông tin vị trí

Nhiều khu vực

Khu vực

us-east1

Mẫu thực thể

us-east1-template

Tự động mở rộng quy mô > Chính sách tự động mở rộng quy mô > Nhấp vào biểu tượng Bút chì > Loại chỉ số

Mức sử dụng CPU

Mức sử dụng CPU mục tiêu

80, nhấp vào Xong.

Thời gian chờ

45

Số lượng phiên bản tối thiểu

1

Số lượng bản sao tối đa

5

  1. Nhấp vào Tạo.

Bây giờ, hãy lặp lại quy trình tương tự để tạo nhóm phiên bản thứ hai cho europe-west1-mig trong europe-west1:

  1. Nhấp vào Tạo nhóm phiên bản.
  2. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Tên

europe-west1-mig

Thông tin vị trí

Nhiều khu vực

Khu vực

europe-west1

Mẫu thực thể

europe-west1-template

Tự động mở rộng quy mô > Chính sách tự động mở rộng quy mô > Nhấp vào biểu tượng Bút chì > Loại chỉ số

Mức sử dụng CPU

Mức sử dụng CPU mục tiêu

80, nhấp vào Xong.

Thời gian chờ

45

Số lượng phiên bản tối thiểu

1

Số lượng bản sao tối đa

5

  1. Nhấp vào Tạo.

5. Định cấu hình Trình cân bằng tải HTTP

Định cấu hình Trình cân bằng tải HTTP để cân bằng lưu lượng truy cập giữa hai phần phụ trợ (us-east1-mig ở us-east1 và europe-west1-mig ở europe-west1), như minh hoạ trong sơ đồ mạng:

2e1b99d22f4f32a.png

Bắt đầu định cấu hình

  1. Trong Cloud Console, hãy nhấp vào Trình đơn điều hướng ( mainmenu.png) > nhấp vào Dịch vụ mạng > Cân bằng tải, rồi nhấp vào Tạo bộ cân bằng tải.
  2. Trong mục Cân bằng tải HTTP(S), hãy nhấp vào Bắt đầu định cấu hình.

8197d8f041e8eafd.png

  1. Chọn Từ Internet đến các VM của tôi, Trình cân bằng tải HTTP(S) cổ điển rồi nhấp vào Tiếp tục.
  2. Đặt Name (Tên) thành http-lb.

Định cấu hình phần phụ trợ

Các dịch vụ phụ trợ chuyển hướng lưu lượng truy cập đến một hoặc nhiều phụ trợ được đính kèm. Mỗi hệ thống phụ trợ bao gồm một nhóm thực thể và siêu dữ liệu bổ sung về năng lực phân phát.

  1. Nhấp vào Cấu hình phụ trợ.
  2. Đối với Dịch vụ phụ trợ và nhóm phụ trợ, hãy nhấp vào Tạo dịch vụ phụ trợ.
  3. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (chọn lựa chọn như đã chỉ định)

Tên

http-backend

Nhóm bản sao

us-east1-mig

Số cổng

80

Chế độ cân bằng

Giá

RPS tối đa

50 (cho mỗi phiên bản)

Công suất

100

  1. Nhấp vào Xong.
  2. Nhấp vào Thêm phần phụ trợ.
  3. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (chọn lựa chọn như đã chỉ định)

Nhóm bản sao

europe-west1-mig

Số cổng

80

Chế độ cân bằng

Mức sử dụng

Mức sử dụng tối đa của phần phụ trợ

80

Công suất

100

  1. Nhấp vào Xong.
  2. Đối với Kiểm tra tình trạng, hãy chọn Tạo một quy trình kiểm tra tình trạng.

199239806577ceac.png

  1. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (chọn lựa chọn như đã chỉ định)

Tên

http-health-check

Giao thức

TCP

Cổng

80

20f7af9fce140475.png

  1. Nhấp vào Lưu.
  2. Đánh dấu vào hộp Bật tính năng ghi nhật ký.
  3. Đặt Tốc độ lấy mẫu thành 1:

dab4b15c13917786.png

  1. Nhấp vào Tạo để tạo dịch vụ phụ trợ.

2db64614f855f239.png

Định cấu hình giao diện người dùng

Các quy tắc về máy chủ lưu trữ và đường dẫn sẽ xác định cách lưu lượng truy cập của bạn được chuyển hướng. Ví dụ: bạn có thể chuyển hướng lưu lượng truy cập video đến một phần phụ trợ và lưu lượng truy cập tĩnh đến một phần phụ trợ khác. Tuy nhiên, bạn không định cấu hình các quy tắc Máy chủ lưu trữ và đường dẫn trong bài thực hành này.

  1. Nhấp vào Cấu hình giao diện người dùng.
  2. Chỉ định các giá trị sau, giữ nguyên tất cả các giá trị khác ở giá trị mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Giao thức

HTTP

Phiên bản IP

IPv4

Địa chỉ IP

Tạm thời

Cổng

80

  1. Nhấp vào Xong.
  2. Nhấp vào Thêm IP và cổng giao diện người dùng.
  3. Chỉ định các giá trị sau, giữ nguyên tất cả các giá trị khác ở giá trị mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Giao thức

HTTP

Phiên bản IP

IPv6

Địa chỉ IP

Tạm thời

Cổng

80

  1. Nhấp vào Xong.

Xem xét và tạo Trình cân bằng tải HTTP

  1. Nhấp vào Xem lại và hoàn tất.

2c88715aa5f22800.png

  1. Xem Dịch vụ phụ trợGiao diện người dùng.

b2fffef90be309f0.png

  1. Nhấp vào Tạo.
  2. Chờ trình cân bằng tải được tạo.
  3. Nhấp vào tên của trình cân bằng tải (http-lb).
  4. Ghi lại địa chỉ IPv4 và IPv6 của bộ cân bằng tải cho tác vụ tiếp theo. Chúng sẽ lần lượt được gọi là [LB_IP_v4] và [LB_IP_v6].

6. Kiểm thử Trình cân bằng tải HTTP

Giờ đây, bạn đã tạo Trình cân bằng tải HTTP cho các hệ thống phụ trợ của mình, hãy xác minh rằng lưu lượng truy cập được chuyển tiếp đến dịch vụ phụ trợ.

Truy cập vào Trình cân bằng tải HTTP

Để kiểm tra quyền truy cập IPv4 vào Bộ cân bằng tải HTTP, hãy mở một thẻ mới trong trình duyệt rồi chuyển đến http://[LB_IP_v4]. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của bộ cân bằng tải.

Nếu bạn có địa chỉ IPv6 cục bộ, hãy thử địa chỉ IPv6 của Bộ cân bằng tải HTTP bằng cách chuyển đến http://[LB_IP_v6]. Nhớ thay thế [LB_IP_v6] bằng địa chỉ IPv6 của bộ cân bằng tải.

812d1fc75d9dfb3c.png

Kiểm tra tính ổn định của Trình cân bằng tải HTTP

Tạo một VM mới để mô phỏng tải trên Trình cân bằng tải HTTP bằng cách sử dụng siege. Sau đó, hãy xác định xem lưu lượng truy cập có được cân bằng trên cả hai hệ thống phụ trợ khi tải cao hay không.

  1. Trong Bảng điều khiển, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png) > Compute Engine > Phiên bản máy ảo.
  2. Nhấp vào Tạo phiên bản.
  3. Đặt các giá trị sau, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (nhập giá trị hoặc chọn lựa chọn theo quy định)

Tên

siege-vm

Khu vực

us-west1

Vùng

us-west1-c

Loạt chương trình

N1

  1. Nhấp vào Tạo.
  2. Chờ tạo phiên bản siege-vm.
  3. Đối với siege-vm, hãy nhấp vào SSH để chạy một thiết bị đầu cuối và kết nối.
  4. Chạy lệnh sau để cài đặt siege:
sudo apt-get -y install siege
  1. Để lưu trữ địa chỉ IPv4 của Bộ cân bằng tải HTTP trong một biến môi trường, hãy chạy lệnh sau, thay thế [LB_IP_v4] bằng địa chỉ IPv4:
export LB_IP=[LB_IP_v4]
  1. Để mô phỏng quá trình tải, hãy chạy lệnh sau:
siege -c 250 http://$LB_IP

Kết quả sẽ có dạng như sau (không sao chép; đây là kết quả mẫu):

New configuration template added to /home/student/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Trong Cloud Console, hãy nhấp vào Trình đơn điều hướng ( mainmenu.png), nhấp vào Network Services (Dịch vụ mạng) > Load balancing (Cân bằng tải).
  2. Nhấp vào http-lb.
  3. Nhấp vào thẻ Giám sát. Theo dõi lưu lượng truy cập giữa Bắc Mỹ và hai máy chủ phụ trong 2 đến 3 phút.

Ban đầu, lưu lượng truy cập chỉ được chuyển hướng đến us-east1-mig, nhưng khi RPS tăng lên, lưu lượng truy cập cũng được chuyển hướng đến europe-west1-mig.

ead1e6d5c1f4cc4b.png

Điều này cho thấy theo mặc định, lưu lượng truy cập được chuyển tiếp đến phần phụ trợ gần nhất, nhưng nếu tải rất cao, lưu lượng truy cập có thể được phân phối trên các phần phụ trợ.

e5c6a657706c832c.png

  1. Quay lại thiết bị đầu cuối SSH của siege-vm.
  2. Nhấn CTRL+C để dừng cuộc tấn công.

7. Tạo chính sách giới hạn tốc độ của Cloud Armor

Trong phần này, bạn sẽ sử dụng Cloud Armor để từ chối siege-vm truy cập vào Bộ cân bằng tải HTTP bằng cách đặt chính sách giới hạn tốc độ.

  1. Trong Cloud Shell(xem phần "Bắt đầu Cloud Shell" trong phần "Thiết lập và yêu cầu" để biết hướng dẫn về cách sử dụng Cloud Shell), hãy tạo chính sách bảo mật thông qua gcloud:
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. Tiếp theo, hãy thêm một quy tắc giới hạn tốc độ:
gcloud beta compute security-policies rules create 100 \
    --security-policy=rate-limit-siege     \
    --expression="true" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP
  1. Đính kèm chính sách bảo mật vào dịch vụ phụ trợ http-backend:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. Trong Bảng điều khiển, hãy chuyển đến Trình đơn điều hướng > Bảo mật mạng > Cloud Armor.
  2. Nhấp rate-limit-siege. Chính sách của bạn sẽ có dạng như sau:

8be87aa31c2ed74e.png

Xác minh Chính sách bảo mật

  1. Quay lại thiết bị đầu cuối SSH của siege-vm.
  2. Chạy một curl đối với IP của LB để xác minh rằng bạn vẫn có thể kết nối với IP đó và sẽ nhận được phản hồi 200.
curl http://$LB_IP
  1. Trong thiết bị đầu cuối SSH của siege-vm, để mô phỏng tải, hãy chạy lệnh sau:
siege -c 250 http://$LB_IP

Kết quả sẽ có dạng như sau (không sao chép; đây là kết quả mẫu):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Khám phá nhật ký chính sách bảo mật để xác định xem lưu lượng truy cập này có bị chặn hay không.
  2. Trong Bảng điều khiển, hãy chuyển đến Trình đơn điều hướng > Bảo mật mạng > Cloud Armor.
  3. Nhấp vào rate-limit-siege.
  4. Nhấp vào Nhật ký.

f8be7c01c3d7c8f5.png

  1. Nhấp vào Xem nhật ký chính sách.
  2. Trên trang Ghi nhật ký, hãy nhớ xoá tất cả văn bản trong phần Xem trước truy vấn.
  3. Chọn tài nguyên là Cloud HTTP Load Balancer > http-lb-forwarding-rule > http-lb rồi nhấp vào Add (Thêm). Ngoài ra, bên dưới là truy vấn MQL(ngôn ngữ truy vấn giám sát), bạn có thể sao chép và dán vào trình chỉnh sửa truy vấn –
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. Giờ đây, hãy nhấp vào Run Query (Chạy truy vấn).
  2. Mở rộng một mục nhập nhật ký trong Kết quả truy vấn.
  3. Mở rộng httpRequest. Yêu cầu phải đến từ địa chỉ IP siege-vm. Nếu không, hãy mở rộng một mục nhập nhật ký khác.
  4. Mở rộng jsonPayload.
  5. Mở rộng enforcedSecurityPolicy.

151f575ba7b3bde9.png

Lưu ý rằng configuredAction được đặt thành RATE_BASED_BAN với tên rate-limit-siege.

  1. Để kiểm tra thêm, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png), nhấp vào Network Services (Dịch vụ mạng) > Load balancing (Cân bằng tải). Nhấp vào http-lb. Nhấp vào thẻ Giám sát.

ab9a8a66573a5ebd.png

Bạn có thể thấy lưu lượng truy cập tấn công trong các biểu đồ. Bạn cũng sẽ nhận thấy rằng lưu lượng truy cập bị giới hạn tốc độ không đến được phần phụ trợ và bị chính sách Cloud Armor chặn.

Xin chúc mừng! Bạn đã hoàn thành bài tập này về tính năng Giới hạn tốc độ bằng Cloud Armor

©2020 Google LLC Bảo lưu mọi quyền. Google và biểu trưng Google là các nhãn hiệu của Google LLC. Tất cả các tên công ty và sản phẩm khác có thể là nhãn hiệu của công ty liên quan tương ứng.

8. Dọn dẹp phòng thí nghiệm

  1. Chuyển đến Bảo mật mạng >> Cloud Armor >> %POLICY NAME% rồi chọn xoá –

eeafa7cafa11c4c7.png

  1. Chuyển đến phần Mạng >> Dịch vụ mạng >> Cân bằng tải. Chọn trình cân bằng tải mà bạn đã tạo rồi nhấp vào xoá.

3886458f25cfbd36.png

Chọn dịch vụ phụ trợ và kiểm tra tình trạng hoạt động làm tài nguyên bổ sung cần xoá –

a0193e91b2f4cb6f.png

  1. Chuyển đến Trình đơn điều hướng ( mainmenu.png) > Compute Engine > Nhóm phiên bản. Chọn cả hai nhóm phiên bản được quản lý rồi nhấp vào xoá –

5027d56977997f70.png

Xác nhận thao tác xoá bằng cách nhập "xoá" vào hộp văn bản.

Chờ các nhóm phiên bản được quản lý bị xoá. Thao tác này cũng sẽ xoá các thực thể trong nhóm. Bạn chỉ có thể xoá các mẫu sau khi xoá nhóm phiên bản.

  1. Chuyển đến Mẫu phiên bản trong ngăn bên trái**.** Chọn cả hai mẫu phiên bản rồi nhấp vào xoá –

8d88abacd32c11ce.png

  1. Chuyển đến Phiên bản máy ảo trong ngăn bên trái**.** Chọn dấu ba chấm bên cạnh phiên bản siege-vm rồi nhấp vào xoá.

2b58ab43695836e9.png

  1. Chuyển đến Trình đơn điều hướng ( mainmenu.png) > Mạng VPC > Tường lửa. Chọn default-allow-health-check rồi nhấp vào xoá –

561d5e771d36d85.png

9. Xin chúc mừng!

Bạn đã triển khai thành công tính năng giới hạn tốc độ bằng Cloud Armor. Bạn đã định cấu hình một Trình cân bằng tải HTTP có các máy chủ phụ trợ ở us-east1 và europe-west1. Sau đó, bạn đã kiểm tra mức tải của Bộ cân bằng tải bằng một VM và từ chối địa chỉ IP thông qua tính năng giới hạn tốc độ bằng Cloud Armor. Bạn có thể khám phá nhật ký chính sách bảo mật để xác định lý do lưu lượng truy cập bị chặn.

Nội dung đã đề cập

  • Cách thiết lập mẫu thực thể và tạo nhóm thực thể được quản lý.
  • Cách thiết lập Trình cân bằng tải HTTP.
  • Cách tạo chính sách giới hạn tốc độ Cloud Armor.
  • Cách xác thực rằng Chính sách giới hạn tốc độ đang hoạt động như dự kiến.

Các bước tiếp theo

  • Hãy thử thiết lập Chính sách giới hạn tốc độ dựa trên dải IP nguồn. Lệnh mẫu bên dưới –
gcloud alpha compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges "1.2.3.0/24"     \
    --action throttle                \
    --rate-limit-threshold-count 100 \
    --rate-limit-threshold-interval-sec 60 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key IP
  • Hãy thử thiết lập Chính sách giới hạn tốc độ dựa trên mã khu vực. Lệnh mẫu bên dưới –
gcloud alpha compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key IP