使用 VPC Service Controls 保護資源

如要進一步保護 Compute Engine 資源,可以使用 VPC Service Controls

您可以使用 VPC Service Controls 為 Compute Engine 資源定義服務範圍。服務範圍會限制資源及其相關資料的匯出和匯入作業,只能在定義的範圍內進行。

建立服務範圍時,請選取一或多個要受範圍保護的專案。相同範圍內專案之間的要求不受影響。只要相關資源位於同一個服務範圍內,所有現有 API 都能繼續運作。請注意,IAM 角色和政策仍適用於服務範圍內。

如果服務受到範圍保護,範圍的服務就無法向範圍的任何資源提出要求。這包括將資源從範圍內匯出至範圍外。如果要求符合特定條件,外部要求就能存取服務範圍內的受保護資源。詳情請參閱 VPC Service Controls 說明文件中的「總覽」。

如果提出的要求違反服務範圍,要求就會失敗,並顯示下列錯誤:

"code": 403, "message": "Request is prohibited by organization's policy."

安全防護優勢

VPC Service Controls 提供下列安全性優點:

  • 您可以限制僅允許授權網路或允許清單中的 IP 位址,以私密方式存取敏感的 Compute Engine API 作業,例如變更防火牆規則。
  • Compute Engine 永久磁碟快照和自訂映像檔可限制在周邊範圍內。
  • Compute Engine 執行個體中繼資料可做為有限的儲存系統。透過 Compute Engine API 存取執行個體中繼資料時,會受到服務範圍政策限制,因此可降低透過這個管道竊取資料的風險。

此外,您現在可以透過受限虛擬 IP (VIP) 存取 Compute Engine API。這樣一來,周邊內需要存取這項 API 的用戶端,就能簡化 Cloud DNS 和路由設定。

限制

  • 階層式防火牆不受服務邊界影響。
  • 虛擬私有雲對等互連作業不會強制執行虛擬私有雲服務範圍限制。
  • 共用 VPC 的 projects.ListXpnHosts API 方法不會對傳回的專案強制執行服務範圍限制。

權限

請確認您具備適當角色,可為貴機構管理 VPC Service Controls 邊界設定。

設定服務範圍

請按照 VPC Service Controls 說明文件中的「建立服務範圍」一節操作,設定服務範圍。

如要使用 Google Cloud CLI 設定服務安全防護範圍,請使用 --restricted-services 旗標指定 compute.googleapis.com,限制 Compute Engine API。

將 Compute Engine 新增為現有範圍的受限服務

如果您已有服務範圍,並想將 Compute Engine 新增至服務範圍,請按照 VPC Service Controls 說明文件中的「更新服務範圍」一節操作。

使用 VPC Service Controls 建立 VM

設定服務安全防護措施後,只要要求中的受影響資源包含在同一個服務安全防護措施中,您就不需要對現有的 API 呼叫或工具進行任何變更。舉例來說,下列指令會使用範例映像檔建立 VM 執行個體。在這種情況下,如果 IMAGE_PROJECT 位於服務範圍外 (且專案之間沒有服務範圍橋接器),指令就會失敗。

gcloud compute instances create new-instance \
    --image-family IMAGE_FAMILY --image-project IMAGE_PROJECT \
    --zone us-central1-a --machine-type n1-standard-72

如果您要從執行個體範本建立 VM,執行指令時,執行個體範本中參照的所有資源都必須位於同一個服務範圍內,或透過服務範圍橋接器連線。如果執行個體範本參照服務範圍外的資源,即使執行個體範本本身位於範圍內,要求也會失敗。

如要查看範例情境,瞭解如何使用周邊以外的 Compute Engine 用戶端,透過周邊內的 Cloud KMS 金鑰,在周邊以外建立 Compute Engine 磁碟,請參閱「Examples of API requests allowed by combination of ingress and egress rules」(API 要求範例:允許的輸入和輸出規則組合)。

公開映像檔專案

「作業系統詳細資料」頁面列出的所有映像檔專案,都會自動納入所有服務範圍。此外,系統也會自動納入 Fedora CloudopenSUSEHPC OS 的映像檔專案。

如果您使用的圖片專案未納入服務周邊,且不想直接新增這些專案,建議您將這些圖片專案複製到另一個專案。然後將該專案新增至服務安全範圍。

使用 VPC Service Controls 複製映像檔

如果兩個專案都屬於同一個服務範圍,您就可以將映像檔從一個專案複製到另一個專案。在本例中,DST_PROJECTSRC_PROJECT 必須屬於相同的服務安全防護範圍,要求才能正常運作。

gcloud compute images create --project DST_PROJECT IMAGE_NAME \
   --source-image SOURCE_IMAGE --source-image-project SRC_PROJECT \
    --family IMAGE_FAMILY --storage-location LOCATION

如果您選擇不直接將映像檔專案納入安全範圍,建議您先將所有要使用的映像檔複製到另一個專案,然後將該專案納入安全範圍。

搭配使用共用 VPC 和 VPC Service Controls

使用共用虛擬私有雲時,服務邊界限制會套用至特定作業涉及的所有專案。換句話說,如果作業涉及主專案和服務專案之間分散的資源,建議您確保主專案和服務專案位於同一個服務安全防護範圍內。

虛擬私有雲網路對等互連

虛擬私有雲網路對等互連可讓兩個不同機構的虛擬私有雲網路建立對等互連。由於服務範圍僅限於機構內的專案,因此服務範圍不會影響對等互連的虛擬私有雲網路。

階層式防火牆

階層式防火牆是在專案外部 (資料夾或機構層級) 設定的防火牆。服務安全防護範圍限制不適用於階層式防火牆。

代管執行個體群組

代管執行個體群組可協助您將一組 VM 執行個體做為單一實體來管理。代管執行個體群組 (MIG) 會使用執行個體範本建立 VM,因此映像檔或跨專案網路和子網路的所有限制都適用。也就是說,使用其他專案的映像檔時,請確保這些專案屬於同一個範圍,或將所需映像檔複製到其他專案,並將該專案納入服務範圍。所有服務範圍都會自動納入 Google 維護的公開映像檔專案。

如要搭配共用 VPC 使用執行個體群組,請確認專案位於同一服務範圍內。

後續步驟