如果貴機構使用共用虛擬私有雲,您可以在服務專案或主專案中設定 Serverless VPC Access 連接器。本指南說明如何在主機專案中設定連接器。
如要在服務專案中設定連接器,請參閱「在服務專案中設定連接器」。如要瞭解各項方法的優點,請參閱「連線至共用虛擬私有雲網路」。
事前準備
檢查目前使用的帳戶是否具備身分與存取權管理 (IAM) 角色。有效帳戶必須在主專案中具備下列角色:
在偏好的環境中選取主專案。
控制台
前往 Google Cloud 控制台資訊主頁。
在資訊主頁頂端的選單列中,按一下專案下拉式選單,然後選取主專案。
gcloud
在 gcloud CLI 中,將預設專案設為主機專案,方法是在終端機中執行下列指令:
gcloud config set project HOST_PROJECT_ID
更改下列內容:
HOST_PROJECT_ID:共用虛擬私有雲主專案的 ID
建立 Serverless VPC Access 連接器
如要向虛擬私有雲網路傳送要求並接收相應的回應,您必須建立無伺服器虛擬私有雲存取連接器。您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 建立連接器:
主控台
為專案啟用 Serverless VPC Access API。
前往「Serverless VPC Access」(無伺服器虛擬私人雲端存取) 總覽頁面。
按一下 [Create connector] (建立連接器)。
在「Name」(名稱) 欄位中,輸入連接器的名稱。名稱必須符合 Compute Engine 命名慣例,且長度不得超過 21 個字元。連字號 (
-) 算兩個字元。在「Region」(區域) 欄位中,選取連接器的區域。這必須與無伺服器服務的地區相符。
如果服務位於
us-central或europe-west區域,請使用us-central1或europe-west1。在「Network」(網路) 欄位中,選取要附加連接器的虛擬私人雲端網路。
按一下「子網路」下拉式選單:
選取未使用的
/28子網路。- 子網路只能供連接器使用。其他資源 (例如 VM、Private Service Connect 或負載平衡器) 無法使用這些 IP 位址。
- 如要確認子網路未用於 Private Service Connect 或 Cloud Load Balancing,請在 gcloud CLI 中執行下列指令,檢查子網路
purpose是否為PRIVATE: 將gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME替換為子網路名稱。
(選用) 如要設定縮放選項,進一步控管連接器,請按一下「顯示縮放設定」,顯示縮放表單。
- 設定連接器的執行個體數量下限和上限,或使用預設值 (下限為 2,上限為 10)。隨著流量增加,連接器會擴充至指定上限,但流量減少時,連接器不會縮減。你必須使用介於
2和10之間的值,且MIN值必須小於MAX值。 - 在「Instance Type」(執行個體類型) 下拉式選單中,選擇要用於連接器的機器類型,或使用預設的
e2-micro。選擇執行個體類型時,請注意右側的費用側邊欄,其中會顯示頻寬和費用預估。
- 設定連接器的執行個體數量下限和上限,或使用預設值 (下限為 2,上限為 10)。隨著流量增加,連接器會擴充至指定上限,但流量減少時,連接器不會縮減。你必須使用介於
點選「建立」。
若連接器可供使用,其名稱旁邊會顯示一個綠色勾號。
gcloud
將
gcloud元件更新到最新版本:gcloud components update
為專案啟用 Serverless VPC Access API:
gcloud services enable vpcaccess.googleapis.com
建立無伺服器虛擬私有雲存取連接器:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
更改下列內容:
CONNECTOR_NAME:連接器名稱。名稱必須遵循 Compute Engine 命名慣例,且長度不得超過 21 個字元。連字號 (-) 算兩個字元。REGION:連接器的區域;這必須與無伺服器服務的區域相符。如果服務位於us-central或europe-west區域,請使用us-central1或europe-west1。SUBNET:未使用的/28子網路名稱。- 子網路只能供連接器使用。其他資源 (例如 VM、Private Service Connect 或負載平衡器) 無法使用這些 IP 位址。
- 如要確認子網路未用於 Private Service Connect 或 Cloud Load Balancing,請執行下列 gcloud CLI 指令,檢查子網路
purpose是否為PRIVATE: 取代下列項目:gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME:子網路名稱
HOST_PROJECT_ID:主專案的 IDMIN:連接器使用的執行個體數量下限。請使用介於2至9之間的整數。預設為2步。如要瞭解連接器資源調度,請參閱「輸送量和資源調度」。MAX:連接器使用的執行個體數量上限。請使用介於3至10之間的整數。預設為10步。如果流量需要,連接器會擴充至[MAX]個執行個體,但不會縮減。如要瞭解連接器資源調度,請參閱「輸送量和資源調度」。MACHINE_TYPE:f1-micro、e2-micro或e2-standard-4。如要瞭解連接器輸送量 (包括機器類型和資源調度),請參閱「輸送量和資源調度」。
如要瞭解詳情和選用引數,請參閱
gcloud參考資料。先驗證您的連接器是否處於
READY狀態,然後再使用:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
更改下列內容:
CONNECTOR_NAME:連接器名稱,也就是您在上一個步驟中指定的名稱REGION:連接器所在的區域,也就是您在上一個步驟中指定的區域
輸出內容應包含
state: READY這一行。
Terraform
您可以使用 Terraform 資源啟用 vpcaccess.googleapis.com API。
您可以使用 Terraform 模組建立虛擬私有雲網路和子網路,然後建立連接器。
提供連接器存取權
將主專案的「無伺服器虛擬私有雲存取使用者」身分與存取權管理角色授予部署 App Engine 服務的主體,以提供連接器存取權。
主控台
開啟 IAM 頁面。
按一下專案下拉式選單,然後選取主專案。
按一下「新增」。
在「New principals」(新增主體) 欄位中,新增部署 App Engine 服務的主體。
在「角色」欄位中,選取「無伺服器虛擬私有雲存取使用者」。
按一下 [儲存]。
gcloud
在終端機中執行下列指令:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.user
更改下列內容:
HOST_PROJECT_ID:共用虛擬私有雲主專案的 IDPRINCIPAL:部署 App Engine 服務的主體。進一步瞭解--member旗標。
讓連接器可供探索
如要查看連結器,主體必須在主專案和服務專案中都具備特定檢視角色。如要讓主體在 Google Cloud 控制台或終端機中查看可用連線器時,看到您的連線器,請為主體新增 IAM 角色,這些主體會部署 App Engine 服務。
在主專案中授予 IAM 角色
在主專案中,將無伺服器虛擬私有雲存取檢視者 (vpcaccess.viewer)角色授予部署 App Engine 服務的主體。
主控台
開啟 IAM 頁面。
按一下專案下拉式選單,然後選取主專案。
按一下「新增」。
在「New principals」(新增主體) 欄位中,輸入應可從服務專案查看連接器的主要電子郵件地址。您可以在這個欄位中輸入多個電子郵件地址。
在「角色」欄位中,選取「無伺服器虛擬私有雲存取檢視者」。
按一下 [儲存]。
gcloud
在終端機中執行下列指令:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer
更改下列內容:
HOST_PROJECT_ID:共用虛擬私有雲主專案的 IDPRINCIPAL:部署 App Engine 服務的主體。進一步瞭解--member旗標。
在服務專案中授予 IAM 角色
在服務專案中,將Compute Network Viewer (compute.networkViewer) 角色授予部署 App Engine 服務的主體。
主控台
開啟 IAM 頁面。
按一下專案下拉式選單,然後選取服務專案。
按一下「新增」。
在「New principals」(新增主體) 欄位中,輸入應可從服務專案查看連接器的主要電子郵件地址。您可以在這個欄位中輸入多個電子郵件地址。
在「角色」欄位中,選取「Compute 網路檢視者」。
按一下 [儲存]。
gcloud
在終端機中執行下列指令:
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
更改下列內容:
SERVICE_PROJECT_ID:服務專案的 IDPRINCIPAL:部署 App Engine 服務的主體。進一步瞭解--member旗標。
將服務設定為使用連接器
針對需要存取共用 VPC 的每個 App Engine 服務,您都必須為該服務指定連接器。下列步驟說明如何將服務設定為使用連接器。
將
vpc_access_connector新增至服務的app.yaml檔案:vpc_access_connector: name: projects/HOST_PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
更改下列內容:
HOST_PROJECT_ID:共用虛擬私有雲主專案的 IDREGION:連接器的區域CONNECTOR_NAME:連接器名稱
部署服務:
gcloud app deploy
部署後,服務就能將要求傳送至共用虛擬私有雲網路,並接收相應的回應。
後續步驟
- 使用無伺服器虛擬私有雲存取稽核記錄監控管理員活動。
- 使用 VPC Service Controls 建立服務範圍,保護資源和資料。
- 瞭解與無伺服器虛擬私有雲存取相關聯的 Identity and Access Management (IAM) 角色。如要查看與各角色相關聯的權限清單,請參閱 IAM 說明文件中的「無伺服器虛擬私有雲存取角色」。
- 瞭解如何從 App Engine 標準環境連線至 Memorystore。