1. Giới thiệu
Chính sách bảo mật của Google Cloud Armor Edge cho phép bạn hạn chế quyền truy cập vào các đối tượng được lưu vào bộ nhớ đệm trên CDN của Google Cloud và Google Cloud Storage. Ví dụ: bạn nên đảm bảo rằng người dùng không truy cập vào các đối tượng trong bộ chứa lưu trữ từ các khu vực địa lý bị hạn chế, hoặc đảm bảo rằng hoạt động phân phối nội dung nghe nhìn của bạn đang lọc theo các khu vực địa lý mà bạn có giấy phép để truy cập.
Trong phòng thí nghiệm này, chúng ta sẽ tạo một bộ chứa GCS, tải hình ảnh lên đó, liên kết hình ảnh đó với một trình cân bằng tải, sau đó bật các chính sách Cloud CDN và Edge Security trên đó.
Kiến thức bạn sẽ học được
- Cách thiết lập Bộ chứa Cloud Storage chứa nội dung có thể lưu vào bộ nhớ đệm
- Cách tạo một Chính sách bảo mật Edge để bảo vệ nội dung
- Cách xác thực xem Chính sách bảo mật của Edge có hoạt động như mong đợi không
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
3. Tạo bộ chứa Cloud Storage
Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng > Bộ nhớ trên đám mây > Trình duyệt. Nhấp vào TẠO BUỔI:
Quy tắc đặt tên bộ chứa:
- Đừng đưa thông tin nhạy cảm vào tên bộ chứa, vì không gian tên bộ chứa là không gian tên chung và hiển thị công khai.
- Tên bộ chứa chỉ được chứa chữ cái viết thường, số, dấu gạch ngang (-), dấu gạch dưới (_) và dấu chấm (.). Tên có chứa dấu chấm cần phải xác minh.
- Tên bộ chứa phải bắt đầu và kết thúc bằng một số hoặc chữ cái.
- Tên bộ chứa phải chứa từ 3 đến 63 ký tự. Tên chứa các dấu chấm có thể chứa tối đa 222 ký tự nhưng mỗi thành phần được phân tách bằng dấu chấm có thể dài không quá 63 ký tự.
- Bạn không thể biểu thị tên bộ chứa dưới dạng địa chỉ IP bằng ký hiệu thập phân dạng dấu chấm (ví dụ: 192.168.5.4).
- Tên bộ chứa không được bắt đầu bằng "goog" tiền tố.
- Tên bộ chứa không được chứa "google" hoặc viết sai chính tả gần đúng của "google".
- Ngoài ra, để tuân thủ DNS và khả năng tương thích trong tương lai, bạn không nên sử dụng dấu gạch dưới (_) hoặc có dấu chấm liền kề hoặc dấu gạch ngang khác. Ví dụ: ".." hoặc "-". hoặc ".-" không hợp lệ trong tên DNS.
Nhấp vào TIẾP TỤC.
Loại vị trí: khu vực
Vị trí: chọn một khu vực cách xa bạn
Nhấp vào TIẾP TỤC.
Lớp bộ nhớ mặc định: Tiêu chuẩn
Nhấp vào TIẾP TỤC.
Bỏ đánh dấu mục Thực thi chức năng ngăn chặn quyền truy cập công khai trên bộ chứa này trong phần Ngăn chặn quyền truy cập công khai.
Chọn Hiệu ứng hạt mịn trong phần Kiểm soát truy cập.
Nhấp vào TIẾP TỤC.
Sau khi bạn định cấu hình bộ chứa, hãy nhấp vào TẠO:
Vậy là xong — bạn vừa tạo một bộ chứa trên Cloud Storage!
4. Tải một Đối tượng lên bộ chứa của bạn
Bây giờ, hãy tải một đối tượng lên một bộ chứa.
Trước tiên, hãy tải hình ảnh này xuống một phiên bản tạm thời trong Cloud Shell. Trong ví dụ bên dưới, hình ảnh Google từ trang chủ Google được sử dụng.
Của Cloud Shell
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
Sử dụng lệnh gtm cp để tải hình ảnh lên từ vị trí bạn đã lưu hình ảnh vào bộ chứa bạn đã tạo:
Của Cloud Shell
gsutil cp google.png gs://YOUR-BUCKET-NAME
Giờ hãy xoá hình ảnh đã tải xuống:
Của Cloud Shell
rm google.png
Tìm Đối tượng của bạn rồi nhấp vào ba dấu chấm ở bên phải rồi chỉnh sửa quyền để công khai.
5. Tạo trình cân bằng tải
Tiếp theo, chúng ta sẽ tạo Trình cân bằng tải HTTP.
Chuyển đến phần Kết nối mạng >> Dịch vụ mạng >> Cân bằng tải >> Tạo Trình cân bằng tải >> Trình cân bằng tải HTTP >> Internet đến máy ảo của tôi >> Trình cân bằng tải HTTP(S) phiên bản cũ
Trước tiên, hãy đặt tên cho trình cân bằng tải mà bạn sẽ tạo.
Tạo bộ chứa phụ trợ
Tạo một bộ chứa phụ trợ mới. Đây chính là bộ chứa mà bạn vừa tạo rồi chọn Enabled (Đã bật CDN) và Cache Static Content (Nội dung tĩnh của bộ nhớ đệm). Nhấp vào Tạo.
Tạo quy tắc đường dẫn và máy chủ lưu trữ
Chuyển đến phần Quy tắc lưu trữ và đường dẫn ở bên trái. Chúng ta sẽ sử dụng một quy tắc máy chủ/đường dẫn đơn giản và gửi bất kỳ yêu cầu nào đến bộ chứa.
Tạo cấu hình giao diện người dùng
Chọn cấu hình giao diện người dùng. Đối với cấu hình giao diện người dùng, chúng tôi sẽ sử dụng HTTP (mặc dù HTTPS cũng sẽ hoạt động nếu bạn có chứng chỉ) và địa chỉ IP tạm thời, đồng thời đảm bảo rằng bạn đã chọn mạng cấp cao.
Nhấp vào Tạo
Tải IP của trình cân bằng tải
Tìm IP Trình cân bằng tải từ bảng điều khiển bằng cách nhấp vào tên trình cân bằng tải trong danh sách trình cân bằng tải cho dự án của bạn.
Truy vấn trình cân bằng tải
Sau vài phút, hãy thử truy vấn trình cân bằng tải cho đối tượng mà bạn đã tải lên. Bạn sẽ cần địa chỉ IP của trình cân bằng tải và tên hình ảnh. Lệnh này có cấu trúc như sau:
Từ nhà ga
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Đầu ra
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
Xác thực rằng nội dung của bạn đang được phân phát từ CDN thông qua CDN hoặc tính năng Giám sát cân bằng tải. Bạn có thể đạt được tỷ lệ truy cập gần với 100%. Nếu cần chạy một vài truy vấn, bạn có thể làm như sau
Từ nhà ga
#for i in `seq 1 50`; do curl http://%loadbalncer-IP%/google.png; done
Xác nhận nội dung do Cloud CDN phân phát
Xác thực rằng bạn đang phân phát lưu lượng truy cập từ CDN bằng cách chuyển đến Network Services >> (Dịch vụ mạng >>) CDN
6. Xoá đối tượng khỏi GCS
Bây giờ, khi đã điền vào bộ nhớ đệm, hãy xoá đối tượng khỏi bộ chứa để nhấn mạnh rằng chúng ta đang áp dụng chính sách này cho bộ nhớ đệm chứ không phải phần phụ trợ.
Chuyển đến Cloud Storage >> %tên bộ chứa% >> đối tượng
Chọn hình ảnh và xoá hình ảnh đó.
7. Tạo Chính sách bảo mật Edge cho bộ nhớ đệm CDN
Chuyển đến phần Bảo mật mạng >> Cloud Armor rồi nhấp vào Tạo chính sách
Chọn mục sau
Loại chính sách: Chính sách bảo mật cạnh
Hành động mặc định: Từ chối
Áp dụng chính sách này cho bộ chứa phụ trợ của bạn.
8. Xác thực chính sách bảo mật Edge
Bây giờ, chúng ta đã tạo một Chính sách bảo mật cạnh trước bộ chứa phụ trợ, hãy xác thực rằng chính sách này đang hoạt động như mong đợi.
Kiểm tra chính sách bảo mật
Sau vài phút, bạn sẽ có thể kiểm tra để đảm bảo rằng Chính sách Cloud Armor đang chạy. Từ dòng lệnh, chạy lệnh sau sẽ cho bạn lỗi 403
Từ nhà ga
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Đầu ra
curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer <
Điều tra nhật ký
Tiếp theo, bạn có thể kiểm tra nhật ký để xem chính sách bảo mật cạnh được thực thi. Chuyển đến Thao tác >> Ghi nhật ký >> Trình khám phá nhật ký
Nhập đoạn mã dưới đây vào truy vấn rồi nhấp vào chạy
resource.type:(http_load_balancer) AND jsonPayload.enforcedEdgeSecurityPolicy.name:(%SECURITY_POLICY_NAME%)
Lưu ý về phản hồi 403 và chính sách bảo mật được thực thi
Xoá chính sách bảo mật
Xoá chính sách bảo mật rồi truy vấn đối tượng khỏi bộ nhớ đệm.
Chuyển đến phần Bảo mật mạng >> Giáp mây >> %POLICY NAME% >> mục tiêu và xoá nhóm mục tiêu.
Xác nhận chính sách đã bị xoá
Sau vài phút, gửi một cuộn tròn khác đến tài nguyên trong bộ chứa lưu trữ. Lần này, bạn sẽ nhận được 200 phản hồi.
Từ nhà ga
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Đầu ra
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M < Date: Mon, 13 Dec 2021 23:06:46 GMT < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer < Age: 1621 < Cache-Control: public,max-age=3600 < { [775 bytes data] * Connection #0 to host 34.98.81.123 left intact * Closing connection 0
Xin chúc mừng! Bạn đã hoàn thành phòng thí nghiệm này về các Chính sách bảo mật của Cloud Armor Edge.
©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.
9. 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 Cloud Storage, chọn bộ chứa bạn đã tạo rồi nhấp vào xoá
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á.
10. Xin chúc mừng!
Bạn đã hoàn thành lớp học lập trình Defense Edge Cache sử dụng Cloud Armor!
Nội dung đã đề cập
- Cách thiết lập bộ chứa trên đám mây và trình cân bằng tải trên đám mây được liên kết
- Cách tạo một chính sách bảo mật của Cloud Armor Edge
- Cách xác thực rằng Chính sách bảo mật của Edge đang hoạt động như dự kiến.
Các bước tiếp theo
- Hãy thử thiết lập một Edge Security Policy bằng lượt truy cập vào bộ nhớ đệm của một tài nguyên của công cụ điện toán.