准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create shared flow and flow hook
/ 40
Add a Cloud Armor security policy
/ 40
Wait for instance to be ready
/ 20
在本實驗室,您將使用 Apigee X 威脅防護政策,保護 API 免於內容型威脅,並將 Cloud Armor 政策套用至全域外部 HTTPS 負載平衡器,以啟用網頁應用程式防火牆 (WAF) 功能,例如分散式阻斷服務 (DDoS) 防護、OWASP Top 10 風險緩解功能,以及 IP 和地理位置存取控管。
系統已建立負載平衡器和橋接 VM 的代管執行個體群組,方便您存取執行階段執行個體。這個設定的架構如下所示:
傳入的 API 呼叫會透過全域外部 HTTPS 負載平衡器進入客戶專案。外部 HTTPS 負載平衡器無法將呼叫轉送至租戶專案,因此會將要求轉送至客戶專案中的橋接 VM 代管執行個體群組。這些橋接 VM 位於與 Apigee 執行階段執行個體連線的對等網路中,可讓 VM 將 API 呼叫轉送至執行階段執行個體。
傳送至負載平衡器的 HTTP 流量會轉送至橋接 VM,然後再轉送給 Apigee 執行階段執行個體。您將新增 Cloud Armor 安全性政策,禁止特定流量傳送至執行階段。
JSON 和 XML 攻擊會使用精心建構的酬載來造成 JSON 和 XML 剖析器超載,藉此發起應用程式層級的阻斷服務攻擊。Cloud Armor 無法偵測這類攻擊,但 Apigee 可以。JSONThreatProtection 和 XMLThreatProtection 政策可直接偵測到這些惡意酬載,不需將酬載載入剖析器。您將使用 JSONThreatProtection 政策,防範格式錯誤的 JSON 酬載。
本實驗室的說明同時適用於付費和評估組織。
本實驗室將說明如何執行下列工作:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
在這項工作中,您將建立共用流程,並加入 JSONThreatProtection 政策,然後使用流程掛鉤,為所有 Apigee API 啟用這項政策。
JSONThreatProtection 政策會拒絕超過指定限制的傳入 JSON 要求。為共用流程套用這項政策,並將共用流程附加到流程掛鉤後,就能透過政策保護部署至環境的所有 Proxy 收到的要求。
如要開啟 Apigee 控制台,請按照下列指示操作:
Apigee,然後點選搜尋結果中的「Apigee API 管理平台」。Apigee 控制台隨即開啟,到達網頁會顯示常用位置的快速連結。
這樣 Apigee 就會新增至導覽選單的收藏。
在導覽選單中,依序選取「Proxy 開發」>「共用流程」。
點選「建立」。
共用流程可包含一組政策和條件,並可透過 FlowCallout 政策在 API Proxy 或其他共用流程中執行。在本實驗室,您會透過流程掛鉤使用共用流程,將共用流程附加至在評估組織部署的每個 Proxy。
將共用流程命名為 protect-json,然後點按「建立」。
點選「Develop」分頁標籤。
在共用流程的左選單,按一下「共用流程」部分的「預設」。
在 sharedflows/default.xml 窗格中,點按「新增政策步驟」圖示 。
在「Select policy」部分,選取「Create new policy」。
選取「JSON Threat Protection」,然後將「Display Name」和「Name」設為 JTP-Protect。
按一下「Add」。
JSONThreatProtection 政策包含多個元素,可對傳入的 JSON 要求設定限制。這些限制通常會根據 API 的最大值來設定。在本例中,請保留政策的預設設定。
這項政策只會在要求的 Content-Type 標頭設為 application/json 時才會執行,表示傳入的要求有 JSON 酬載。
按一下「儲存」。
點選「部署」,然後在「Environment」選取「eval」。
依序點選「Deploy」>「Confirm」。
共用流程會附加至 Pre-proxy 流程掛鉤,因此會在 Proxy 執行前執行。
依序前往「管理」>「環境」。
依序點選「eval」>「Flow Hooks」。
從「Pre-proxy」列的下拉式選單,選取「protect-json」共用流程,然後點按「儲存」。
您將在後續工作中測試這個流程掛鉤。
點選「Check my progress」,確認目標已達成。
在這項工作中,您會新增 Cloud Armor 安全性政策,保護負載平衡器並控管 API 存取權。
Cloud Armor 是 Google Cloud 的網頁應用程式防火牆 (WAF)。每個負載平衡器只能指定一項 Cloud Armor 政策。在本實驗室,您將使用 Cloud Armor 安全性政策,阻擋特定流量抵達 Apigee 執行階段執行個體,保護 API 安全。
依序點選 Cloud 控制台分頁的「導覽選單」 >「查看所有產品」>「網路」部分的「網路安全性」>「Cloud Armor 政策」。
點選「建立政策」。
在「名稱」部分輸入 protect-apis。
這項安全性政策會使用規則來封鎖傳送至 Apigee API 的特定流量。
在「預設規則動作」部分,選取「拒絕」。
除非使用者符合明確允許流量的規則,否則將無法存取 API。
在「拒絕狀態」下拉式選單,選取「403 (禁止)」。
如果要求不符合允許流量的規則,系統會向使用者傳回 「403 (禁止)」狀態碼。
點按「下一步」。
這項規則只允許來自指定國家/地區的要求。
點選「新增規則」。
按一下「進階模式」。
基本模式規則只能指定要比對的 IP 位址或範圍。在此範例中,您需要指定允許的國家/地區代碼。
在「比對」部分指定下列運算式:
在 Cloud Armor 中,region_code 的指定依據為 ISO 3166-2 區域代碼。這項規則會比對來自美國的要求。
在「動作」部分指定「允許」。
將「優先順序」設為「1000」,然後點選「儲存規則變更」。
這項規則會封鎖含有 SQL 輸入內容的要求,避免發生 SQL 注入。
點選「新增規則」。
按一下「進階模式」。
在「比對」部分指定下列運算式:
這個運算式指定了預先設定的 Cloud Armor 規則。預先設定的規則會使用開放原始碼的業界標準簽名來偵測惡意要求。如要停用特定簽名,請提供要關閉的簽名名稱。
在這個範例中,敏感度等級 3 和 4 的簽名已關閉。簽名的敏感度等級 (也稱為偏執等級) 代表一種權衡:安全等級越高,誤報數也會越高。
等級 1 是預設安全等級,誤報機率極低。等級 2 可提供額外防護,抵禦進階攻擊和混淆攻擊。等級 3 和 4 的簽名會更積極攔截,但誤報機率也會提高。舉例來說,含有簡單 JSON 酬載的 POST 要求,可能就會觸發等級 3 或 4 的簽名。
將「動作」設為「拒絕」,並將「拒絕狀態」設為「403 (禁止)」。
將「優先順序」設為 500。
評估 Cloud Armor 政策規則時,系統會採用第一個符合要求的規則,並根據該規則採取行動。系統必須先執行 SQL 注入檢查,再執行區域檢查,才能拒絕來自允許區域但包含 SQL 注入模式的要求。設定較小的優先順序值,即可確保系統在區域檢查前先執行 SQL 注入檢查。
點選「儲存規則變更」。
接著查看右側摘要。這項政策包含 3 項規則。系統會依優先順序值 (由小到大) 評估規則,並採用第一個相符的規則。
第一項規則會在偵測到 SQL 注入模式時拒絕存取。
第二項規則會允許來自美國的存取要求。
最後一項規則會拒絕所有流量的存取要求。
點選「建立政策」。
「政策」分頁會顯示新的 protect-apis 政策有 0 個目標,因為您尚未將其附加至負載平衡器。
點選 protect-apis 旁的政策選單按鈕 ,然後點選「對目標套用政策」。
在「後端服務 1」下拉式選單中,選取「apigee-proxy-backend」,然後點選「新增」。
protect-apis 政策詳細資料頁面應該很快就會顯示,這項政策已套用至 1 個目標。
點選「Check my progress」,確認目標已達成。
在這項工作,您將等待 Apigee 評估組織佈建完成。
Apigee 組織佈建作業可能需要較長時間才能完成。您可以使用 Apigee API 監控組織的佈建進度。
在 Cloud Shell 輸入下列指令,確認 GOOGLE_CLOUD_PROJECT 變數包含您的專案名稱:
GOOGLE_CLOUD_PROJECT 變數應包含專案名稱,也就是 Apigee 組織名稱。
如果未設定 GOOGLE_CLOUD_PROJECT 變數,請使用類似下方的指令手動設定變數,並將 {project} 替換為專案名稱:
將下列指令貼入 Cloud Shell:
這組指令會使用 Apigee API,判斷是否已建立 Apigee 執行階段執行個體,以及是否已附加 eval 環境。
等待執行個體準備就緒。
畫面顯示 ***ORG IS READY TO USE*** 文字時,表示執行個體已準備就緒。
點選「Check my progress」,確認目標已達成。
在這項工作中,您將驗證 Cloud Armor 安全性政策是否會保護 API 並允許來自核准區域的流量,以及流程掛鉤能否防範 JSON 威脅。
系統已自動建立虛擬機器 apigeex-test-vm,可用來從美國呼叫 API。
在 Cloud Shell 啟用 SSH 連線,連往美國的測試 VM:
如果系統提示 Do you want to continue (Y/n)?,請按下 Y 鍵繼續操作。
對於 Cloud Shell 中顯示的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
您是以專案擁有者的身分登入,因此能透過 SSH 連至這個機器。
Cloud Shell 工作階段現在會在 VM 內執行。
確認現在已可存取 hello-world API Proxy:
hello-world Proxy 可能需要一小段時間才會部署完成,並開始透過外部負載平衡器提供 Proxy 服務。如果指令傳回 ***HELLO-WORLD IS ACCESSIBLE***,表示 hello-world proxy 已可使用。
在 eval 環境呼叫已部署的 hello-world API Proxy:
主機名稱「eval.example.com」的 DNS 項目已建立,並包含負載平衡器的傳入 IP 位址。
-i 選項會顯示回應的狀態碼和標頭。
-k 選項會略過負載平衡器的 TLS 憑證驗證,因為負載平衡器使用的 TLS 憑證是自行簽署的憑證,而非由已知憑證授權單位驗證的憑證。
VM 位於美國,因此 curl 指令應會成功傳回 hello-world Proxy 產生的 Hello, Guest! 回應:
使用下列指令呼叫 hello-world Proxy:
這項要求超出共用流程中 JSONThreatProtection 政策指定的 ObjectEntryNameLength 限制。由於共用流程已附加至 pre-proxy 流程掛鉤,因此會套用至所有 API Proxy。
回應內容大致如下:
使用下列指令呼叫 hello-world API Proxy:
item 查詢參數使用了 SQL 注入模式;如果透過串連字串建構 SQL 查詢,可能會造成非預期的後果。
Cloud Armor 已成功偵測到 SQL 注入模式並封鎖要求,傳回 403 Forbidden 回應:
輸入 exit,關閉與美國虛擬機器的 SSH 連線。
在這項工作中,您將驗證 Cloud Armor 安全性政策是否會封鎖來自未列入允許清單的區域流量。
系統已在可用區
如果系統要求您授權,請點按「授權」。
對於 Cloud Shell 中顯示的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
您是以專案擁有者的身分登入,因此能透過 SSH 連至這個機器。
Cloud Shell 工作階段現在會在 VM 內執行。
在 eval 環境呼叫已部署的 hello-world API Proxy:
VM 不在美國境內,因此 Cloud Armor 應封鎖要求並傳回 403 錯誤:
在這項工作中,您要透過 Cloud Monitoring 查看 Cloud Armor 政策資訊主頁。
在「Cloud 控制台」分頁,依序前往「監控」>「資訊主頁」。
點選「Cloud Armor 政策總覽」。
這個資訊主頁會顯示所有 Cloud Armor 政策允許和封鎖的要求比率。目前您只有一項政策。
在「政策」窗格,點選「protect-apis」。
這個資訊主頁會顯示 protect-apis 政策允許和封鎖的要求比率。
如要記錄個別要求的詳細資料,必須為負載平衡器啟用要求記錄功能。
在本實驗室,您建立了 Cloud Armor 政策,並根據 Cloud Armor 規則,使用該政策拒絕或允許傳入流量。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 9 月 17 日
實驗室上次測試日期:2025 年 9 月 17 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验