設定私人服務存取權
私人服務存取權是指在您的虛擬私人雲端 (VPC) 網路與 Google 或第三方所擁有網路之間建立的私人連線。Google 或第三方 (提供服務的實體) 也稱為「服務生產端」。私人連線可讓您 VPC 網路中的 VM 執行個體及您存取的服務能夠透過內部 IP 位址進行專屬通訊。VM 執行個體不需要網際網路存取權或外部 IP 位址,就可以透過私人服務存取權與服務連線。
如要進一步瞭解私人服務存取權和其他私人存取權選項,請參閱各項服務的私人存取權選項一文。
整體來說,如要使用私人服務存取權,您必須在虛擬私有雲網路中分配 IP 位址範圍 (CIDR 區塊),然後與服務供應商建立私人連線。
事前準備
如要建立私人連線,請完成下列事前準備:
- 確認您使用的服務支援私人服務存取。
- 建立 Google Cloud 專案或選擇現有專案。如要瞭解如何建立 Google Cloud 專案,請參閱「建立及管理專案」。
- 在專案中啟用 Service Networking API。您需要這個 API 才能建立私人連線。
- 建立或選擇要用來連線至服務生產端網路的 VPC 網路。VM 執行個體必須使用這個虛擬私人雲端網路以私人連線的方式連線至服務。
- 如要執行本指南中的
gcloud
指令列範例,請安裝 gcloud CLI。
權限
專案擁有者和具備 Compute 網路管理員角色 (roles/compute.networkAdmin
) 的 IAM 成員,可以建立分配的 IP 位址範圍,以及管理私人連線。
如要進一步瞭解角色,請參閱 VPC 身分與存取權管理角色說明文件。
使用共用虛擬私人雲端的情況
如果您使用的是共用虛擬私人雲端,請在主專案中建立分配的 IP 範圍和私人連線。這些作業通常必須由主專案中的網路管理員執行。主專案設定完成後,服務專案中的 VM 執行個體就可使用私人連線。
配額與限制
由於私人連線會實作成虛擬私人雲端對等互連連線,因此私人服務存取權也適用虛擬私人雲端網路對等互連的配額與限制。
分配給服務的 IP 位址範圍
建立私人連線之前,您必須分配要給服務供應商的虛擬私有雲網路使用的 IPv4 位址範圍。這樣做可確保您的虛擬私有雲網路與服務生產端的網路之間不會發生 IP 位址衝突。請為各個服務供應商建立分配的範圍。
在虛擬私人雲端網路中分配的範圍無法用於子網路 (主要與次要範圍) 及自訂靜態路徑的目的地。
系統不支援搭配私人服務存取權使用 IPv6 位址範圍。
IP 位址範圍大小
服務供應商在自己的連線端建立子網路時,系統會從分配的範圍中為子網路的 IP 位址範圍選取一個開放範圍。
每個服務供應商都需要 IP 位址範圍大小下限。對於 Google 來說,大小下限為單一 /24
區塊 (256 個位址),但建議大小為 /16
區塊 (65,536 個位址)。
您要選擇何種大小,取決於多項因素,例如:
- 您使用的服務和區域數量。
- 您使用的服務需求。
- 服務的 IP 位址範圍大小下限。
- 服務供應商是否需要為您建立的每個服務執行個體提供個別的 IP 範圍,或是可以為多個服務執行個體使用相同的 IP 範圍。
如果沒有連續的 /16
區塊,您可以先使用較小的分配範圍,之後需要更多 IP 位址時再新增範圍。
關於服務供應商的子網路
當您建立私人連線和具有私人 IP 位址的資源時,服務會建立子網路,並在當中佈建資源。服務會從分配的 IP 位址範圍中選取可用的範圍。您無法選取或修改服務供應商的子網路 IP 位址範圍。只有在刪除子網路中的所有資源時,服務才會刪除子網路。
在您佈建其他資源的同時,服務會在先前建立的現有地區子網路中佈建這些資源。如果子網路已滿,服務會在該地區中建立新的子網路。
注意事項
在分配 IP 位址範圍前,請先考量以下事項:
- 選取的已分配範圍必須與目前和未來的子網路範圍完全分開,包括透過虛擬私有雲網路對等互連連線的網路子網路範圍,以及連線至相同 Network Connectivity Center 中樞的虛擬私有雲輪輻子網路範圍。
選取的範圍不得與任何自訂靜態或動態路徑的目的地完全相符或包含該目的地。
服務供應商選取分配範圍中未使用的部分,做為新資源的候選範圍時,會排除與分配範圍完全相符或位於分配範圍內的所有自訂路徑目的地。如果虛擬私有雲網路包含已分配的範圍,以及目的地與已分配範圍相符或位於其中的自訂路徑,則已分配範圍中可用的部分會減少。這項設定可能會導致發生非預期的「資源分配用盡」錯誤。
舉例來說,如果您為
10.0.0.0/16
建立分配範圍,則適用下列事項:如果存在或稍後建立目的地為
10.0.0.0/16
的自訂路徑,系統會將整個10.0.0.0/16
範圍視為無法使用。如果服務生產者嘗試使用已分配的範圍,系統會傳回配額用盡錯誤。Google Cloud如果目的地為
10.0.0.0/20
的自訂路徑存在或稍後建立,則分配範圍的10.0.0.0/16
部分會視為無法使用。10.0.0.0/20
如果服務生產者嘗試使用分配範圍,但分配範圍的可用部分不足以供服務生產者使用, Google Cloud 會傳回分配額度用盡錯誤。如果目的地為
10.0.0.0/8
的自訂路徑存在或稍後建立,這不會影響10.0.0.0/16
分配範圍的可用性。
選取不會與其他 IP 位址需求衝突的範圍:
- 部分 Google 和第三方產品會使用
172.17.0.0/16
,在客體作業系統中進行路徑設定。舉例來說,預設 Docker 橋接網路會使用這個範圍。如果您使用的產品依賴172.17.0.0/16
,請勿在私人服務存取的分配範圍中使用172.17.0.0/16
。 - 如果使用自動模式的虛擬私人雲端網路,您無法建立與
10.128.0.0/9
相符或重疊的分配範圍。Google 會使用10.128.0.0/9
範圍來自動建立子網路,包括未來地區的子網路。
- 部分 Google 和第三方產品會使用
選取範圍足以滿足目前與未來需求的 CIDR 區塊。如果後來發現這個範圍不夠大,請儘可能擴展這個範圍。雖然您可以指派多個分配範圍給單一服務供應商,但 Google 對可分配的 IP 位址範圍數量設有配額限制,每個範圍的大小 (網路遮罩) 則不受限。
如果為私人連線新增額外的分配範圍,服務生產端在為提供的任何服務建立新服務資源時,可用的 IP 位址範圍就會擴大。您無法在私人連線中保留特定已分配範圍,供特定服務使用。
請勿將相同的分配範圍重複用於其他服務生產端。雖然能夠採取這樣的做法,但會導致 IP 位址重疊。每個服務生產端只能查看自己的網路,無法知道其他服務生產端使用的 IP 位址。
建立分配範圍時,一個分配範圍只能指派一個 CIDR 區塊。如果需要擴展 IP 位址範圍,您無法新增更多區塊到單一分配範圍,但是可以另外建立分配範圍,或是使用能包含新舊範圍的較大區塊重新建立現有的分配範圍。
如要自行建立分配範圍,而不由 Google 建立 (例如透過 Cloud SQL),您可以使用相同的命名慣例,讓其他使用者或 Google 服務知道已有 Google 專用的分配範圍。Google 服務代表您分配範圍時,會使用下列格式為分配範圍命名:
google-managed-services-[your network name]
。如果已有這個分配範圍,Google 服務會使用現有範圍,而不會另外建立範圍。由於私人連線會實作成虛擬私人雲端網路對等互連連線,因此對等互連連線的行為與限制也適用於私人連線,例如虛擬私人雲端網路對等互連限制。
如果您打算變更使用 VPC 的現有服務執行個體內部 IP 位址,請考量這項動作是否可能造成中斷,例如是否需要刪除並重新建立服務執行個體。詳情請參閱相關聯受管理服務的說明文件。舉例來說,如果您使用 Cloud SQL,請參閱「變更現有 Cloud SQL 執行個體的私人 IP 位址」。
建立 IP 配置
下列步驟說明如何建立分配的 IP 位址範圍。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取將連線至服務生產端的虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。
按一下「Allocate IP range」(分配 IP 範圍)。
輸入已分配範圍的「Name」(名稱) 與「Description」(說明)。
為分配範圍指定「IP range」(IP 範圍):
- 如要指定 IP 位址範圍,請選取「自訂」,然後輸入 CIDR 區塊,例如
192.168.0.0/16
。 - 如要指定前置字串長度並讓 Google 選取可用範圍,請選取「Automatic」(自動),然後輸入前置字串長度,例如
16
。
- 如要指定 IP 位址範圍,請選取「自訂」,然後輸入 CIDR 區塊,例如
按一下 [Allocate] (分配),建立已分配範圍。
gcloud
如要在虛擬私有雲網路中建立分配範圍,請使用 addresses create
指令。
如要指定位址範圍與前置字串長度 (子網路遮罩),請使用
addresses
和prefix-length
標記。例如,如要分配 CIDR 區塊192.168.0.0/16
,請將位址指定為192.168.0.0
,並將前置字串長度指定為16
。gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
如要單純指定前置字串長度 (子網路遮罩),請直接使用
prefix-length
標記。如果省略位址範圍, Google Cloud會自動選取您的虛擬私有雲網路未使用的位址範圍。下列範例會以16
位元前置字串長度選取未使用的 IP 位址範圍。gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
更改下列內容:
RESERVED_RANGE_NAME
:分配範圍的名稱,例如my-allocated-range
。DESCRIPTION
:範圍的說明,例如allocated for my-service
。VPC_NETWORK
:虛擬私有雲網路的名稱,例如my-vpc-network
。
下列範例會建立與 Google 的私人連線,讓 my-network
虛擬私有雲網路中的 VM 執行個體可以透過私人服務存取權與支援該功能的 Google 服務連線。
gcloud compute addresses create google-managed-services-my-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="peering range for Google" \ --network=my-network
Terraform
如要在虛擬私有雲網路中建立分配範圍,請使用 google_compute_global_address
資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如果看到專案的 compute.globalAddresses.list
權限相關錯誤,請參閱「服務帳戶權限」。
列出分配的 IP 位址範圍
如要列出分配的 IP 位址範圍,請使用 addresses list
指令。
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
建立私人連線
建立分配範圍後,您可以建立與服務供應商的私人連線。私人連線會在您的虛擬私有雲網路與服務供應商的網路之間,建立虛擬私有雲網路對等互連連線。
私人連線是您的虛擬私人雲端網路與服務供應商之間的一對一關係。如果單一服務供應商提供多個服務,針對供應商的所有服務,您只需要一個私人連線即可。
如果單一服務供應商提供多項服務,且您想控管不同服務資源使用的分配範圍,可以使用多個虛擬私有雲網路,每個網路都有自己的私人連線。建立新的受管理服務資源時,您可以透過這項設定選取特定網路,確保新資源使用相關聯的已分配範圍。
如要連線至多個服務供應商,請針對各個服務供應商使用不重複的分配範圍。這樣做能協助您針對各個服務供應商管理網路設定,例如路徑與防火牆規則。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取將連線至服務生產端的虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤。
按一下 [Create connection] (建立連線),在網路與服務生產端之間建立私人連線。
針對「Assigned allocation」(已指派的分配範圍),選取尚未由其他服務供應商使用的一或多個現有分配範圍。
按一下 [Connect] (連線) 建立連線。
gcloud
-
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK
更改下列內容:
RESERVED_RANGE_NAME
:一或多個分派範圍的名稱。VPC_NETWORK
:虛擬私有雲網路的名稱。
這個指令會啟動長期執行作業並傳回作業名稱。
如要確認作業是否成功,請使用
vpc-peerings operations describe
指令。gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
將
OPERATION_NAME
替換為先前步驟傳回的作業名稱。
您可以在建立私人連線時指定多個分配範圍,舉例來說,如果範圍已用盡,您可以指派額外的分配範圍。服務將會依照您指定的順序使用所有指派範圍中的 IP 位址。
Terraform
如要建立私人連線,請使用 google_service_networking_connection
資源。
列出私人連線
建立私人連線後,您可以透過列出該連線的方式來檢查連線是否存在。 這個清單也會列出與各個連線相關聯的分派範圍。舉例來說,如果不記得指派給連線的分配範圍為何,您可以查看這個清單。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取連線所屬虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤,查看所有網路的私人連線。
gcloud
gcloud services vpc-peerings list \ --network=VPC_NETWORK
將 VPC_NETWORK
替換為您的虛擬私有雲網路名稱。
修改私人連線
針對現有私人連線,您可以在不中斷流量的情況下新增或移除分配的 IP 位址範圍。舉例來說,在您擴大規模的同時,如果現有的分配範圍即將用盡,您可以新增範圍。
從私人連線移除範圍時,會發生下列情況:
分配範圍不再與私人連線建立關聯,但不會遭到刪除。
- 如果已移除的範圍不再使用,可以刪除分配項目。
現有的服務供應商資源可能會繼續使用已移除的範圍。
私人服務存取權不會使用已移除的範圍來分配新的子網路。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取連線所屬虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤,查看所有網路的私人連線。
在清單中按一下連線名稱。
在「Assigned allocation」(已指派的分配範圍) 清單中,選取要與私人連線建立關聯的分配範圍。取消勾選要從私人連線移除的任何已分配範圍。
按一下 [確定]。
gcloud
如要新增或移除現有私人連線所分配的 IP 位址範圍,請使用 vpc-peerings update
指令。
gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ [--force]
更改下列內容:
RESERVED_RANGE_NAME
:要指派給私人連線的一或多個已分配範圍名稱清單。RESERVED_RANGE_NAME
會取代先前的已分配範圍清單。如果您省略先前與此私人連線建立關聯的範圍,系統會從連線中移除該範圍。您必須使用--force
選項移除範圍。VPC_NETWORK
:虛擬私有雲網路的名稱。
刪除分配的 IP 位址範圍
刪除分配的 IP 位址範圍前,請確認該範圍是否正由私人連線使用。
如果分配的 IP 位址範圍正在使用中,請先修改私人連線來移除該範圍。然後刪除分配的 IP 位址範圍。
如果您刪除正在使用的已分配 IP 位址,且未修改私人連線,則會發生下列情況:
現有連線仍會有效,但您的虛擬私有雲網路可能會使用與服務供應商網路重疊的 IP 位址。
如果刪除與私人連線相關聯的唯一已分配 IP 位址範圍,由於沒有可供選取的已分配 IP 位址範圍,因此服務無法建立新的子網路。
如果您之後建立的分配 IP 位址範圍與已刪除的範圍相符或重疊,則無法將該範圍新增至私人連線。
為避免發生這些問題,請務必在刪除使用中的分配 IP 位址範圍時,修改私人連線。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取要刪除的分配範圍所屬虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。
選取要刪除的分配範圍。
按一下 [Release] (釋出),分配的 IP 位址範圍會回歸至網路的可用內部 IP 位址集區內。
如果分配的 IP 位址範圍仍指派給現有連線,您必須輸入其他確認資訊才能釋出分配範圍。
再按一下 [Release] (釋出),確認刪除。
gcloud
透過指定分配範圍的名稱來刪除分配範圍。
gcloud compute addresses delete NAME \ --global
將 NAME
替換為要刪除的已分配範圍名稱。
刪除私人連線
如要刪除私人連線,請完成本節中的程序。請勿直接刪除私人連線相關聯的 VPC 網路對等互連連線,藉此刪除私人連線。
刪除私人連線前,請先刪除透過該連線存取的所有服務執行個體。舉例來說,如要刪除用來存取 Cloud SQL 的私人連線,請先刪除使用該連線的 Cloud SQL 執行個體。刪除服務執行個體後,服務生產者的資源會遭到刪除,但這項刪除作業可能不會立即執行。部分服務生產者會延後刪除作業,直到等待期結束為止。等待期間無法刪除私人連線。您必須等到服務供應商的資源刪除完畢,才能刪除連線。
舉例來說,如果您刪除 Cloud SQL 執行個體,系統會傳回成功回應,但服務會等待四天,才會刪除服務生產者資源。等待期是指如果你改變心意,不想刪除服務,可以要求還原資源。如果您在等待期間嘗試刪除連線,系統會顯示資源仍由服務供應商使用的訊息,並拒絕刪除要求。
控制台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
選取要刪除的連線所屬虛擬私人雲端網路。
選取「私人服務存取」分頁標籤。
在「Private services access」(私人服務存取) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤。
選取要刪除的私人連線。
按一下 [Delete] (刪除) 以刪除。
再按一下 [Delete] (刪除),確認刪除。
gcloud
如要刪除私人連線的虛擬私有雲端網路對等互連連線,請使用 vpc-peerings delete
指令。
gcloud services vpc-peerings delete \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK
將 VPC_NETWORK
替換為您的虛擬私有雲網路名稱。
與服務生產者共用私人 DNS 區域
Cloud DNS 私人區域僅供您的虛擬私有雲端網路使用。如要讓服務生產者網路解析私人區域中的名稱,您可以在這兩個網路之間設定 DNS 對等互連。
設定 DNS 對等互連時,您會提供虛擬私有雲網路和 DNS 後置字串。如果服務生產端需要解析具有該 DNS 後置字串的位址,服務生產端會將這些查詢轉送至您的 VPC 網路進行解析。
這些支援的服務 (Cloud SQL 除外) 支援 DNS 對等互連。
如要啟用 DNS 對等互連,您必須在專案中啟用 Cloud DNS API
與服務供應商對等互連 DNS
gcloud
如要在 VPC 網路與服務供應商網路之間設定 DNS 對等互連,請使用 peered-dns-domains create
指令。
gcloud services peered-dns-domains create PEERING_NAME \ --network=VPC_NETWORK \ --dns-suffix=DNS_SUFFIX
更改下列內容:
PEERING_NAME
:這個 DNS 對等互連設定的名稱。VPC_NETWORK
:虛擬私有雲網路的名稱,該網路使用私人服務存取權連線至服務生產端。DNS_SUFFIX
:要與服務生產者對等互連的 DNS 尾碼。您必須提供完整的 DNS 網域名稱,包括半形句號。 舉例來說,example.com.
是有效的 DNS 後置字串。
Terraform
如要在 VPC 網路與服務供應商網路之間設定 DNS 對等互連,請使用 google_service_networking_peered_dns_domain
資源。
列出 DNS 對等互連設定
gcloud
使用 peered-dns-domains list
指令。
gcloud services peered-dns-domains list \ --network=VPC_NETWORK
將 VPC_NETWORK
替換為您的虛擬私有雲網路名稱。
刪除 DNS 對等互連設定
gcloud
使用 peered-dns-domains delete
指令。
gcloud services peered-dns-domains delete PEERING_NAME \ --network=VPC_NETWORK
更改下列內容:
PEERING_NAME
:DNS 對等互連設定的名稱。VPC_NETWORK
:虛擬私有雲網路的名稱。
疑難排解
我分配的範圍有多少已經使用?
建立與服務生產端的私人連線時,您需要分配 IP 位址範圍供其使用。如果您會使用服務生產端的多個服務,每個服務會從分配範圍中保留部分 IP 位址以供使用。您可以查看哪些服務正在使用哪些 IP 位址。舉例來說,您可以查看哪些服務正在使用大範圍的 IP 位址區塊,並避免 IP 位址耗盡。
如要查看已分配範圍的分配比例,請使用網路分析器。 詳情請參閱私人服務存取權 IP 位址使用率摘要。
或者,如要查看哪個服務正在使用特定的 IP 位址範圍:
- 列出您的私人連線。
- 尋找將您連線至相關服務生產端的對等互連連線名稱。
- 針對您的虛擬私人雲端網路列出路徑。
- 尋找具有符合對等互連連線名稱的下一個躍點的路徑。路徑的目的地範圍代表各個服務使用的 IP 位址。
IP 位址範圍用盡
如果指定的私人連線已耗盡分配的 IP 位址空間, Google Cloud 會傳回下列錯誤:Failed to create subnetwork.
Couldn't find free blocks in allocated IP ranges.
您可能會看到這項錯誤,是因為分配的範圍不足以供您使用,或是自訂靜態或動態路徑導致分配的範圍無法充分使用。如要進一步瞭解轉送考量事項,請參閱考量事項。
您可以擴大現有分配量或新增分配量。擴展的分配範圍必須是含有現有範圍的連續 IP 位址範圍。建議您擴展現有範圍,因為分配範圍沒有大小限制,但可建立的分配範圍數量有限。
如何擴展現有的分配範圍:
- 列出您的私人連線並記錄您需要擴展的分配範圍名稱。
- 刪除現有的分配範圍。
- 使用與刪除的範圍相同的名稱來建立新的分配範圍。指定的 IP 位址範圍必須包含刪除的 IP 位址範圍。這樣一來,使用舊分配範圍的現有對等互連資源才可繼續使用相同的 IP 位址,而不會與您虛擬私人雲端網路中的資源發生衝突。舉例來說,如果先前分配的範圍為
192.168.0.0/20
,請將新的分配範圍建立為192.168.0.0/16
。
如何新增分配範圍到現有的私人連線:
內部部署主機無法與服務供應商的網路通訊
服務供應商的網路可能沒有正確的路徑,可將流量導向內部部署網路。根據預設,服務生產端的網路只會取得您 VPC 網路的子網路路徑。因此,服務生產端會捨棄任何不是來自子網路 IP 範圍的要求。
如要設定內部部署主機與服務供應商網路之間的連線,請按照下列步驟操作:
在您的虛擬私有雲網路中,更新對等互連連線,將自訂路徑匯出至服務供應商的網路。匯出路徑會將虛擬私有雲網路中所有符合資格的靜態和動態路徑 (例如內部部署網路的路徑) 傳送至服務供應商的網路。服務供應商的網路會自動匯入這些路徑,然後透過虛擬私有雲網路將流量傳回您的內部部署網路。
請確認包含私人服務存取權專用 IP 範圍的前置字元,是否已正確向內部部署網路放送。如要瞭解如何使用 Cloud Router 公告自訂 IPv4 前置字串,請參閱通告路徑。
檢查 VLAN 連結或 Cloud VPN 通道是否在與私人連線相同的虛擬私有雲網路 (或共用虛擬私有雲網路) 中終止,因為虛擬私有雲網路對等互連不會提供遞移性路由。
服務帳戶權限
如果您在建立 IP 位址分配時,看到專案的 compute.globalAddresses.list
權限錯誤,或是建立、列出或修改私人連線時發生 Error 400: Precondition check failed
等錯誤,可能是 Service Networking API 服務帳戶的 Identity and Access Management (IAM) 角色有問題。啟用 Service Networking API 後,系統會自動建立這個服務帳戶。系統需要一段時間才能佈建帳戶,並顯示在 IAM 頁面上。
控制台
如要確保服務帳戶具備正確的 IAM 角色,請按照下列步驟操作:
前往 Google Cloud 控制台的「IAM」頁面。
選取「包含 Google 提供的角色授權」核取方塊。
在「Name」(名稱) 欄中找出「Service Networking Service Agent」(服務網路服務代理程式) 主體,然後按一下對應資料列中的
「Edit principal」(編輯主體)。在「角色」欄位中,確認「Service Networking 服務代理」角色 (
roles/servicenetworking.serviceAgent
) 是否存在。如果沒有「Service Networking Service Agent」(服務網路服務代理) 角色,請按一下
「Add role」(新增角色) 或 「Add another role」(新增其他角色)。按一下「選擇角色」。
在「篩選器」文字方塊中輸入
Service Networking Service Agent
。從清單中選取「Service Networking Service Agent」,然後按一下「儲存」。
gcloud
如要建立 Service Networking API 服務帳戶,請使用 add-iam-policy-binding
指令。
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \ --role=roles/servicenetworking.serviceAgent
更改下列內容:
HOST_PROJECT_NAME
:主機專案的名稱。HOST_PROJECT_NUMBER
:主機專案的編號。
更新 IP 分配後,對等互連子網路路徑仍存在
更新私人服務存取權連線的已分配 IP 位址範圍後,舊的對等互連子網路路徑可能仍會顯示在虛擬私有雲端網路的轉送表。由於 IP 位址範圍仍在使用中,因此路徑會持續存在。
如要解決這個問題,請按照下列步驟操作:
IP 位址範圍不再使用後,對等互連子網路路徑就會自動移除。刪除資源後,服務供應商可能需要一段時間才能完全刪除資源。舉例來說,如果 Cloud SQL 執行個體使用舊 IP 位址範圍,服務生產者最多可能需要四天才能完全刪除執行個體。刪除作業完成後,對等互連子網路路由就會移除。
無法建立新的私人連線
如果您在刪除與先前私人連線相關聯的虛擬私有雲網路對等互連連線後,嘗試建立新的私人連線, Google Cloud可能會傳回錯誤。如需疑難排解資訊,請參閱下列錯誤訊息。
為避免發生這個問題,請按照程序刪除私人連線,而不是直接刪除相關聯的 VPC 網路對等互連連線。
無法修改分配範圍錯誤:
ERROR: Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Existing allocated IP ranges: ALLOCATED_RANGE_NAMES.
如果您是這類錯誤,請執行下列步驟:
暫時性內部錯誤:
ERROR: (gcloud.services.vpc-peerings.connect) The operation "operations/OPERATION_ID" resulted in a failure "encountered some transient internal error, please try again later"
如果收到這則錯誤訊息,請與 Cloud 支援團隊聯絡。