本頁面說明 VPC Service Controls 和私人叢集的運作方式,以及如何在 Cloud Workstations 中設定這些叢集。
VPC Service Controls
VPC Service Controls 可加強工作站的安全性,減少資料竊取風險。使用 VPC Service Controls 時,可將專案納入 service perimeter,防止來自 perimeter 外的要求存取資源和服務。
在虛擬私有雲 service perimeter 內使用 Cloud Workstations 的需求如下:
- 為協助保護 Cloud Workstations,每當限制 Cloud Workstations API 時,您都必須限制服務範圍內的 Compute Engine API。
請確認 Google Cloud Storage API 和 Artifact Registry API 在服務範圍內 可透過 VPC 存取。這是將映像檔拉到工作站的必要步驟。此外,我們建議您允許服務 perimeter 內的虛擬私有雲存取 Cloud Logging API 和 Cloud Error Reporting API,但使用 Cloud Workstations 時不一定要這麼做。
- 確認工作站叢集為私人。 設定私人叢集可防止從虛擬私有雲服務邊界外部連線至工作站。Cloud Workstations 服務會禁止在 VPC 服務範圍內建立公開叢集。
- 請務必在工作站設定中關閉公開 IP 位址。否則,專案中的 VM 會擁有公開 IP 位址。強烈建議您使用
constraints/compute.vmExternalIpAccess組織政策限制,為 VPC 服務範圍內的所有 VM 關閉公用 IP 位址。詳情請參閱「將外部 IP 位址限制為特定 VM」。
如要進一步瞭解 service perimeter,請參閱「Service perimeter 詳細資料和設定」。
架構
將工作站叢集設為私有時,工作站叢集的控制層只會有內部 IP 位址。也就是說,公用網際網路的用戶端無法連線至工作站叢集的工作站。如要使用私人叢集,您必須透過 Private Service Connect 端點,手動將私人叢集連線至虛擬私有雲網路。
使用私人叢集時,設定需要兩個 PSC 端點:
根據預設,Cloud Workstations 會建立個別的 PSC 端點,將控制層連線至工作站 VM。
您必須為私人叢集建立額外的 PSC 端點。如要從本機連線至私人叢集中的工作站,本機必須連線至虛擬私有雲網路。使用 Cloud VPN 或 Cloud Interconnect,將執行機器的外部網路連線至 VPC 網路。這個額外的 PSC 端點必須在外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路中建立。
下圖說明私人叢集的範例架構:
事前準備
開始前,請務必完成下列必要設定步驟:
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
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.
-
啟用 Cloud Workstations API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。 -
請確認您具備專案的 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」(建立)。建立叢集時,狀態會顯示為「Updating」(更新中)。
叢集會在幾分鐘內建立完成。叢集建立完成後,狀態可能會顯示為「Degraded」(已降級)。完成「建立 PSC 端點」一節中的步驟後,叢集狀態會在幾分鐘內變更為「Ready」(就緒)。
啟用私人叢集連線
用戶端無法從公開網際網路連線至私人工作站叢集中的工作站。用戶端必須位於可透過 Private Service Connect (PSC) 連線至工作站叢集的網路上。請按照本節中的步驟連線至工作站:
建立 PSC 端點,以工作站服務連結為目標。
使用 Cloud DNS 建立 DNS 記錄,將叢集的主機名稱對應至 PSC 端點。
建立 Private Service Connect 端點
請按照下列步驟建立 PSC 端點:
在 Google Cloud 控制台中,前往 Private Service Connect。
按一下「已連線的端點」分頁,然後依序點選「新增」和「連線端點」。
在「Target」(目標) 中選取「Published service」(發布的服務)。
在「目標服務」欄位中,輸入為工作站叢集建立的服務連結 URI。如要找出這項資訊,請前往控制台上的工作站叢集,然後在「聯播網設定」下方尋找「服務附件 URI」欄位。
在「Endpoint」(端點) 欄位中輸入端點名稱。
選取端點的「網路」,然後選取「子網路」。 這個網路應為您想用來連線至工作站的網路,且必須與外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路相同。
選取端點的 IP 位址。
如需新 IP 位址,請選取「建立 IP 位址」:
- 輸入 IP 位址的「名稱」和「說明」 (選填)。
- 如要使用靜態 IP 位址,請選取「自動指派」。 如要使用自訂 IP 位址,請選取「讓我選擇」,然後輸入要使用的 IP 位址。
- 在「用途」部分,選取「非共用」。
- 按一下「保留」。
從下拉式清單中選取「命名空間」,或建立新的命名空間。 系統會根據所選子網路填入「區域」。
按一下「新增端點」。
複製端點的 IP 位址,以便在下一節中建立私人 DNS 區域和 DNS 記錄。
建立私人 DNS 區域
請按照下列步驟,為這個工作站叢集建立私人 DNS 區域,並將 DNS 名稱設為 clusterHostname。如要找出這個名稱,請前往控制台上的工作站叢集。
前往 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 位址只在該網路上有效。
點選「建立」。
如要進一步瞭解私人 DNS 區域,請參閱 Cloud DNS 說明文件,瞭解如何建立私人區域,以及Cloud DNS 私人區域最佳做法。
建立 DNS 記錄
如要新增記錄,將 *.<clusterHostname> 對應至您建立 Private Service Connect 端點時保留的 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 位址。
點選「建立」。
您的虛擬私有雲網路現在應已連線至工作站叢集,您可以使用這個網路連線至工作站。
啟用在地端部署環境執行 DNS 解析
如要在工作站上使用預設的瀏覽器型編輯器,請從連線至虛擬私有雲網路的電腦使用瀏覽器。您可以使用 Cloud VPN 或 Cloud Interconnect,從執行瀏覽器的外部網路連線至 VPC 網路。
如要從外部網路連線,必須在外部網路中設定 DNS。與上述步驟類似,您可以為 clusterHostname 建立 DNS 區域,並新增將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時保留的 IP 位址的記錄。或者,您也可以設定 DNS 轉送區域或 DNS 伺服器政策,允許在地端部署和 Google Cloud 環境之間查詢 DNS 名稱。
您可能也需要在地端部署基礎架構的許可清單中加入 *cloudworkstations.dev。