本頁面說明 VPC Service Controls 和私人叢集的運作方式,以及如何在 Cloud Workstations 中設定這些叢集。
VPC Service Controls
VPC Service Controls 可為工作站提供額外的安全性,協助降低資料竊取風險。使用 VPC Service Controls 時,可將專案納入 service perimeter,防止來自 perimeter 外的要求存取資源和服務。
在虛擬私有雲服務範圍內使用 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,但我們仍建議您在服務安全防護範圍內這麼做。
- 確認工作站叢集為私人。設定私有叢集可防止從虛擬私有雲服務周邊以外的位置連線至工作站。Cloud Workstations 服務會禁止在 VPC 服務範圍內建立公開叢集。
- 請務必在工作站設定中關閉公開 IP 位址。否則專案中的 VM 會擁有公開 IP 位址。強烈建議您使用
constraints/compute.vmExternalIpAccess機構政策限制,為 VPC 服務邊界中的所有 VM 關閉公用 IP 位址。詳情請參閱「將外部 IP 位址限制為特定 VM」。
如要進一步瞭解 service perimeter,請參閱「Service perimeter 詳細資料和設定」。
架構
將工作站叢集設為私人叢集時,工作站叢集的控制層只會有內部 IP 位址。也就是說,公用網際網路的用戶端無法連線至工作站叢集的工作站。如要使用私有叢集,您必須透過 Private Service Connect 端點,手動將私有叢集連線至虛擬私有雲 (VPC) 網路。
使用私人叢集時,設定需要兩個 PSC 端點:
根據預設,Cloud Workstations 會建立個別的 PSC 端點,將控制層連線至工作站 VM。
您必須為私人叢集建立額外的 PSC 端點。如要從本機電腦連線至私有叢集中的工作站,本機電腦必須連線至 VPC 網路。使用 Cloud VPN 或 Cloud Interconnect,將執行機器的外部網路連線至 VPC 網路。這個額外的 PSC 端點必須在外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路中建立。
下圖說明私有叢集的範例架構:
事前準備
開始操作前,請務必完成下列必要設定步驟:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Workstations API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
請確認您具備專案的 Cloud Workstations 管理員 IAM 角色,才能建立工作站設定。如要在 Google Cloud 控制台中查看 IAM 角色,請前往「IAM」頁面:
-
Cloud Workstations 託管於從 Compute Engine 預先設定的公開 Container-Optimized OS (COS) 映像檔啟動的 VM。如果強制執行
constraints/compute.trustedimageProjects組織政策限制,您必須設定映像檔存取限制,允許使用者從projects/cos-cloud或所有公開映像檔建立開機磁碟。 -
選用:啟用 Container File System API,加快工作站啟動速度。
詳情請參閱「使用映像檔串流技術縮短工作站啟動時間」。
前往 Google Cloud 控制台的「Cloud Workstations」頁面。
前往工作站的「叢集管理」頁面。
點選「建立」。
輸入工作站叢集的「名稱」,然後選取「區域」。
在「Networking」(網路) 區段中,選取「Networks in this project」(這項專案中的網路)。
選取「網路」和「子網路」。
在「閘道類型」中,選取「私人閘道」。
選用:指定一或多個額外專案,這些專案會代管 Private Service Connect 端點,以便透過 HTTP 存取私人叢集。根據預設,這個端點只能在工作站叢集專案和虛擬私有雲網路主專案 (如果兩者不同) 中建立。如有需要,您也可以在建立叢集後指定這些專案。
點按「Create」(建立)。叢集建立期間,狀態會顯示為「更新中」。
叢集會在幾分鐘內建立完成。叢集建立完成後,狀態可能會顯示為「Degraded」(已降級)。完成「建立 PSC 端點」一節中的步驟後,叢集狀態會在幾分鐘內變更為「Ready」(就緒)。
建立 PSC 端點,以工作站服務連結為目標。
使用 Cloud DNS 建立 DNS 記錄,將叢集的主機名稱對應至 PSC 端點。
前往 Google Cloud 控制台的 Private Service Connect。
按一下「已連線的端點」分頁標籤,然後依序點選「新增」和「連線端點」。
在「目標」中,選取「已發布的服務」。
在「目標服務」欄位中,輸入為工作站叢集建立的服務連結 URI。如要找出這項資訊,請前往控制台上的工作站叢集,然後在「網路設定」下方尋找「服務附件 URI」欄位。
在「Endpoint」(端點) 欄位中輸入端點名稱。
選取端點的「網路」,然後選取「子網路」。 這個網路應為您想用來連線至工作站的網路,且必須與外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路相同。
選取端點的 IP 位址。
如需新 IP 位址,請選取「建立 IP 位址」:
- 輸入 IP 位址的「名稱」和「說明」 (選填)。
- 如要使用靜態 IP 位址,請選取「自動指派」。 如要使用自訂 IP 位址,請選取「讓我選擇」,然後輸入要使用的 IP 位址。
- 在「用途」部分,選取「非共用」。
- 按一下「保留」。
從下拉式清單選取命名空間,或建立新的命名空間。 系統會根據所選子網路填入「區域」。
按一下「新增端點」。
複製端點的 IP 位址,以便在下一節中建立私人 DNS 區域和 DNS 記錄。
前往 Google Cloud 控制台的「Create a DNS zone」(建立 DNS 區域) 頁面。
在「Zone type」(區域類型) 中,選取「Private」(私人)。
在「Zone name」(區域名稱) 中輸入名稱,例如
private-workstations-cluster-zone。輸入私人區域的「DNS name」(DNS 名稱) 尾碼,區域中的所有記錄都會使用這個尾碼。將這個名稱設為
clusterHostname。如要找出
clusterHostname,請在 Google Cloud 控制台中依序前往「Cloud Workstations」>「Cluster management」(叢集管理) 頁面,然後按一下工作站叢集即可查看主機名稱。新增說明 (如有需要)。
在「Options」(選項) 下方選取「Default (private)」(預設 (私人))。
選取您在前一個部分建立 PSC 端點的網路,因為 IP 位址只在該網路上有效。
點選「建立」。
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要新增記錄的代管區域名稱。
在「Zone details」(區域詳細資料) 頁面中,按一下「Add Standard」(新增標準)。
在「Create record set」(建立記錄集) 頁面的「DNS Name」(DNS 名稱) 欄位中,輸入
*.<clusterHostname>。在「IP Address」(IP 位址) 欄位中,輸入您在上一節中為 Private Service Connect 端點保留的 IP 位址。
點選「建立」。
您的虛擬私有雲網路現在應已連線至工作站叢集,您可以使用這個網路連線至工作站。
建立私人叢集
請按照下列步驟建立私人叢集:
啟用私人叢集連線
用戶端無法從公開網際網路連線至私人工作站叢集中的工作站。用戶端必須位於可透過 Private Service Connect (PSC) 連線至工作站叢集的網路上。請按照本節中的步驟連線至工作站:
建立 Private Service Connect 端點
請按照下列步驟建立 PSC 端點:
建立私人 DNS 區域
請按照下列步驟,為這個工作站叢集建立私人 DNS 區域,並將 DNS 名稱設為 clusterHostname。如要查看這個名稱,請在控制台中前往工作站叢集。
如要進一步瞭解私人 DNS 區域,請參閱 Cloud DNS 說明文件,瞭解如何建立私人區域,以及Cloud DNS 私人區域最佳做法。
建立 DNS 記錄
如要新增記錄,將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時保留的 IP 位址,請按照下列步驟操作:
啟用在地端部署環境執行 DNS 解析
如要在工作站上使用預設的瀏覽器型編輯器,請從連線至 VPC 網路的電腦使用瀏覽器。您可以使用 Cloud VPN 或 Cloud Interconnect,從執行瀏覽器的外部網路連線至 VPC 網路。
如要從外部網路連線,必須在外部網路中設定 DNS。與上述步驟類似,您可以為 clusterHostname 建立 DNS 區域,並新增將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時保留的 IP 位址的記錄。或者,您也可以設定 DNS 轉送區域或 DNS 伺服器政策,允許在地端部署和 Google Cloud 環境之間查詢 DNS 名稱。
您可能也需要在地端基礎架構的許可清單中加入 *cloudworkstations.dev。