設定私人服務存取權

私人服務存取權是指在您的虛擬私人雲端 (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) 的專案擁有者和身分與存取權管理成員可以建立分配的 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 位址範圍前,請先考量以下事項:

  • 請選取與目前和未來子網路範圍完全不同的已分配範圍,包括透過 VPC 網路對等互連連線的網路子網路範圍,以及連結至同一個 Network Connectivity Center 中樞的 VPC 輻條子網路範圍。
  • 選取的範圍不得與任何自訂靜態或動態路徑的目的地完全相符或包含這些目地。

    當服務供應商選取未使用的分配範圍,用來做為新資源的候選項目時,系統會排除所有與分配範圍完全相符或符合分配範圍的自訂路徑目的地。如果虛擬私有雲網路包含已分配的範圍,且自訂路徑的目的地與該範圍相符或位於該範圍內,則已分配範圍的可用部分會減少。這項設定可能會導致意料之外的「用量用盡」錯誤。

    舉例來說,如果您為 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 範圍來自動建立的子網路,包括未來地區的子網路。
  • 選取範圍足以滿足目前與未來需求的 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 位址範圍。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取將連線至服務生產端的虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」(私人服務存取權) 分頁中,選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。

  5. 按一下「分配 IP 範圍」

  6. 輸入已分配範圍的「Name」(名稱) 與「Description」(說明)

  7. 為分配範圍指定「IP range」(IP 範圍)

    • 如要指定 IP 位址範圍,請選取「Custom」(自訂),然後輸入 CIDR 區塊,例如 192.168.0.0/16
    • 如要指定前置字串長度並讓 Google 選取可用範圍,請選取「Automatic」(自動),然後輸入前置字串長度,例如 16
  8. 按一下 [Allocate] (分配),建立已分配範圍。

gcloud

如要在虛擬私人雲端網路中建立已分配範圍,請使用 addresses create 指令

  • 如要指定位址範圍與前置字串長度 (子網路遮罩),請使用 addressesprefix-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 資源

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

如果您看到有關專案 compute.globalAddresses.list 權限的錯誤訊息,請參閱「服務帳戶權限」。

列出已分配的 IP 位址範圍

如要列出已分配的 IP 位址範圍,請使用 addresses list 指令

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

建立私人連線

建立分配範圍後,您可以建立與服務供應商的私人連線。私人連線會在您的虛擬私有雲網路與服務供應商的網路之間,建立虛擬私有雲網路對等互連連線。

私人連線是您的虛擬私人雲端網路與服務供應商之間的一對一關係。如果單一服務供應商提供多個服務,針對供應商的所有服務,您只需要一個私人連線即可。

如果單一服務供應商提供多項服務,且您想控制哪些已分配的範圍用於不同的服務資源,可以使用多個 VPC 網路,每個網路都有自己的私人連線。有了這個設定,您就能在建立新的受管理服務資源時選取特定網路,確保系統會為新資源使用相關聯的已分配範圍。

如要連線至多個服務供應商,請針對各個服務供應商使用不重複的分配範圍。這樣做能協助您針對各個服務供應商管理網路設定,例如路徑與防火牆規則。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取將連線至服務生產端的虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁。

  5. 按一下 [Create connection] (建立連線),在網路與服務生產端之間建立私人連線。

  6. 針對「Assigned allocation」(已指派的分配範圍),選取尚未由其他服務供應商使用的一或多個現有分配範圍。

  7. 按一下 [Connect] (連線) 建立連線。

gcloud

  1. 使用 vpc-peerings connect 指令

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    更改下列內容:

    • RESERVED_RANGE_NAME:一或多個分派範圍的名稱。

    • VPC_NETWORK:虛擬私有雲網路名稱。

    這個指令會啟動長期執行作業並傳回作業名稱。

  2. 如要確認作業是否成功,請使用 vpc-peerings operations describe 指令

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    OPERATION_NAME 替換為先前步驟傳回的作業名稱。

您可以在建立私人連線時指定多個分配範圍,舉例來說,如果範圍已用盡,您可以指派額外的分配範圍。服務將會依照您指定的順序使用所有指派範圍中的 IP 位址。

Terraform

如要建立私人連線,請使用 google_service_networking_connection 資源

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

列出私人連線

建立私人連線後,您可以列出該連線,檢查連線是否存在。這個清單也會列出與各個連線相關聯的分派範圍。舉例來說,如果不記得指派給連線的分配範圍為何,您可以查看這個清單。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取連線所屬虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤,查看所有網路的私人連線。

gcloud

使用 vpc-peerings list 指令

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

VPC_NETWORK 替換為您的虛擬私人雲端網路名稱。

修改私人連線

針對現有私人連線,您可以在不中斷流量的情況下新增或移除分配的 IP 位址範圍。舉例來說,在您擴大規模的同時,如果現有的分配範圍即將用盡,您可以新增範圍。

從私人連線移除範圍時,下列規則會套用:

  • 分配範圍不再與私人連線建立關聯,但不會遭到刪除。

    • 如果已移除的範圍不再使用,您可以刪除分配
  • 現有的服務供應商資源可能會繼續使用已移除的範圍。

  • Private Service Connect 不會使用已移除的範圍來分配新的子網路。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取連線所屬虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁標籤,查看所有網路的私人連線。

  5. 在清單中按一下連線名稱。

  6. 在「Assigned allocation」清單中,選取要與私人連線建立關聯的分配範圍。取消勾選要從私人連線中移除的所有已分配範圍。

  7. 按一下 [確定]

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 位址範圍時修改私人連線。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取要刪除的分配範圍所屬虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」(私人服務存取權) 分頁中,選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。

  5. 選取要刪除的分配範圍。

  6. 按一下 [Release] (釋出),分配的 IP 位址範圍會回歸至網路的可用內部 IP 位址集區內。

    如果分配的 IP 位址範圍仍指派給現有連線,您必須輸入其他確認資訊才能釋出分配範圍。

  7. 再按一下 [Release] (釋出),確認刪除。

gcloud

透過指定分配範圍的名稱來刪除分配範圍。

gcloud compute addresses delete NAME \
    --global

NAME 替換為要刪除的已分配範圍名稱。

刪除私人連線

刪除私人連線前,您必須先刪除透過該連線存取的所有服務執行個體。舉例來說,如果您想刪除用於存取 Cloud SQL 的私人連線,必須先刪除使用該連線的 Cloud SQL 執行個體。刪除服務執行個體後,服務供應者的資源也會一併刪除,但這項刪除作業可能不會立即執行。部分服務供應者會延遲刪除作業,直到等待期過後才刪除。您無法在等待期間刪除私人連線。您必須等到服務供應者的資源刪除後,才能刪除連線。

舉例來說,如果您刪除 Cloud SQL 執行個體,系統會傳送成功回應,但服務會等待四天,再刪除服務產生者資源。等待期是指如果您改變了刪除服務的想法,可以要求恢復資源。如果您在等待期間嘗試刪除連線,刪除作業會失敗,並顯示服務供應商仍在使用資源的訊息。

控制台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取要刪除的連線所屬虛擬私人雲端網路。

  3. 選取「Private services access」(私人服務存取權) 分頁。

  4. 在「Private services access」分頁中,選取「Private connection to services」分頁標籤。

  5. 選取要刪除的私人連線。

  6. 按一下 [Delete] (刪除) 以刪除。

  7. 再按一下 [Delete] (刪除),確認刪除。

gcloud

如要刪除私人連線的虛擬私人雲端網路對等互連連線,請使用 vpc-peerings delete 指令

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

VPC_NETWORK 替換為您的虛擬私人雲端網路名稱。

與服務供應者共用私人 DNS 區域

Cloud DNS 私人區域僅限於您的 VPC 網路使用。如果您想讓服務供應商網路從私人區域解析名稱,可以設定這兩個網路之間的 DNS 對等互連。

設定 DNS 對等互連時,您必須提供 VPC 網路和 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 資源


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

列出 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 位址耗盡。

如要查看已分配範圍的分配比率,請使用 Network Analyzer。詳情請參閱私人服務存取 IP 位址使用情形摘要

如要查看哪個服務正在使用特定的 IP 位址範圍,請按照下列步驟操作:

  1. 列出您的私人連線
  2. 尋找將您連線至相關服務生產端的對等互連連線名稱。
  3. 針對您的虛擬私人雲端網路列出路徑
  4. 尋找具有符合對等互連連線名稱的下一個躍點的路徑。路徑的目的地範圍代表各個服務使用的 IP 位址。

IP 位址範圍用盡

如果指定的私人連線已耗盡分配的 IP 位址空間, Google Cloud 會傳回以下錯誤:Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

您可能會看到這項錯誤,因為已分配的範圍不足以滿足您的用量,或是自訂靜態或動態路徑會導致已分配的範圍無法完全使用。如要進一步瞭解轉送考量事項,請參閱「考量事項」。

您可以擴充現有分配額度或新增分配額度。擴展的分配範圍必須是含有現有範圍的連續 IP 位址範圍。建議您擴展現有範圍,因為分配範圍沒有大小限制,但可建立的分配範圍數量有限。

如何擴展現有的分配範圍:

  1. 列出您的私人連線並記錄您需要擴展的分配範圍名稱。
  2. 刪除現有的分配範圍。
  3. 使用與刪除的範圍相同的名稱來建立新的分配範圍。指定的 IP 位址範圍必須包含刪除的 IP 位址範圍。這樣一來,使用舊分配範圍的現有對等互連資源才可繼續使用相同的 IP 位址,而不會與您虛擬私人雲端網路中的資源發生衝突。舉例來說,如果先前分配的範圍為 192.168.0.0/20,請將新的分配範圍建立為 192.168.0.0/16

如何新增分配範圍到現有的私人連線:

  1. 建立新的分配範圍。這個範圍不一定要接續現有的分配範圍。
  2. 將分配範圍新增至現有私人連線。

內部部署主機無法與服務供應商的網路通訊

服務供應商的網路可能沒有正確的路徑,無法將流量導向內部部署網路。根據預設,服務供應商網路只會學習 VPC 網路中的子網路路徑。因此,服務供應器會捨棄任何非來自子網路 IP 範圍的要求。

如要設定內部部署主機與服務供應商網路之間的連線,請按照下列步驟操作:

  • 在 VPC 網路中,更新對等互連連線,將自訂路徑匯出至服務供應商的網路。匯出路徑會將虛擬私人雲端網路中的所有符合資格的靜態和動態路徑 (例如前往內部部署網路的路徑) 傳送至服務供應商的網路。服務供應商的網路會自動匯入這些路徑,然後透過虛擬私有雲網路將流量傳回您的內部部署網路。

  • 請確認包含私人服務存取權的已分配 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 角色,請執行下列操作:

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往身分與存取權管理頁面

  2. 選取「包含 Google 提供的角色授予項目」核取方塊。

  3. 在「Name」欄中找出「Service Networking Service Agent」主體,然後按一下對應資料列中的 「Edit principal」

  4. 在「角色」欄位中,確認是否有「Service Networking Service Agent」角色 (roles/servicenetworking.serviceAgent)。

  5. 如果沒有「Service Networking Service Agent」角色,請按一下「Add role」或「Add another role」

  6. 按一下「請選擇角色」

  7. 在「Filter」文字方塊中輸入 Service Networking Service Agent

  8. 在清單中選取「Service Networking Service Agent」,然後按一下「Save」

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 位址範圍後,舊的對等子網路路徑可能仍會顯示在 VPC 網路的路由表中。路由會持續存在,因為 IP 位址範圍仍在使用中。

如要解決這個問題,請按照下列步驟操作:

IP 位址範圍不再使用時,系統會自動移除對等子網路路徑。刪除資源與服務供應者完全刪除資源之間可能會有延遲時間。舉例來說,如果 Cloud SQL 執行個體正在使用舊的 IP 位址範圍,服務供應者可能需要最多四天才能完全刪除您的執行個體。刪除完成後,對等子網路路由就會移除。