1. 簡介
VPC Service Controls (VPC-SC) 是 Google Cloud 中的機構層級安全性控管機制,可讓企業客戶降低資料竊取風險。VPC Service Controls 可讓用戶端限制透過網際網路和其他服務存取多用戶群服務,同時限制對已授權 IP、用戶端內容和裝置參數的存取權,藉此為多用戶群服務提供零信任式存取權,減少蓄意和意外損失。您可以使用 VPC Service Controls 建立範圍,保護您明確指定的服務資源和資料。
本教學課程的目標是:
- 瞭解 VPC Service Controls 的基本概念
- 建立虛擬私有雲服務範圍
- 使用 VPC Service Controls 保護專案
- 解決 VPC Service Controls 輸入事件違規問題
2. 設定和需求
在本教學課程中,我們需要下列先決條件:
- GCP 機構。
- 機構下的資料夾。
- 資料夾下的同一機構有 2 項 GCP 專案。
- 機構層級的必要權限。
- 兩個專案的帳單帳戶。
資源設定
- 在 Google Cloud 控制台中的機構底下建立一個資料夾和兩個新專案 (可以重複使用現有的專案)。
(如果您還沒有 Google Workspace/Cloud Identity 帳戶,請先申請帳戶,因為您需要有機構,才能使用本教學課程)。
- 請確認您在機構層級具備本教學課程的適當權限。
費用
您必須在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行本程式碼研究室不會產生任何費用 (如果有的話)。如要關閉資源,以免產生本教學課程結束後產生的費用,您可以刪除自己建立的資源或刪除專案。新使用者符合 $300 美元免費試用方案的資格。
唯一會產生費用的資源是 VM 執行個體。如要查看預估費用,請前往 Pricing Calculator。
3. 建立範圍
在這個研究室中,我們會執行下列步驟:
- 按一下「管理政策」建立新的存取權政策,並將範圍限定為「程式碼研究室」資料夾。
- 在強制執行模式下建立新的範圍。將名稱命名為「SuperProtection」其他範例
- 建立範圍時,請選取要強制執行 ProjectZ 的專案。
- 選取「一般」範圍類型。
- 在「指定要限制的服務」對話方塊中,選取要限制為「Compute Engine」的服務。
範圍設定應如下所示:
4. 確認已強制執行範圍
- 前往「VM 執行個體」首頁存取 ProjectX,並確認您是否能夠存取 Compute Engine API。您可以這麼做,因為 projectX 不受建立的虛擬私有雲 SC 範圍保護。
- 存取 ProjectZ,並確認您是否可以存取 Compute Engine。您可以看到 VPC Service Controls 禁止該要求,因為服務範圍 SuperProtection 會保護 ProjectZ 和 Compute Engine API。
5. 解決遭拒問題
首先,我們必須確認究竟是什麼問題,才能找出進行疑難排解的方法。
- VPC Service Controls 記錄檔包含受保護資源要求的詳細資料,以及 VPC Service Controls 拒絕要求的原因。在記錄檔探索工具中使用下列查詢,找出 ProjectZ 稽核記錄中的 VPC Service Controls 專屬 ID:
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
這項操作會顯示所有 VPC Service Controls 稽核記錄。我們會尋找最後一個錯誤記錄。
- 按一下「VPC Service Controls」標頭,然後選取「排解拒絕問題」系統會開啟 VPC Service Controls 疑難排解工具。
這個 API 會在友善的 UI 中顯示違規原因,以及這是是否有輸入或輸出違規情況以及其他實用內容。
在本練習中,我們會尋找下列項目:
"principalEmail": "user@domain" "callerIp": "PUBLIC_IP_ADDRESS" "serviceName": "compute.googleapis.com" "servicePerimeterName": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection "ingressViolations": [ { "targetResource": "projects/[PROJECT_NUMBER]", "servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection" } ], "violationReason": "NO_MATCHING_ACCESS_LEVEL", "resourceNames": "[PROJECT_ID]"
我們有兩種方式可以在 ProjectZ 中修正這項拒絕問題。
在本教學課程中,我們將建立存取層級來排解問題。
- 前往資料夾 (程式碼研究室) 範圍的 Access Context Manager,然後建立新的存取層級。
- 使用「基本模式」並在符合 IP 子網路和地理位置時允許存取。
- 前往機構範圍的 VPC Service Controls。請選取這個程式碼研究室的存取權政策,然後編輯先前建立的範圍。
- 新增在資料夾範圍中建立的存取層級並儲存。
6. 測試結果。
確認我們可以存取 Compute Engine,並能建立 VM 執行個體。您已成功建立存取層級,接著讓我們嘗試在 ProjectZ 中存取 Compute Engine,並建立 VM 執行個體。
- 請將所有項目保留為預設值,然後嘗試建立低成本的 VM 執行個體。
大約一分鐘後,您應該會看見已建立的 VM 執行個體,而您可以確認您是否具備範圍內保護 Compute Engine 的完整存取權。
7. 清除
在未使用 VPC Service Controls 的情況下,使用 VPC Service Controls 不會另外收費,但最佳做法是清除本研究室中使用的設定。您也可以刪除 VM 執行個體和/或 Cloud 專案,以免產生費用。刪除 Cloud 專案後,系統就會停止對該專案使用的所有資源收取費用。
- 如要刪除 VM 執行個體,請勾選 VM 執行個體名稱左側的核取方塊,然後按一下「刪除」。
- 如要刪除範圍,請完成下列步驟:
- 在 Google Cloud 控制台中,依序點選「安全性」和機構範圍的「VPC Service Controls」。
- 在 VPC Service Controls 頁面中,找到要刪除的範圍,然後在相對應的表格列中按一下「刪除圖示」
- 如要刪除存取層級,請完成下列步驟:
- 前往 Google Cloud 控制台,在「資料夾範圍」中開啟「Access Context Manager」頁面。
- 在格狀檢視中,找出您要刪除的存取層級,然後在該列中按一下「刪除圖示」,然後點選「Delete」(刪除)。
- 如要關閉專案,請完成下列步驟:
- 前往 Google Cloud 控制台中的 IAM 與管理員設定您想刪除的專案頁面。
- 在「IAM 與」在「管理設定」頁面中,按一下「關閉」。
- 輸入專案 ID,然後點選「仍要關閉」。
8. 恭喜!
在本程式碼研究室中,您已建立並強制執行 VPC Service Controls 範圍,並排解相關問題。
瞭解詳情
- 請參閱 VPC Service Controls 說明文件。
- 請參閱 Access Context Manager 說明文件。
- 請參閱 VPC-SC 疑難排解工具。
授權
這項內容採用的是創用 CC 姓名標示 2.0 通用授權。