使用 VPC Service Controls

VPC Service Controls 是一項 Google Cloud 功能,可用來設定服務 perimeter 以防範資料遭竊。

Developer Connect 中的 VPC Service Controls 無法防範可能發生的資料外洩至外部原始碼管理系統。本指南說明如何使用自訂機構政策進一步控管,協助防範這些情況。SCMS

如要進一步瞭解如何使用 VPC Service Controls,請參閱「使用 VPC Service Controls 設定服務範圍」。

  • 建立自訂組織政策,限制開發人員可建立的連線。

  • 建立自訂機構政策,允許開發人員僅透過特定 Service Directory 資源建立及更新連線。

  • 查看限制,瞭解 Developer Connect 洞察資料的限制。

事前準備

如要使用本指南提供的指令列範例,請安裝及設定 Google Cloud CLI

必要的角色

如要取得建立或編輯自訂組織政策所需的權限,請要求管理員授予組織資源的組織政策管理員 (roles/orgpolicy.policyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立限制條件,讓小組只能連線至特定 SCMS

如要降低資料外洩至 SCMS 的可能性,其中一種方法是限制允許連線的 SCMS。您可以建立自訂機構政策,允許連線至一或多個指定的 SCMS。

下列機構政策會限制存放區連線,只允許連線至 GitHub Enterprise:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- developerconnect.googleapis.com/Connection
methodTypes:
- CREATE
- UPDATE
condition: |
  resource.githubEnterpriseConfig.hostUri=="https://github.mycompany.net"
actionType: ALLOW
displayName: Connection GitHub Enterprise Host Constraint
description: |
  Allows creation/update of Developer Connect connections only to GitHub Enterprise host github.mycompany.net

建立限制,要求透過 Service Directory 建立連線

您可以建立自訂機構政策,只允許連線至指定的 Service Directory 端點,降低資料外洩的可能性。

下列機構政策只允許連線至特定 Service Directory 端點:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- developerconnect.googleapis.com/Connection
methodTypes:
- CREATE
- UPDATE
condition: |
  resource.gitlabEnterpriseConfig.serviceDirectoryConfig.service=="projects/my-project/locations/us-central1/namespaces/ns/services/myendpoint"
actionType: ALLOW
displayName: Connection GitLab Enterprise Service Directory endpoint
description: |
  Allows creation/update of Developer Connect connections only through a specific Service Directory resource

Developer Connect 洞察資料的限制

搭配 VPC Service Controls 使用 Developer Connect 洞察資料 (InsightsConfig) 時,請注意下列已知限制和設定需求:

  • App Hub API 依附元件:Developer Connect 洞察資料依附於 App Hub API。對於使用資料夾管理邊界的應用程式,資料夾層級的 VPC Service Controls 限制不會套用至子代專案;即使子代專案與管理專案不在同一個 perimeter,App Hub 仍可探索所有子代專案的服務和工作負載。

  • 透過 App Topology 取得資源中繼資料:使用 Developer Connect 洞察資料時,如果也啟用 App Topology API,即可透過 App Topology 取得豐富的資源中繼資料。如果您同時使用這兩項服務,建議在邊界中限制 Developer Connect 洞察 API (developerconnect.googleapis.com) 和 App Topology API(apptopology.googleapis.com)。

  • App Hub 應用程式動態消息和 IAM 存取控管:當 InsightsConfig 追蹤 App Hub 應用程式的洞察資料時,Developer Connect 會在 App Hub 應用程式的管理資料夾或專案界線中,建立 Cloud Asset Inventory 即時動態消息。這些動態饋給的資料會直接發布至 Developer Connect 服務,但只有獲准從這些資料夾或專案讀取資產中繼資料的 Developer Connect 服務代理人,才能使用這些資料。除了使用 IAM 角色限制哪些 Developer Connect 服務代理程式可獲得這項存取權,託管 InsightsConfig 資源的專案和發布資料的專案也必須位於相同的 VPC Service Controls 範圍內,或是必須為 Developer Connect 服務代理程式新增輸入和輸出規則,允許存取。

  • 專案範圍的資訊提供和 IAM 存取控管:當 InsightsConfig 範圍限定為專案時,Developer Connect 會直接在目標專案中建立 Cloud Asset Inventory 即時資訊提供。這些動態饋給的資料會直接發布至 Developer Connect 服務,但只有獲准從這些專案讀取資產中繼資料的 Developer Connect 服務代理程式,才能使用這些資料。除了使用 IAM 角色限制哪些 Developer Connect 服務代理程式可獲得這項存取權,託管 InsightsConfig 資源的專案和發布資料的專案也必須位於相同的 VPC Service Controls 範圍內,或是必須為 Developer Connect 服務代理程式新增輸入和輸出規則,允許存取。

  • 構件中繼資料和出處的範圍對齊:託管 InsightsConfig 資源的專案,以及包含構件中繼資料或出處的任何專案,都必須位於相同的 VPC Service Controls 範圍內,或是必須為 Developer Connect 服務代理程式新增輸入和輸出規則,允許存取。

  • 部署記錄的範圍對齊:託管 InsightsConfig 資源的專案,以及包含部署作業的任何專案,都必須位於相同的 VPC Service Controls 範圍內,或是必須為 Developer Connect 服務代理程式新增輸入和輸出規則,允許存取。

後續步驟