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 Google Cloud HTTP Load Balancer và bảo vệ các ứng dụng của khách hàng Google Cloud khỏi các cuộc tấn công từ Internet. reCAPTCHA Enterprise là một dịch vụ bảo vệ trang web của bạn khỏi nội dung rác và hành vi sai trái, dựa trên API reCAPTCHA hiện có. API này sử dụng các kỹ thuật phân tích rủi ro nâng cao để phân biệt giữa người dùng và bot. Tính năng Quản lý bot của Cloud Armor cung cấp một giải pháp toàn diện, tích hợp tính năng phát hiện và tính điểm bot của reCAPTCHA Enterprise với việc thực thi của Cloud Armor ở rìa mạng để bảo vệ các ứng dụng hạ nguồn.
Trong bài thực hành này, bạn sẽ định cấu hình một Bộ cân bằng tải HTTP với một phần phụ trợ, như minh hoạ trong sơ đồ bên dưới. Sau đó, bạn sẽ tìm hiểu cách thiết lập khoá trang web mã thông báo phiên reCAPTCHA và nhúng khoá này vào trang web của mình. Bạn cũng sẽ tìm hiểu cách thiết lập việc chuyển hướng đến thử thách thủ công reCAPTCHA Enterprise. Sau đó, chúng ta sẽ định cấu hình chính sách quản lý bot của Cloud Armor để minh hoạ cách tính năng phát hiện bot bảo vệ ứng dụng của bạn khỏi lưu lượng truy cập độc hại của bot.

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 khoá trang web trang thử thách WAF reCAPTCHA và liên kết khoá đó với chính sách bảo mật Cloud Armor.
- Cách tạo khoá trang web mã thông báo phiên reCAPTCHA và cài đặt khoá đó trên các trang web của bạn.
- Cách tạo chính sách quản lý bot Cloud Armor.
- Cách xác thực rằng chính sách quản lý bot đang xử lý lưu lượng truy cập dựa trên các quy tắc đã định cấu hình.
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
- Đă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.



- 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.
- 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:

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:

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 gcloud services enable recaptchaenterprise.googleapis.com
3. Đị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 và SSH đế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. Ngoài ra, hãy định cấu hình một quy tắc tường lửa để cho phép SSH vào các phiên bản.
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.
- Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng (
) > Mạng VPC > Tường lửa.

- Lưu ý các quy tắc tường lửa hiện có của ICMP, nội bộ, RDP và SSH.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.
- Nhấp vào Tạo quy tắc tường lửa.
- Đặ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 | allow-health-check |
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. Nhập 80 cho số cổng |
- 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:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
- Tương tự, hãy tạo một quy tắc Tường lửa để cho phép SSH vào các phiên bản –
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check
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 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 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 như minh hoạ bên dưới.
- Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng (
) > Compute Engine > Mẫu phiên bản, rồi nhấp vào Tạo mẫu phiên bản. - Đối với Name (Tên), hãy nhập lb-backend-template.
- Đối với Series (Dòng), hãy chọn N1.
- Nhấp vào Kết nối mạng, Ổ đĩa, Bảo mật, Quản lý , Miền thuê duy nhất.

- Chuyển đến mục Quản lý rồi chèn tập lệnh sau vào trường Tập lệnh khởi động.
#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" sudo echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html
- Nhấp vào thẻ Networking (Kết nối mạng), thêm thẻ mạng: allow-health-check
- Đặ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 | allow-health-check |
- Nhấp vào Tạo.
- Đợi cho đến khi mẫu phiên bản được tạo.
Tạo nhóm phiên bản được quản lý
- Vẫn ở trang Compute Engine, hãy nhấp vào Nhóm phiên bản trong trình đơn bên trái.

- 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).
- Đặ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 | lb-backend-example |
Thông tin vị trí | Một vùng |
Khu vực | us-east1 |
Vùng | us-east1-b |
Mẫu thực thể | lb-backend-template |
Tự động cấp tài nguyên bổ sung | Không tự động mở rộng quy mô |
Số lượng bản sao | 1 |
- Nhấp vào Tạo.
Thêm một cổng có tên vào nhóm phiên bản
Đối với nhóm phiên bản, hãy xác định một dịch vụ HTTP và liên kết tên cổng với cổng có liên quan. Dịch vụ cân bằng tải chuyển tiếp lưu lượng truy cập đến cổng được chỉ định.
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone us-east1-b
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 để gửi lưu lượng truy cập đến phụ trợ lb-backend-example:
Bắt đầu định cấu hình
- Trong Cloud Console, hãy nhấp vào Trình đơn điều hướng (
) > 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. - 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.

- 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.
- Đặ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.
- Nhấp vào Cấu hình phụ trợ.
- Đố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ợ.
- Đặ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 |
Giao thức | HTTP |
Cổng được đặt tên | htp |
Nhóm bản sao | lb-backend-example |
Số cổng | 80 |
- Nhấp vào Xong.
- Nhấp vào Thêm phần phụ trợ.
- Đố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.

- Đặ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 |

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

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

Đị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.
- Nhấp vào Cấu hình giao diện người dùng.
- 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 |
- Nhấp vào Xong.
Xem xét và tạo Trình cân bằng tải HTTP
- Nhấp vào Xem lại và hoàn tất.

- Xem Dịch vụ phụ trợ và Giao diện người dùng.
- Nhấp vào Tạo.
- Chờ trình cân bằng tải được tạo.
- Nhấp vào tên của trình cân bằng tải (http-lb).
- Ghi lại địa chỉ IPv4 của bộ cân bằng tải cho tác vụ tiếp theo. Chúng tôi sẽ gọi địa chỉ này là [LB_IP_v4].
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ợ. Để 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.
7. Tạo và triển khai mã thông báo phiên reCAPTCHA và khoá trang web của trang thử thách
Việc tích hợp reCAPTCHA Enterprise cho WAF và Google Cloud Armor mang đến những tính năng sau: hình ảnh xác thực reCAPTCHA, mã thông báo hành động reCAPTCHA và mã thông báo phiên reCAPTCHA. Trong lớp học lập trình này, chúng ta sẽ triển khai khoá trang web mã thông báo phiên reCAPTCHA và trang web trang thử thách WAF reCAPTCHA.
Tạo mã thông báo phiên reCAPTCHA và khoá trang xác thực WAF
Trước khi tạo khoá trang web mã thông báo phiên và khoá trang web trang thử thách, hãy kiểm tra kỹ để đảm bảo bạn đã bật API reCAPTCHA Enterprise như được chỉ ra trong phần "Bật API" ở đầu.
JavaScript reCAPTCHA đặt mã thông báo phiên reCAPTCHA dưới dạng cookie trên trình duyệt của người dùng cuối sau khi đánh giá. Trình duyệt của người dùng cuối sẽ đính kèm cookie và làm mới cookie miễn là JavaScript reCAPTCHA vẫn hoạt động.
- Tạo khoá trang web mã thông báo phiên reCAPTCHA và bật tính năng WAF cho khoá đó. Chúng ta cũng sẽ thiết lập dịch vụ WAF thành Cloud Armor để bật tính năng tích hợp Cloud Armor.
gcloud recaptcha keys create --display-name=test-key-name \ --web --allow-all-domains --integration-type=score --testing-score=0.5 \ --waf-feature=session-token --waf-service=ca
- Đầu ra của lệnh trên sẽ cung cấp cho bạn khoá đã tạo. Hãy ghi lại mã này vì chúng ta sẽ thêm mã này vào trang web của bạn trong bước tiếp theo.
- Tạo khoá trang web reCAPTCHA WAF challenge-page và bật tính năng WAF cho khoá đó. Bạn có thể sử dụng tính năng trang thử thách reCAPTCHA để chuyển hướng các yêu cầu đến reCAPTCHA Enterprise nhằm xác định xem mỗi yêu cầu có khả năng là gian lận hay hợp lệ. Sau đó, chúng ta sẽ liên kết khoá này với chính sách bảo mật Cloud Armor để bật thử thách thủ công. Chúng ta sẽ gọi khoá này là CHALLENGE-PAGE-KEY trong các bước sau.
gcloud recaptcha keys create --display-name=challenge-page-key \ --web --allow-all-domains --integration-type=INVISIBLE \ --waf-feature=challenge-page --waf-service=ca
- Chuyển đến Trình đơn điều hướng (
) > Bảo mật > reCAPTCHA Enterprise. Bạn sẽ thấy các khoá mà bạn đã tạo trong phần Enterprise Keys (Khoá doanh nghiệp) –

Triển khai khoá trang web mã thông báo phiên reCAPTCHA
- Chuyển đến Trình đơn điều hướng (
) > Compute Engine > Phiên bản máy ảo. Tìm máy ảo trong nhóm phiên bản của bạn rồi kết nối với máy ảo đó qua SSH.

- Chuyển đến thư mục gốc của máy chủ web và thay đổi người dùng thành gốc –
@lb-backend-example-4wmn:~$ cd /var/www/html/ @lb-backend-example-4wmn:/var/www/html$ sudo su
- Cập nhật trang index.html của trang đích và nhúng khoá trang web mã thông báo phiên reCAPTCHA. Khoá trang mã thông báo phiên được đặt trong phần đầu của trang đích như bên dưới –
<script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script>
Hãy nhớ thay thế mã thông báo trước khi cập nhật tệp index.html như minh hoạ bên dưới –
root@lb-backend-example-4wmn:/var/www/html# echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
- Tạo 3 trang mẫu khác để kiểm thử các chính sách quản lý bot –
- good-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
- bad-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
- median-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
- Xác thực rằng bạn có thể truy cập vào tất cả các trang web bằng cách mở chúng trong trình duyệt. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của bộ cân bằng tải.
- Mở http://[LB_IP_v4]/index.html. Bạn có thể xác minh rằng chế độ triển khai reCAPTCHA đang hoạt động khi thấy dòng "được bảo vệ bằng reCAPTCHA" ở góc dưới cùng bên phải của trang –

- Nhấp vào từng đường liên kết.

- Xác thực rằng bạn có thể truy cập vào tất cả các trang.

8. Tạo quy tắc chính sách bảo mật Cloud Armor cho tính năng Quản lý bot
Trong phần này, bạn sẽ sử dụng các quy tắc quản lý bot của Cloud Armor để cho phép, từ chối và chuyển hướng các yêu cầu dựa trên điểm số reCAPTCHA. Hãy nhớ rằng khi tạo khoá trang mã thông báo phiên, bạn đã đặt điểm kiểm thử là 0,5.
- 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 recaptcha-policy \
--description "policy for bot management"
- Để sử dụng thử thách thủ công reCAPTCHA Enterprise nhằm phân biệt giữa người dùng và ứng dụng tự động, hãy liên kết khoá trang web thử thách WAF reCAPTCHA mà chúng tôi đã tạo cho thử thách thủ công với chính sách bảo mật. Thay thế "CHALLENGE-PAGE-KEY" bằng khoá mà chúng ta đã tạo –
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- Thêm một quy tắc quản lý bot để cho phép lưu lượng truy cập nếu đường dẫn URL khớp với good-score.html và có điểm số lớn hơn 0,4.
gcloud compute security-policies rules create 2000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\
--action allow
- Thêm một quy tắc quản lý bot để từ chối lưu lượng truy cập nếu đường dẫn URL khớp với bad-score.html và có điểm số nhỏ hơn 0,6.
gcloud compute security-policies rules create 3000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\
--action "deny-403"
- Thêm một quy tắc quản lý bot để chuyển hướng lưu lượng truy cập đến Google reCAPTCHA nếu đường dẫn URL khớp với median-score.html và có điểm số bằng 0,5
gcloud compute security-policies rules create 1000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\
--action redirect \
--redirect-type google-recaptcha
- Đí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 recaptcha-policy –-global
- 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.
- Nhấp vào recaptcha-policy. Chính sách của bạn sẽ có dạng như sau:

9. Xác thực tính năng Quản lý bot bằng Cloud Armor
- Mở trình duyệt rồi nhập URL http://[LB_IP_v4]/index.html. Chuyển đến "Cho phép truy cập vào đường liên kết". Bạn sẽ được phép truy cập –

- Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có một phiên mới. Nhập URL http://[LB_IP_v4]/index.html rồi chuyển đến "Visit blocked link" (Truy cập vào đường liên kết bị chặn). Bạn sẽ gặp lỗi HTTP 403 –

- Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có một phiên mới. Nhập URL http://[LB_IP_v4]/index.html rồi chuyển đến "Visit redirect link" (Truy cập vào đường liên kết chuyển hướng). Bạn sẽ thấy trang chuyển hướng đến Google reCAPTCHA và trang thử thách thủ công như bên dưới –

Xác minh nhật ký Cloud Armor
Khám phá nhật ký chính sách bảo mật để xác thực rằng tính năng quản lý bot hoạt động như dự kiến.
- 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.
- Nhấp vào recaptcha-policy.
- Nhấp vào Nhật ký.

- Nhấp vào Xem nhật ký chính sách.
- Sau đây 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) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
- Giờ đây, hãy nhấp vào Run Query (Chạy truy vấn).
- Tìm một mục nhập nhật ký trong Kết quả truy vấn, trong đó yêu cầu là http://[LB_IP_v4]/good-score.html. Mở rộng jsonPayload.Mở rộng enforcedSecurityPolicy.

- Lặp lại tương tự cho http://[LB_IP_v4]/bad-score.html và http://[LB_IP_v4]/median-score.html


Xin lưu ý rằng configuredAction được đặt thành ALLOW, DENY hoặc GOOGLE_RECAPTCHA với tên recaptcha-policy.
Xin chúc mừng! Bạn đã hoàn thành bài tập này về tính năng Quản lý bot 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.
10. Dọn dẹp phòng thí nghiệm
- Chuyển đến Bảo mật mạng >> Cloud Armor >> %POLICY NAME% rồi chọn xoá –

- 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á.

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á –

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

Xác nhận thao tác xoá bằng cách nhập "xoá" vào hộp văn bản.
Chờ nhóm phiên bản được quản lý bị xoá. Thao tác này cũng sẽ xoá phiên bản trong nhóm. Bạn chỉ có thể xoá các mẫu sau khi xoá nhóm phiên bản.
- Chuyển đến Mẫu phiên bản trong ngăn bên trái**.** Chọn mẫu phiên bản rồi nhấp vào biểu tượng xoá.
- Chuyển đến Trình đơn điều hướng (
) > Mạng VPC > Tường lửa. Chọn các quy tắc default-allow-health-check và allow-ssh rồi nhấp vào xoá. - Chuyển đến Trình đơn điều hướng (
) > Bảo mật > reCAPTCHA Enterprise. Chọn khoá mà chúng ta đã tạo rồi xoá khoá đó. Xác nhận xoá bằng cách nhập "DELETE" vào hộp văn bản.

11. Xin chúc mừng!
Bạn đã triển khai thành công tính năng quản lý bot bằng Cloud Armor. Bạn đã định cấu hình một Trình cân bằng tải HTTP. Sau đó, bạn đã tạo và triển khai khoá trang web mã thông báo phiên reCAPTCHA trên một trang web. Bạn cũng đã học cách tạo khoá trang web của trang thử thách. Bạn thiết lập chính sách Quản lý bot của Cloud Armor và xác thực cách chính sách này xử lý các yêu cầu dựa trên các quy tắc. 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 được cho phép, bị chặn hoặc được chuyển hướng.
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 quản lý bot Cloud Armor.
- Cách tạo và triển khai khoá trang web mã thông báo phiên reCAPTCHA.
- Cách tạo và triển khai khoá trang web trang thử thách reCAPTCHA.
- Cách xác thực để đảm bảo Chính sách quản lý bot hoạt động đúng như dự kiến.
Các bước tiếp theo
- Thử thiết lập mã thông báo thao tác reCAPTCHA.