設定私人服務存取權

私人服務存取權是指在您的虛擬私人雲端 (VPC) 網路與 Google 或第三方所擁有網路之間建立的私人連線。Google 或第三方 (提供服務的實體) 也稱為「服務生產端」。私人連線可讓您 VPC 網路中的 VM 執行個體及您存取的服務能夠透過內部 (RFC 1918) IP 位址進行專屬通訊。VM 執行個體不需要網際網路存取權或外部 IP 位址,就可以透過私人服務存取權與服務連線。

如要進一步瞭解私人服務存取權和其他私人存取權選項,請參閱各項服務的私人存取權選項一文。

整體來說,如要使用私人服務存取權,您必須在虛擬私人雲端網路中分配 IP 位址範圍 (CIDR 區塊),然後與服務供應商建立私人連線

事前準備

如要建立私人連線,請完成下列事前準備:

  • 確認該服務可使用私人服務存取權。
  • 建立 GCP 專案或選擇現有專案。如要瞭解如何建立 GCP 專案,請參閱建立並管理專案
  • 在專案中啟用 Service Networking API。您需要這個 API 才能建立私人連線。
  • 您必須具有已存在的虛擬私人雲端網路,可用來連線至服務供應商的網路。VM 執行個體必須使用這個虛擬私人雲端網路以私人連線的方式連線至服務。
  • 如要執行本指南中的 gcloud 指令列範例,請安裝 Cloud SDK

權限

具有網路管理員角色的專案擁有者、編輯者及身分與存取權管理成員可以建立分配的 IP 位址範圍,以及管理私人連線。

如要進一步瞭解各個角色,請參閱虛擬私人雲端身分與存取權管理角色說明文件。

使用共用虛擬私人雲端的情況

如果您使用的是共用虛擬私人雲端,請在主專案中建立分配的 IP 範圍和私人連線。這些作業通常必須由主專案中的網路管理員執行。主專案設定完成後,服務專案中的 VM 執行個體就可使用私人連線。

配額與限制

由於私人連線會實作成虛擬私人雲端對等互連連線,因此私人服務存取權也適用虛擬私人雲端網路對等互連的配額與限制

建立分配的 IP 位址範圍

建立私人連線之前,您必須分配要給服務供應商的虛擬私人雲端網路使用的 IP 位址範圍。這樣做可確保您的虛擬私人雲端網路與服務供應商的網路之間不會發生 IP 位址衝突。請為各個服務供應商建立分配的範圍。

在虛擬私人雲端網路中分配的範圍無法用於子網路 (主要與次要範圍) 及自訂靜態路徑的目的地。

IP 位址範圍大小

私人服務存取權範圍 (按一下可放大)

服務供應商在自己的連線端建立子網路時,系統會從分配的範圍中為子網路的 IP 位址範圍選取一個開放範圍。

每個服務供應商都需要 IP 位址範圍大小下限。對於 Google 來說,大小下限為單一 /24 區塊 (256 個位址),但建議大小為 /16 區塊 (65,536 個位址)。您要選擇何種大小,取決於您使用的服務和地區數量等因素。您可能會在多個地區中使用單一服務以達到備援效果或減少延遲。

舉例來說,如果您在不同地區中使用兩個服務,則服務供應商必須建立 6 個子網路,每個子網路都有一個 /24 區塊。如果您打算使用額外服務或地區,可能很快就會用盡 /20 分配範圍。如果沒有連續的 /16 區塊,您可以先使用較小的分配範圍,之後需要更多 IP 位址時再新增範圍

關於服務供應商的子網路

當您建立私人連線和具有私人 IP 位址的資源時,服務會建立子網路,並在當中佈建資源。服務會從分配的 IP 位址範圍中選取可用的範圍。您無法選取或修改服務供應商的子網路 IP 位址範圍。即使您刪除私人連線或分配的 IP 位址範圍,在您刪除子網路中所有的資源之前,子網路仍會保留下來。

在您佈建其他資源的同時,服務會在先前建立的現有地區子網路中佈建這些資源。如果子網路已滿,服務會在該地區中建立新的子網路。

注意事項

在分配 IP 位址範圍前,請先考量以下限制:

  • 選取的範圍不得與目前已分配的範圍、子網路或自訂靜態路徑重疊。範圍之間不能有所重疊。
  • 如果使用自動模式的虛擬私人雲端網路,您無法建立與 10.128.0.0/9 相符或重疊的分配範圍。此範圍是供自動建立的子網路使用。
  • 選取範圍足以滿足目前與未來需求的 CIDR 區塊。如果後來發現這個範圍不夠大,請儘可能擴展這個範圍。雖然您可以指派多個分配範圍給單一服務供應商,但 Google 對可分配的 IP 位址範圍數量設有配額限制,每個範圍的大小 (網路遮罩) 則不受限。
  • 請勿將相同的分配範圍重複用於多個服務供應商。雖然能夠採取這樣的做法,但會導致 IP 位址重疊。每個服務生產端只能查看自己的網路,無法知道其他服務生產端使用的 IP 位址。
  • 建立分配範圍時,一個分配範圍只能指派一個 CIDR 區塊。如果需要擴展 IP 位址範圍,您無法新增更多區塊到單一分配範圍,但是可以另外建立分配範圍,或是使用能包含新舊範圍的較大區塊重新建立現有的分配範圍。
  • 如要自行建立分配範圍,而不由 Google 建立 (例如透過 Cloud SQL),您可以使用相同的命名慣例,讓其他使用者或 Google 服務知道已有 Google 專用的分配範圍。Google 服務代表您分配範圍時,會使用下列格式為分配範圍命名:google-managed-services-[your network name]。如果已有這個分配範圍,Google 服務會使用現有範圍,而不會另外建立範圍。

程序

下列步驟說明如何建立分配的 IP 位址範圍。

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取將連線至服務生產端的虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Allocated IP ranges for services} (已分配的服務 IP 範圍) 分頁標籤。
  5. 按一下 [Allocated IP range] (已分配的 IP 範圍)
  6. 輸入已分配範圍的「Name」(名稱) 與「Description」(說明)
  7. 為分配範圍指定「IP range」(IP 範圍)

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

gcloud

在您的虛擬私人雲端網路中建立分配範圍。

  • 如要指定位址範圍與前置字串長度 (子網路遮罩),請使用 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 標記。如果省略位址範圍,GCP 會自動選取您的虛擬私人雲端網路未使用的位址範圍。下列範例會以 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 \
    --project=my-project

列出分配的 IP 位址範圍

您可以使用 --filter 標記列出範圍,查看您可以用於私人服務存取權的範圍。以 VPC_PEERING 的目的篩選範圍,如以下範例所示:

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

建立私人連線

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

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

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

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取將連線至服務生產端的虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Private connections to services] (私人服務連線) 分頁標籤。
  5. 按一下 [Create connection] (建立連線),在網路與服務生產端之間建立私人連線。
  6. 針對「Assigned allocation」(已指派的分配範圍),選取尚未由其他服務供應商使用的一或多個現有分配範圍。
  7. 按一下 [Connect] (連線) 建立連線。

gcloud

  1. 建立私人連線。

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=[RESERVED_RANGE_NAME] \
        --network=[VPC_NETWORK] \
        --project=[PROJECT_ID]
    
    • [RESERVED_RANGE_NAME] 是一或多個分派範圍的名稱。
    • [VPC_NETWORK] 是您的虛擬私人雲端網路的名稱。
    • [PROJECT_ID] 是含有您的虛擬私人雲端網路的專案 ID。

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

  2. 確認作業是否已經成功完成。

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

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

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

列出私人連線

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

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取連線所屬虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Private connections to services] (私人服務連線) 分頁標籤,查看所有網路的私人連線。

gcloud

列出您虛擬私人雲端網路中的私人連線。

gcloud services vpc-peerings list \
    --network=[VPC_NETWORK] \
    --project=[PROJECT_ID]

[VPC_NETWORK][PROJECT_ID] 分別替換為您的虛擬私人雲端網路名稱與其專案 ID。

修改私人連線

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

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取連線所屬虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Private connections to services] (私人服務連線) 分頁標籤,查看所有網路的私人連線。
  5. 在清單中按一下連線名稱。
  6. 在「Assigned allocation」(已指派的分配範圍) 下拉式選單中,選取您要分配的範圍。您無法使用 Google Cloud Platform 主控台移除範圍。如要移除範圍,請參閱 gcloud 操作說明。
  7. 按一下 [OK] (確定)

gcloud

新增或移除現有私人連線所分配的 IP 位址範圍。

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=[RESERVED_RANGE_NAME] \
    --network=[VPC_NETWORK] \
    --project=[PROJECT_ID]

[RESERVED_RANGE_NAME] 改成一或多個要指派給私人連線的分配範圍名稱,並將 [VPC_NETWORK][PROJECT_ID] 改成您虛擬私人雲端網路的名稱和網路的專案 ID。您指定的清單是新的範圍組合。先前存在但未包含在清單中的範圍會遭到刪除。

刪除私人連線

如要刪除私人連線,您必須刪除對應的虛擬私人雲端對等互連連線。您的虛擬私人雲端網路會與服務供應商的虛擬私人雲端網路中斷連線;這兩個網路中的現有資源會保留下來,但會失去私人服務存取權。您可以再次建立私人連線來重新建立連線。

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取要刪除的連線所屬虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Private connections to services] (私人服務連線) 分頁標籤。
  5. 選取要刪除的私人連線。
  6. 按一下 [Delete] (刪除) 以刪除。
  7. 再按一下 [Delete] (刪除),確認刪除。

gcloud

刪除私人連線的虛擬私人雲端網路對等互連連線。

gcloud compute networks peerings delete [CONNECTION_NAME] \
    --network [VPC_NETWORK]

[CONNECTION_NAME][VPC_NETWORK] 分別替換為您的私人連線名稱與虛擬私人雲端網路。

刪除分配範圍

在刪除分配的 IP 位址範圍前,請確認沒有任何私人連線在使用該範圍。您可以刪除修改現有私人連線來取消與分配範圍的關聯。如果您不刪除或進行修改,現有連線仍會有效,但您的虛擬私人雲端可能會使用與服務供應商網路重疊的 IP 位址。此外,由於沒有可供選取的已分配 IP 位址範圍,因此服務無法建立新的子網路。

主控台

  1. 前往 Google Cloud Platform 主控台的「VPC networks」(VPC 網路) 頁面。
    前往「VPC networks」(VPC 網路) 頁面
  2. 選取要刪除的分配範圍所屬虛擬私人雲端網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 在「Private service connection」(私人服務連線) 分頁中,選取 [Allocated IP ranges for services} (已分配的服務 IP 範圍) 分頁標籤。
  5. 選取要刪除的分配範圍。
  6. 按一下 [Release] (釋出),分配的 IP 位址範圍會回歸至網路的可用內部 IP 位址集區內。

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

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

gcloud

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

gcloud compute addresses delete [NAME] \
    --global

疑難排解

我分配的範圍有多少已經使用?

建立與服務生產端的私人連線時,您需要分配 IP 位址範圍供其使用。如果您會使用服務生產端的多個服務,每個服務會從分配範圍中保留部分 IP 位址以供使用。您可以查看哪些服務正在使用哪些 IP 位址。舉例來說,您可以查看哪些服務正在使用大範圍的 IP 位址區塊,並避免 IP 位址耗盡。

如要查看哪個服務正在使用特定的 IP 位址範圍:

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

IP 位址範圍用盡

如果指定的私人連線已耗盡分配的 IP 位址空間,您可以擴展現有的分配範圍或新增範圍。擴展的分配範圍必須是含有現有範圍的連續 IP 位址範圍。建議您擴展現有範圍,因為分配範圍沒有大小限制,但可建立的分配範圍數量有限。

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

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

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

  1. 建立新的分配範圍。這個範圍不一定要接續現有的分配範圍。
  2. 將分配範圍新增至現有私人連線。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
虛擬私人雲端