本頁面說明 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 時,也必須限制 service perimeter 中的 Compute Engine API。
確認 Google Cloud Storage API 和 Artifact Registry API 在 service perimeter 內 可透過虛擬私有雲存取。必須具備這項權限,才能將映像檔提取至工作站。 雖然 Cloud Workstations 不要求您這麼做,但我們也建議您允許 Cloud Logging API 和 Cloud Error Reporting API 在 service perimeter 內透過虛擬私有雲存取。
- 確認工作站叢集為私人。設定私人叢集後,系統會禁止從虛擬私有雲服務範圍外連線至工作站。Cloud Workstations 服務會禁止在虛擬私有雲 service perimeter 內建立公開叢集。
- 請務必在工作站設定中關閉公開 IP 位址。否則專案中的 VM 會具有公開 IP 位址。強烈建議您使用
constraints/compute.vmExternalIpAccess組織政策限制,關閉虛擬私有雲服務範圍內所有 VM 的公開 IP 位址。詳情請參閱「將外部 IP 位址限制為特定 VM」。
如要進一步瞭解 service perimeter,請參閱「service perimeter 詳細資料和設定」。
架構
將工作站叢集設為私人叢集時,工作站叢集的控制層只會有內部 IP 位址。也就是說,公開網際網路的用戶端無法連線至屬於工作站叢集的工作站。如要使用私人叢集,您必須透過 Private Service Connect 端點,手動將私人叢集連線至虛擬私有雲 (VPC) 網路。
私人叢集的設定需要兩個 PSC 端點:
根據預設,Cloud Workstations 會建立獨立的 PSC 端點,將控制層連至工作站 VM。
您必須為私人叢集建立額外的 PSC 端點。如要從本機電腦連線至私人叢集中的工作站,本機電腦必須連線至虛擬私有雲網路。使用 Cloud VPN 或 Cloud Interconnect,將執行機器的外部網路連線至虛擬私有雲網路。這個額外的 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 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。 -
確認您具備專案的 Cloud Workstations 管理員 IAM 角色,以便建立工作站設定。如要在 Google Cloud 控制台中查看 IAM 角色,請前往「IAM」頁面:
-
Cloud Workstations 託管於從 Compute Engine 預先設定的公開 Container-Optimized OS (COS) 映像檔啟動的 VM。如果強制執行
constraints/compute.trustedimageProjects組織政策限制,您必須設定映像檔存取限制,允許使用者從projects/cos-cloud或所有公開映像檔建立開機磁碟。 -
Cloud Workstations 會使用 Private Service Connect 連線至 Google 代管服務。如果組織強制執行
constraints/compute.restrictPrivateServiceConnectProducer組織政策限制,您必須將 Google 新增為允許的供應商 (under:organizations/433637338589)。 -
如果貴組織強制執行
constraints/compute.disablePrivateServiceConnectCreationForConsumers組織政策限制,請務必允許連線至 Google API (GOOGLE_APIS) 的 Private Service Connect 端點。如果設定私人叢集,也必須允許連至已發布服務 (SERVICE_PRODUCERS) 的端點。 -
選用:啟用 Container 檔案系統 API,加快工作站啟動速度。
詳情請參閱「使用映像檔串流功能縮短工作站啟動時間」。
建立私人叢集
請按照下列步驟建立私人叢集:
前往 Google Cloud 控制台的「Cloud Workstations」頁面。
前往工作站的「Cluster management」(叢集管理) 頁面。
點選「建立」。
輸入「名稱」,並選取工作站叢集的「區域」。
在「網路」部分,選取「這項專案中的網路」。
選取「網路」和「子網路」。
在「Gateway type」(閘道類型) 部分,選取「Private gateway」(私人閘道)。
選用:指定一或多個額外專案,用於託管 Private Service Connect 端點,以便透過 HTTP 存取私人叢集。根據預設,這個端點只能在工作站叢集專案和虛擬私有雲網路主專案 (如果兩者不同) 中建立。如有需要,您也可以在建立叢集後指定這些專案。
點選「建立」。建立叢集時,狀態會顯示為「Updating」(更新中)。
叢集會在幾分鐘內建立完成。叢集建立完成後,狀態可能會顯示為「Degraded」(已降級)。完成「建立 PSC 端點」一節中的步驟後,叢集狀態會在幾分鐘內變更為「Ready」(就緒)。
啟用私人叢集連線
用戶端無法從公開網際網路連線至私人工作站叢集中的工作站。用戶端必須位於使用 Private Service Connect (PSC) 連線至工作站叢集的網路。請按照本節中的步驟連線至工作站:
建立 PSC 端點,指定工作站服務連結。
使用 Cloud DNS 建立 DNS 記錄,將叢集的主機名稱對應至 PSC 端點。
建立 Private Service Connect 端點
請按照下列步驟建立 PSC 端點:
在 Google Cloud 控制台中,前往「Private Service Connect」。
按一下「Connected endpoints」(已連結的端點) 分頁標籤,然後點選「add」(新增)「Connect endpoint」(連結端點)。
在「目標」部分,選取「已發布的服務」。
在「Target service」(目標服務) 欄位中,輸入為工作站叢集建立的服務連結 URI。如要查看這個值,請在控制台前往工作站叢集,然後在「聯播網設定」 下方尋找「Service attachment URI」(服務連結 URI) 欄位。
在「Endpoint」(端點) 欄位中輸入端點名稱。
選取端點的「網路」,然後選取「子網路」。這個網路應是您要用來連線至工作站的網路,且必須與外部網路透過 Cloud VPN 或 Cloud Interconnect 連線的網路相同。
選取端點的 IP 位址。
如需新的 IP 位址,請選取「建立 IP 位址」:
- 輸入 IP 位址的「名稱」和「說明」(選填)。
- 在「靜態 IP 位址」部分,選取「自動指派」。如要使用「Custom IP address」(自訂 IP 位址),請選取「Let me choose」(讓我選擇),然後輸入要使用的 IP 位址。
- 在「用途」部分,選取「非共用」。
- 點選「保留」。
從下拉式選單中選取「Namespace」(命名空間),或建立新的命名空間。系統會根據所選子網路填入「Region」(區域)。
按一下「新增端點」。
複製端點的 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」>「叢集管理工具」 頁面,然後按一下工作站叢集,即可查看主機名稱。新增說明 (如有需要)。
在「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,從執行瀏覽器的外部網路連線至虛擬私有雲網路。
如要從外部網路連線,您必須在外部網路中設定 DNS。與上述步驟類似,您可以為 clusterHostname 建立 DNS 區域,並新增記錄,將 *.<clusterHostname> 對應至建立 Private Service Connect 端點時預留的 IP 位址。或者,您也可以設定 DNS 轉送區域或 DNS 伺服器政策,在地端部署和 Google Cloud 環境之間查詢 DNS 名稱。
您可能也需要將 *cloudworkstations.dev 新增至地端部署基礎架構的許可清單。
設定 VPC Service Controls 以使用映像檔串流
如果您選擇啟用映像檔串流來縮短工作站啟動時間,且工作站叢集位於 VPC Service Controls 範圍內,則必須在範圍政策中設定下列項目:
- 在 service perimeter 的受限服務中,加入 Container File System API (
containerfilesystem.googleapis.com)。 - 在 service perimeter 新增輸出規則,允許工作站設定中指定的服務帳戶,存取託管容器映像檔專案中的 Container File System API。
- 如果您使用的是預先設定的 IDE,也必須設定輸出規則,允許存取
cloud-workstations-images專案 (專案編號662288601415)。