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 Google (POP) trên toàn thế giới. Lưu lượng truy cập của người dùng được chuyển đến trình cân bằng tải HTTP(S) sẽ nhập vào POP gần người dùng nhất và sau đó được cân bằng tải qua mạng toàn cầu của Google tới 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 ứng dụng web (WAF) và từ chối dịch vụ phân tán của Google. Cloud Armor được kết hợp chặt chẽ với Trình cân bằng tải HTTP của Google Cloud, đồng thời bảo vệ các ứng dụng của khách hàng của 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ịch vụ này được xây dựng trên API reCAPTCHA hiện có, sử dụng các kỹ thuật phân tích rủi ro nâng cao để phân biệt con người và bot. Cloud Armor Bot Management cung cấp một giải pháp toàn diện, tích hợp tính năng tính điểm và phát hiện bot reCAPTCHA Enterprise với hoạt động thực thi của Cloud Armor ở rìa mạng để bảo vệ các ứng dụng xuôi dòng.
Trong phòng thí nghiệm này, bạn định cấu hình Trình cân bằng tải HTTP bằng một phần phụ trợ, như minh hoạ trong sơ đồ dưới đây. 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á đó vào trang web của mình. Bạn cũng sẽ tìm hiểu cách thiết lập lệnh chuyển hướng đến thử thách thủ công reCAPTCHA Enterprise. Sau đó, chúng tôi sẽ định cấu hình một chính sách quản lý bot Cloud Armor để trình bày 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 bot độc hại.
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 biện pháp kiểm tra tình trạng thích hợp.
- Cách tạo khoá trang web thử thách reCAPTCHA WAF và liên kết khoá đó với chính sách bảo mật của 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 đã thiết lập.
Bạn cần có
- Kết nối mạng cơ bản và kiến thức cơ bản 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 tiến độ riêng
- Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại 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ự không được API của Google sử 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 trong tất cả các dự án Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. 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 (và mã này thường được xác định là
PROJECT_ID
). Vì vậy, nếu không thích, bạn có thể tạo một mã ngẫu nhiên khác hoặc bạn có thể thử mã của riêng mình để xem có mã này chưa. Sau đó, video sẽ được "đóng băng" sau khi tạo dự án. - Có giá trị thứ ba là Project Number (Số dự án) mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
- Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên/API trên Cloud. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên để bạn không phải chịu thanh toán ngoài hướng dẫn này, hãy làm theo mọi thao tác "dọn dẹp" hướng dẫn ở 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í 300 USD.
Khởi động Cloud Shell
Mặc dù bạn 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 trong Đám mây.
Trong Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell ở thanh công cụ trên cùng bên phải:
Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Sau khi hoàn tất, bạn sẽ thấy như sau:
Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả công việc trong phòng thí nghiệm này chỉ bằng một trình duyệt.
Trước khi bắt đầu
Bên 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ả 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 quy tắc tường lửa để cho phép lưu lượng truy cập HTTP và SSH đến các phần phụ trợ
Đị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 máy chủ phụ trợ từ tính năng 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 quy tắc tường lửa để cho phép SSH vào các phiên bản.
Chúng tôi sẽ dùng mạng VPC mặc định mà bạn đã tạo trong dự án. Tạo quy tắc tường lửa để cho phép lưu lượng truy cập HTTP gửi đến các phần phụ trợ. Tính năng kiểm tra tình trạng xác định phiên bản nào của trình 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, đầu dò kiểm tra tình trạng cho các thực thể cân bằng tải đến từ các địa chỉ trong các dải 130.211.0.0/22 và 35.191.0.0/16. Các quy tắc về tường lửa VPC của bạn phải cho phép những kết nối này. Ngoài ra, trình cân bằng tải còn trao đổi với máy chủ 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.
- Hãy lưu ý các quy tắc tường lửa ICMP, internal, RDP và SSH hiện có.Mỗi dự án trên Google Cloud đều bắt đầu bằng mạng mặc định và các quy tắc về tường lửa này.
- Nhấp vào Create Firewall Rule (Tạo quy tắc tường lửa).
- Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:
Thuộc tính | Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ đị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. Dưới đâ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 quy tắc Tường lửa để cho phép kết nối 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 thực thể và tạo nhóm thực thể được quản lý
Một nhóm thực thể được quản lý sẽ dùng mẫu thực thể để tạo một nhóm các thực thể giống nhau. Hãy sử dụng các công cụ này để tạo phần phụ trợ của Trình cân bằng tải HTTP.
Định cấu hình các mẫu thực thể
Mẫu thực thể là một tài nguyên mà bạn dùng để tạo các phiên bản máy ảo và nhóm thực thể được quản lý. Mẫu thực thể xác định loại máy, hình ảnh khởi động đĩa, mạng con, nhãn và các thuộc tính thực thể khác. Tạo một mẫu thực thể như được chỉ ra bên dưới.
- Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng ( ) > Compute Engine > (Công cụ điện toán) > 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 Bộ sách, hãy chọn N1.
- Nhấp vào Nối mạng, Ổ đĩa, Bảo mật, Quản lý , Ổn định.
- Chuyển tới phần Quản lý và 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 các thẻ mạng: allow-health-check
- Đặt các giá trị sau và để tất cả các giá trị khác ở chế độ mặc định -
Thuộc tính | Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định) |
Mạng (Trong giao diện mạng) | mặc định |
Mạng con (Trong giao diện mạng) | mặc định (us-east1) |
Thẻ mạng | allow-health-check |
- Nhấp vào Tạo.
- Chờ mẫu thực thể được tạo.
Tạo nhóm thực thể được quản lý
- Vẫn trên trang Compute Engine, hãy nhấp vào Instance groups (Nhóm phiên bản) trên trình đơn bên trái.
- Nhấp vào Tạo nhóm thực thể. Chọn Nhóm thực thể được quản lý mới (không có trạng thái).
- Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:
Thuộc tính | Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định) |
Tên | ví dụ về lb-backend |
Vị trí | Một vùng |
Khu vực | hoa-đông-1 |
Vùng | us-east1-b |
Mẫu phiên bản | lb-backend-template |
Tự động cấp tài nguyên bổ sung | Không tự động chuyển tỷ lệ |
Số lượng thực thể | 1 |
- Nhấp vào Tạo.
Thêm cổng đã đặt tên vào nhóm thực thể
Đối với nhóm thực thể, 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 sẽ chuyển tiếp lưu lượng truy cập đến cổng được đặt tên.
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ần phụ trợ của bạn 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 > Tải cân bằng, rồi nhấp vào Tạo trình cân bằng tải.
- Trong HTTP(S) Load Balancing, nhấp vào Start configuration (Bắt đầu cấu hình).
- Chọn Từ Internet đến máy ảo 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 Tên thành http-lb.
Định cấu hình phần phụ trợ
Các dịch vụ phụ trợ hướng lưu lượng truy cập đến đến một hoặc nhiều phần phụ trợ đi kèm. Mỗi phần phụ trợ bao gồm một nhóm thực thể và siêu dữ liệu về khả năng phân phát bổ sung.
- Nhấp vào Cấu hình phần phụ trợ.
- Đối với Dịch vụ phụ trợ & bộ chứa phụ trợ, hãy nhấp vào Tạo dịch vụ phụ trợ.
- Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:
Thuộc tính | Giá trị (chọn một lựa chọn theo chỉ định) |
Tên | http-backend |
Giao thức | HTTP |
Cổng được đặt tên | htp |
Nhóm bản sao | ví dụ về lb-backend |
Số cổng | 80 |
- Nhấp vào Xong.
- Nhấp vào Thêm phần phụ trợ.
- Đối với phần Kiểm tra tình trạng, hãy chọn Tạo quy trình kiểm tra tình trạng.
- Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:
Thuộc tính | Giá trị (chọn một lựa chọn theo chỉ định) |
Tên | http-health-check |
Giao thức | TCP |
Cổng | 80 |
- Nhấp vào Lưu.
- Chọn 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ề đường dẫn và máy chủ lưu trữ xác định cách hướng lưu lượng truy cập của bạn. 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 chưa định cấu hình các quy tắc Máy chủ lưu trữ và đường dẫn trong phòng thí nghiệm này.
- Nhấp vào Cấu hình giao diện người dùng.
- Chỉ định như sau, để tất cả các giá trị khác theo mặc định:
Thuộc tính | Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ đị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 lại 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 trình cân bằng tải cho tác vụ tiếp theo. Chúng tôi sẽ gọi mã này là [LB_IP_v4].
6. Kiểm thử Trình cân bằng tải HTTP
Bây giờ, bạn đã tạo Trình cân bằng tải HTTP cho phần 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 Trình cân bằng tải HTTP, hãy mở một thẻ mới trong trình duyệt và chuyển đến http://[LB_IP_v4]. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của trình 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 thử thách
reCAPTCHA Enterprise để tích hợp WAF và Google Cloud Armor cung cấp các tính năng sau: trang thử thách reCAPTCHA, mã hành động reCAPTCHA và mã phiên reCAPTCHA. Trong lớp học lập trình này, chúng ta sẽ triển khai khoá trang web của mã thông báo phiên reCATCHA và trang web thử thách reCAPTCHA WAF.
Tạo mã thông báo phiên reCAPTCHA và khoá trang web thử thách WF
Trước khi tạo khoá trang web mã thông báo phiên và khoá trang web của trang thử thách, hãy kiểm tra kỹ để đảm bảo bạn đã bật API reCAPTCHA Enterprise như nêu trong phần "Enable API" (Bật API) ở phần đầu.
JavaScript reCAPTCHA đặt một mã thông báo phiên reCAPTCHA làm 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 này, miễn là reCAPTCHA JavaScript 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 tôi cũng sẽ đặt 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
- Kết quả của lệnh trên, cung cấp cho bạn khoá đã tạo. Hãy lưu ý đến email này vì chúng tôi sẽ thêm nó vào trang web của bạn trong bước tiếp theo.
- Tạo khoá trang web thử thách WAF cho reCAPTCHA 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 được gửi đến đế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ệ hay không. Sau đó, chúng tôi sẽ liên kết khoá này với chính sách bảo mật của Cloud Armor để bật tính năng thử thách thủ công. Chúng tôi 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á bạn đã tạo trong phần Khoá doanh nghiệp -
Triển khai khoá trang web của mã thông báo phiên reCAPTCHA
- Chuyển đến Trình đơn điều hướng ( ) > Compute Engine > (Công cụ điện toán) > Thực thể máy ảo. Tìm máy ảo trong nhóm thực thể của bạn và SSH vào máy ảo đó.
- Chuyển đến thư mục gốc của máy chủ web và thay đổi người dùng thành thư mục gốc –
@lb-backend-example-4wmn:~$ cd /var/www/html/ @lb-backend-example-4wmn:/var/www/html$ sudo su
- Cập nhật trang target.html đích và nhúng khoá trang web của mã thông báo phiên reCAPTCHA. Khoá trang web mã thông báo phiên được đặt trong phần đầu của trang đích như dưới đây -
<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ệpindex.html như được chỉ ra 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 ba trang mẫu khác để thử nghiệm 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 tất cả các trang web bằng cách mở các trang web đó trong trình duyệt của mình. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của trình cân bằng tải.
- Mở http://[LB_IP_v4]/index.html. Bạn sẽ có thể xác minh rằng quy trình triển khai reCAPTCHA đang hoạt động khi bạn thấy thông báo "đượ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 các quy tắc chính sách bảo mật của Cloud Armor để Quản lý bot
Trong phần này, bạn sẽ sử dụng các quy tắc quản lý bot 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 web mã thông báo phiên, bạn đặt điểm kiểm tra là 0,5.
- Trong Cloud Shell(tham khảo phần "Bắt đầu Cloud Shell" trong phần "Thiết lập và yêu cầu" để xem hướng dẫn về cách sử dụng Cloud Shell), hãy tạo chính sách bảo mật 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 reCAPTCHA WAF 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á do chúng ta tạo –
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- Thêm 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 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 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 dưới 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 Trung-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 phần phụ trợ của dịch vụ phụ trợ:
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 chính sách hình ảnh xác thực lại. Chính sách của bạn phải có dạng như sau:
9. Xác thực quy trình quản lý bot bằng Cloud Armor
- Mở trình duyệt và nhập URL http://[LB_IP_v4]/index.html. Chuyển đến "Truy cập đường liên kết cho phép". Bạn sẽ được phép qua –
- Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có phiên mới. Nhập URL http://[LB_IP_v4]/index.html và điều hướng đến "Truy cập liên kết bị chặn". Bạn sẽ nhận được lỗi HTTP 403 -
- Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có phiên mới. Nhập URL http://[LB_IP_v4]/index.html và điều hướng đến "Truy cập đường liên kết chuyển hướng". Bạn sẽ thấy chuyển hướng đến Google reCAPTCHA và trang thử thách thủ công như dưới đây -
Xác minh nhật ký của Cloud Armor
Khám phá nhật ký chính sách bảo mật để xác thực rằng quy trình quản lý bot hoạt động như mong đợi.
- 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 hình ảnh xác thực lại).
- Nhấp vào Nhật ký.
- Nhấp vào Xem nhật ký chính sách.
- Dưới đây là truy vấn MQL(giám sát ngôn ngữ truy vấn), 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)
- Bây giờ, hãy nhấp vào Run Query (Chạy truy vấn).
- Tìm mục nhập nhật ký trong kết quả Truy vấn, trong đó yêu cầu là về http://[LB_IP_v4]/good-score.html. Mở rộng jsonPayload.Expand approvedSecurityPolicy.
- Lặp lại tương tự cho http://[LB_IP_v4]/bad-score.html và http://[LB_IP_v4]/median-score.html
Lưu ý rằng configurationAction đượ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 phòng thí nghiệm này về Quản lý bot với 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. Vệ sinh phòng thí nghiệm
- Chuyển đến phần Bảo mật mạng >> Giáp mây >> %POLICY NAME% và chọn xóa –
- Chuyển đến phần Kết nối mạng >> Dịch vụ mạng >> Cân bằng tải. Chọn trình cân bằng tải bạn đã tạo và nhấp vào xoá.
Chọn dịch vụ phụ trợ và tính năng kiểm tra tình trạng làm tài nguyên bổ sung sẽ bị xoá –
- Chuyển đến Trình đơn điều hướng ( ) > Compute Engine > (Công cụ điện toán) > Nhóm thực thể. Chọn nhóm thực thể được quản lý rồi nhấp vào Xoá –
Xác nhận xoá bằng cách nhập "xoá" vào hộp văn bản.
Chờ hệ thống xoá nhóm thực thể được quản lý. Thao tác này cũng sẽ xoá thực thể đó trong nhóm. Bạn chỉ có thể xoá mẫu sau khi xoá nhóm thực thể.
- Chuyển đến mục Instance mẫu (Mẫu thực thể) trong ngăn bên trái**.** Chọn mẫu phiên bản rồi nhấp vào 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 mặc định cho phép kiểm tra sức khoẻ và cho phép 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 các khoá chúng ta đã tạo rồi xoá chúng. 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 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 thử thách. Bạn thiết lập chính sách quản lý Bot Cloud Armor và xác thực cách những bot này xử lý yêu cầu theo 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 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 thử thách reCAPTCHA.
- Cách xác thực rằng Chính sách quản lý bot đang hoạt động như dự kiến.
Các bước tiếp theo
- Hãy thử thiết lập mã thông báo hành động reCAPTCHA.