設定 VPC Service Controls 和私人叢集

本頁面說明 VPC Service Controls 和私人叢集的運作方式,以及如何在 Cloud Workstations 中設定這些叢集。

VPC Service Controls

VPC Service Controls 為工作站提供額外的安全性,以降低資料遭到竊取的風險。您可以透過 VPC Service Controls 將專案加入服務範圍內,如此一來,源自服務範圍外的要求就無法存取相關資源及服務。

在虛擬私有雲服務範圍內使用 Cloud Workstations 的需求如下:

  • 為協助保護 Cloud Workstations,每當您限制 Cloud Workstations API 時,都必須限制服務範圍內的 Compute Engine API。
  • 請確認 Google Cloud Storage API 和 Artifact Registry API 在服務範圍內 可透過虛擬私有雲存取。這是將映像檔拉到工作站的必要步驟。 雖然使用 Cloud Workstations 時不需要,但我們建議您允許 Cloud Logging API 和 Cloud Error Reporting API 在服務安全防護範圍內透過 VPC 存取。

  • 確認工作站叢集為私人。 設定私人叢集後,工作站就無法從虛擬私有雲服務邊界外部連線。Cloud Workstations 服務會禁止在 VPC 服務範圍內建立公開叢集。
  • 請務必在工作站設定中關閉公開 IP 位址。否則,專案中的 VM 會擁有公開 IP 位址。強烈建議您使用constraints/compute.vmExternalIpAccess 機構政策限制,為 VPC 服務安全防護範圍內的所有 VM 關閉公用 IP 位址。詳情請參閱「將外部 IP 位址限制為特定 VM」。

如要進一步瞭解服務範圍,請參閱「服務範圍詳細資料與設定」。

架構

將工作站叢集設為私有時,工作站叢集的控制層只會有內部 IP 位址。也就是說,公用網際網路的用戶端無法連線至工作站叢集的工作站。如要使用私有叢集,您必須透過 Private Service Connect 端點,手動將私有叢集連線至虛擬私有雲 (VPC) 網路。

使用私人叢集時,設定需要兩個 PSC 端點:

  • 根據預設,Cloud Workstations 會建立個別的 PSC 端點,將控制層連線至工作站 VM。

  • 您必須為私人叢集建立額外的 PSC 端點。如要從本機電腦連線至私有叢集中的工作站,本機電腦必須連線至 VPC 網路。使用 Cloud VPNCloud Interconnect,將執行機器的外部網路連線至虛擬私有雲網路。這個額外的 PSC 端點必須在外部網路連線的網路中建立,並使用 Cloud VPN 或 Cloud Interconnect。

下圖說明私有叢集的範例架構:

圖 1. 私人叢集

事前準備

開始操作前,請務必完成下列必要設定步驟:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Workstations API.

    Enable the API

  7. 請確認您具備專案的 Cloud Workstations 管理員 IAM 角色,才能建立工作站設定。如要在 Google Cloud 控制台中查看 IAM 角色,請前往「IAM」IAM頁面:

    前往「IAM」頁面

  8. Cloud Workstations 託管於從 Compute Engine 預先設定的公開 Container-Optimized OS (COS) 映像檔啟動的 VM。如果強制執行constraints/compute.trustedimageProjects組織政策限制,您必須設定映像檔存取限制,允許使用者從 projects/cos-cloud 或所有公開映像檔建立開機磁碟。
  9. 選用:啟用 Container File System API,加快工作站啟動速度。

    啟用 Container File System API

    詳情請參閱「使用映像檔串流技術縮短工作站啟動時間」。

  10. 建立私人叢集

    請按照下列步驟建立私人叢集:

    1. 前往 Google Cloud 控制台的「Cloud Workstations」頁面。

      前往 Cloud Workstations

    2. 前往工作站的「叢集管理」頁面。

    3. 點選「建立」

    4. 輸入工作站叢集的「名稱」,然後選取「區域」

    5. 在「Networking」(網路) 區段中,選取「Networks in this project」(這項專案中的網路)

    6. 選取「網路」和「子網路」

    7. 在「閘道類型」中,選取「私有閘道」

    8. 選用:指定一或多個額外專案,這些專案會代管 Private Service Connect 端點,以便透過 HTTP 存取私人叢集。根據預設,這個端點只能在工作站叢集專案和虛擬私有雲網路主專案 (如果兩者不同) 中建立。如有需要,您也可以在建立叢集後指定這些專案。

    9. 按一下「建立」,叢集建立期間,狀態會顯示為「更新中」

      叢集會在幾分鐘內建立完成。叢集建立完成後,叢集狀態可能會顯示為「Degraded」(已降級)。完成「建立 PSC 端點」一節中的步驟後,叢集的狀態會在幾分鐘內變更為「Ready」(就緒)

    啟用私人叢集連線

    用戶端無法從公開網際網路連線至私人工作站叢集中的工作站。用戶端必須位於可透過 Private Service Connect (PSC) 連線至工作站叢集的網路上。請按照本節的步驟連線至工作站:

    1. 建立 PSC 端點,以工作站服務連結為目標。

    2. 建立私人 DNS 區域

    3. 使用 Cloud DNS 建立 DNS 記錄,將叢集的主機名稱對應至 PSC 端點。

    建立 Private Service Connect 端點

    請按照下列步驟建立 PSC 端點:

    1. 在 Google Cloud 控制台中,前往 Private Service Connect。

      前往 Private Service Connect

    2. 按一下「已連線的端點」分頁,然後點選「新增」「連線端點」

    3. 在「Target」(目標) 中選取「Published service」(已發布的服務)

    4. 在「目標服務」欄位中,輸入為工作站叢集建立的服務連結 URI。如要找出這項資訊,請前往控制台中的工作站叢集,然後在「網路設定」下方尋找「服務附件 URI」欄位。

    5. 在「端點」欄位中輸入端點名稱。

    6. 選取端點的「網路」,然後選取「子網路」。 這個網路應為您要用來連線至工作站的網路,且必須與外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路相同。

    7. 選取端點的 IP 位址

      如需新 IP 位址,請選取「建立 IP 位址」

      1. 輸入 IP 位址的「名稱」和「說明」 (選填)。
      2. 如要使用靜態 IP 位址,請選取「自動指派」。 如要使用自訂 IP 位址,請選取「讓我選擇」,然後輸入要使用的 IP 位址。
      3. 在「用途」部分,選取「非共用」
      4. 按一下「保留」
    8. 從下拉式清單中選取「命名空間」,或建立新的命名空間。 系統會根據所選子網路填入「區域」

    9. 按一下「新增端點」

    10. 複製端點的 IP 位址,以便在下一節中建立私人 DNS 區域和 DNS 記錄

    建立私有 DNS 區域

    請按照下列步驟,為這個工作站叢集建立私人 DNS 區域,並將 DNS 名稱設為 clusterHostname。如要找出 clusterHostname,請在控制台中前往工作站叢集。

    1. 前往 Google Cloud 控制台的「建立 DNS 區域」頁面。

      前往「建立 DNS 區域」

    2. 在「Zone type」(區域類型) 中,選取「Private」(不公開)

    3. 輸入「Zone name」(可用區名稱),例如 private-workstations-cluster-zone

    4. 輸入私人區域的「DNS name」(DNS 名稱) 字尾,區域中的所有記錄都會共用這個尾碼。將這個名稱設為 clusterHostname

      如要找出 clusterHostname,請在 Google Cloud 控制台中依序前往「Cloud Workstations」>「Cluster management」(叢集管理) 頁面,然後按一下工作站叢集即可查看主機名稱。

    5. 選用:新增說明。

    6. 在「選項」下方,選取「預設 (私人)」

    7. 選取您在前一個部分建立 PSC 端點的網路,因為 IP 位址只在該網路上有效。

    8. 點選「建立」

    如要進一步瞭解私人 DNS 區域,請參閱 Cloud DNS 文件,瞭解如何建立私人區域,以及Cloud DNS 私人區域的最佳做法

    建立 DNS 記錄

    如要新增記錄,將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時保留的 IP 位址,請按照下列步驟操作:

    1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

      前往 Cloud DNS 區域

    2. 按一下要新增記錄的代管區域名稱。

    3. 在「Zone details」(區域詳細資料) 頁面中,按一下「Add Standard」(新增標準)

    4. 在「Create record set」(建立記錄集) 頁面的「DNS name」(DNS 名稱) 欄位中,輸入 *.<clusterHostname>

    5. 在「IP Address」(IP 位址) 欄位中,輸入您在上一個章節中為 Private Service Connect 端點保留的 IP 位址。

    6. 點選「建立」

    7. 您的虛擬私有雲網路現在應已連線至工作站叢集,您可以使用這個網路連線至工作站。

    啟用地端 DNS 解析

    如要在工作站上使用預設的瀏覽器型編輯器,請透過連線至虛擬私有雲網路的電腦使用瀏覽器。您可以使用 Cloud VPNCloud Interconnect,從執行瀏覽器的外部網路連線至虛擬私有雲網路。

    如要從外部網路連線,必須在外部網路中設定 DNS。與上述步驟類似,您可以為 clusterHostname 建立 DNS 區域,並新增將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時保留的 IP 位址的記錄。或者,您也可以設定 DNS 轉送區域或 DNS 伺服器政策,允許在內部部署和 Google Cloud 環境之間查詢 DNS 名稱。

    您可能也需要在地端基礎架構的許可清單中加入 *cloudworkstations.dev

    後續步驟