使用 VPC Service Controls 範圍保護 Compute Engine


本教學課程說明如何使用服務安全防護措施保護 Compute Engine,以及如何排解輸入違規問題,允許授權存取 Compute Engine。

您可以透過 VPC Service Controls,為 Google 代管服務的資源定義服務範圍,藉此控管對這些服務和這些服務之間的通訊。您可以圍繞敏感資源建立零信任邊界,限制只有授權 IP 位址、使用者和裝置才能存取。這項功能可讓您定義安全性政策,禁止存取受信任範圍外的 Google 代管服務、禁止透過不受信任的位置存取資料,以及降低資料竊取的風險。

本教學課程適用於 Trusted Cloud 機構管理員,可協助他們瞭解 VPC Service Controls 的基本概念。

目標

  • 瞭解 VPC Service Controls 的基本概念。
  • 建立服務範圍。
  • 使用 VPC Service Controls 保護專案。
  • 排解 VPC Service Controls 進入違規問題。

費用

在本文件中,您會使用 Trusted Cloud by S3NS的下列計費元件:

如要根據預測用量估算費用,請使用 Pricing Calculator

初次使用 Trusted Cloud 的使用者可能符合免費試用資格。

完成本文所述工作後,您可以刪除已建立的資源,避免繼續計費。詳情請參閱清除所用資源一節。

事前準備

建立服務範圍

建立服務安全防護範圍,保護 My-Project-2 專案中的 Compute Engine API:

  1. 在 Trusted Cloud 控制台中,前往「VPC Service Controls」頁面。

    前往 VPC Service Controls

    確認您位於機構範圍內。

  2. 按一下「管理政策」

  3. 建立新的存取權政策,範圍限定為 Exercise 資料夾。

  4. 建立新的邊界,並提供下列詳細資料:

    • 標題:MyFirstPerimeter

    • 範圍類型:一般

    • 強制執行模式:強制執行

    • 要保護的資源:My-Project-2 專案

    • 受限服務:Compute Engine API

驗證範圍

在這個部分中,您可以對專案中的資源提出存取要求,確認服務範圍是否保護預期資源。

  1. 存取 My-Project-1 專案,然後前往「VM 執行個體」頁面,確認您可以存取 Compute Engine。

    前往 VM 執行個體

    您應該可以存取 My-Project-1,因為該項目不受您先前建立的周邊防護範圍保護。

  2. 存取 My-Project-2 專案,然後前往「VM 執行個體」頁面,確認您可以存取 Compute Engine。

    您應該會看到 VPC Service Controls 拒絕存取 Compute Engine 的要求,因為 MyFirstPerimeter 範圍會保護 My-Project-2 和 Compute Engine API。

排解違規問題

VPC Service Controls 稽核記錄會詳細記錄對受保護資源的要求,以及 VPC Service Controls 拒絕要求的原因。您需要這項資訊,才能在 My-Project-2 專案中找出並排解違規問題。

查看稽核記錄

  1. 在專案的稽核記錄中,找出 VPC Service Controls 違規事項的專屬 ID:My-Project-2

    1. 前往 Trusted Cloud 控制台的「Logs Explorer」頁面:

      前往「Logs Explorer」(記錄檔探索工具)

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

    2. 選取 My-Project-2 專案。

    3. 如要顯示所有稽核記錄,請在查詢編輯器欄位中輸入下列查詢:

      resource.type="audited_resource"
      protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
      
    4. 點選「執行查詢」

    這項查詢會顯示所有 VPC Service Controls 稽核記錄。如要查看在 My-Project-2 專案中存取 Compute Engine API 時發生的違規詳細資料,請檢查最後一筆錯誤記錄。

    詳情請參閱「查看記錄」。

  2. 在「查詢結果」窗格中,按一下要排解問題的拒絕項目旁的「VPC Service Controls」,然後按一下「排解拒絕問題」

    「VPC Service Controls 疑難排解工具」頁面隨即開啟。這個頁面會顯示違規原因和其他資訊,例如違規是輸入或輸出違規。

    在本教學課程中,請尋找下列資訊:

    "principalEmail": "USER@DOMAIN"
    "callerIp": "PUBLIC_IP_ADDRESS"
    "serviceName": "compute.googleapis.com"
    "servicePerimeterName":
    "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter
    "ingressViolations": [
            {
    "targetResource": "projects/PROJECT_NUMBER",
    "servicePerimeter": "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter"
            }
          ],
    "violationReason": "NO_MATCHING_ACCESS_LEVEL",
    "resourceNames": "PROJECT_ID"
    

    違規原因是"NO_MATCHING_ACCESS_LEVEL"。如果 IP 位址、裝置類型或使用者身分與範圍相關聯的任何輸入規則或存取層級不符,就會發生"NO_MATCHING_ACCESS_LEVEL"違規情形。如果記錄中缺少呼叫端 IP 位址,或顯示為內部 IP 位址,則這項違規行為可能是因為 Trusted Cloud 服務不支援 VPC Service Controls 所致。

如要修正 My-Project-2 專案中的這項拒絕,有兩種做法:

  • 建立存取層級,允許周邊內專案存取系統 IP 位址。

  • 建立輸入規則,允許範圍外的 API 用戶端存取範圍內的資源。

下一節將說明如何建立存取層級,排解這類拒絕存取的問題。

建立存取層級

  1. 前往 Trusted Cloud 控制台的「Access Context Manager」頁面,並將範圍設為 Exercise 資料夾。

    前往 Access Context Manager

  2. 建立存取層級,並提供下列詳細資料:

    • 在「Create conditions in」(建立條件於) 中,選取「Basic mode」(基本模式)

    • 在「符合條件時,傳回以下值:」部分,選取「True」

    • 選取「IP 子網路」屬性,然後指定系統的公開 IP 位址。

    • 選取「地理位置」屬性,然後指定地理位置。

    只有在 IP 位址和地理位置相符時,這個存取層級才會允許存取。

  3. 前往機構範圍的「VPC Service Controls」頁面。

    前往 VPC Service Controls

  4. 選取您在本教學課程稍早建立的存取權政策。

  5. 將您在 Exercise 資料夾範圍建立的存取層級新增至 MyFirstPerimeter 範圍。

測試存取權

新增存取層級後,請確認您可以在 My-Project-2 專案中存取 Compute Engine,並建立 VM 執行個體。

  1. 前往 Trusted Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 建立 VM 執行個體

大約一分鐘後,Compute Engine 會建立 VM 執行個體,這項動作會驗證您是否擁有完整存取權,可存取安全防護範圍內的 Compute Engine。

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本教學課程中所用資源的相關費用,請刪除含有該項資源的專案,或者保留專案但刪除個別資源。

刪除專案

  1. In the Trusted Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

刪除個別資源

刪除 VM 執行個體

  1. In the Trusted Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

刪除 VPC Service Controls 資源

  1. 刪除服務範圍

  2. 刪除您在 Exercise 資料夾範圍建立的存取層級

後續步驟