VPC Service Controls 基本教學課程 I

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 專案。
  • 機構層級的必要權限
  • 兩個專案的帳單帳戶。

1a62ebea85d6d4fc.png

資源設定

  1. Google Cloud 控制台中的機構底下建立一個資料夾和兩個新專案 (可以重複使用現有的專案)。

(如果您還沒有 Google Workspace/Cloud Identity 帳戶,請先申請帳戶,因為您需要有機構,才能使用本教學課程)。

  1. 請確認您在機構層級具備本教學課程的適當權限。
  1. 請確保資料夾下有這兩個專案,因為我們需要在資料夾層級建立範圍政策。瞭解如何將專案移至資料夾

f7c75ab82028cb15.png

費用

您必須在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行本程式碼研究室不會產生任何費用 (如果有的話)。如要關閉資源,以免產生本教學課程結束後產生的費用,您可以刪除自己建立的資源或刪除專案。新使用者符合 $300 美元免費試用方案的資格。

唯一會產生費用的資源是 VM 執行個體。如要查看預估費用,請前往 Pricing Calculator

3. 建立範圍

在這個研究室中,我們會執行下列步驟:

  1. 在 Google 控制台中,選取機構並「存取 VPC Service Controls」。請確認您在機構層級。

43d5af2d5f084bb4.png

  1. 按一下「管理政策」建立新的存取權政策,並將範圍限定為「程式碼研究室」資料夾。

9f75d949ca9992c4.png

  1. 在強制執行模式下建立新的範圍。將名稱命名為「SuperProtection」其他範例
  • 建立範圍時,請選取要強制執行 ProjectZ 的專案。
  • 選取「一般」範圍類型。
  • 在「指定要限制的服務」對話方塊中,選取要限制為「Compute Engine」的服務。

範圍設定應如下所示:

914d603103cb21.png

4. 確認已強制執行範圍

  1. 前往「VM 執行個體」首頁存取 ProjectX,並確認您是否能夠存取 Compute Engine API。您可以這麼做,因為 projectX 不受建立的虛擬私有雲 SC 範圍保護。
  2. 存取 ProjectZ,並確認您是否可以存取 Compute Engine。您可以看到 VPC Service Controls 禁止該要求,因為服務範圍 SuperProtection 會保護 ProjectZ 和 Compute Engine API。

d5073543f783e9c7.png

5. 解決遭拒問題

首先,我們必須確認究竟是什麼問題,才能找出進行疑難排解的方法。

  1. 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 稽核記錄。我們會尋找最後一個錯誤記錄。

  1. 按一下「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 中修正這項拒絕問題。

  • 建立存取層級以允許存取我的系統 IP,以便存取範圍內的專案。
  • 建立輸入規則,允許 API 用戶端從服務範圍外存取服務範圍內資源。

在本教學課程中,我們將建立存取層級來排解問題。

  1. 前往資料夾 (程式碼研究室) 範圍的 Access Context Manager,然後建立新的存取層級
  2. 使用「基本模式」並在符合 IP 子網路和地理位置時允許存取。

678f0f9d7bac921d.png

  1. 前往機構範圍的 VPC Service Controls。請選取這個程式碼研究室的存取權政策,然後編輯先前建立的範圍。
  2. 新增在資料夾範圍中建立的存取層級並儲存。

c0af5691dfe9dd75.png

6. 測試結果。

確認我們可以存取 Compute Engine,並能建立 VM 執行個體。您已成功建立存取層級,接著讓我們嘗試在 ProjectZ 中存取 Compute Engine,並建立 VM 執行個體。

  1. 前往「Compute Engine」,然後按一下「建立執行個體」

c1206aaf18497ec1.png

  1. 請將所有項目保留為預設值,然後嘗試建立低成本的 VM 執行個體。

大約一分鐘後,您應該會看見已建立的 VM 執行個體,而您可以確認您是否具備範圍內保護 Compute Engine 的完整存取權。

5b2ded02f669b2ef.png

7. 清除

在未使用 VPC Service Controls 的情況下,使用 VPC Service Controls 不會另外收費,但最佳做法是清除本研究室中使用的設定。您也可以刪除 VM 執行個體和/或 Cloud 專案,以免產生費用。刪除 Cloud 專案後,系統就會停止對該專案使用的所有資源收取費用。

  1. 如要刪除 VM 執行個體,請勾選 VM 執行個體名稱左側的核取方塊,然後按一下「刪除」

da0abf0894fe03cd.png

  1. 如要刪除範圍,請完成下列步驟:
  • 在 Google Cloud 控制台中,依序點選「安全性」和機構範圍的「VPC Service Controls」
  • 在 VPC Service Controls 頁面中,找到要刪除的範圍,然後在相對應的表格列中按一下「刪除圖示」
  1. 如要刪除存取層級,請完成下列步驟:
  • 前往 Google Cloud 控制台,在「資料夾範圍」中開啟「Access Context Manager頁面。
  • 在格狀檢視中,找出您要刪除的存取層級,然後在該列中按一下「刪除圖示」,然後點選「Delete」(刪除)
  1. 如要關閉專案,請完成下列步驟:
  • 前往 Google Cloud 控制台中的 IAM 與管理員設定您想刪除的專案頁面。
  • 在「IAM 與」在「管理設定」頁面中,按一下「關閉」
  • 輸入專案 ID,然後點選「仍要關閉」

8. 恭喜!

在本程式碼研究室中,您已建立並強制執行 VPC Service Controls 範圍,並排解相關問題。

瞭解詳情

授權

這項內容採用的是創用 CC 姓名標示 2.0 通用授權。