如果您需要將一個VPC內部署的服務資源共享給其他賬號下的VPC訪問,您可以通過PrivateLink建立2個VPC之間的網絡連接,來實現跨賬號跨VPC私網訪問服務資源。本文以CLB為例,介紹如何實現跨賬號跨VPC私網訪問CLB。
背景信息
VPC是您獨自擁有的云上私有網絡,不同VPC之間完全隔離。您可以通過私網連接建立VPC與阿里云服務之間安全穩定的私有連接,簡化網絡架構,避免通過公網訪問服務帶來的潛在安全風險。
通過私網連接實現私網訪問,您需要創建終端節點服務和終端節點。
終端節點服務
終端節點服務可以與其他VPC的終端節點建立私網連接服務,由服務提供方創建和管理。
終端節點
終端節點可以與終端節點服務相關聯,以建立通過VPC私網訪問外部服務的網絡連接。終端節點由服務使用方創建和管理。
相關主體 | 相關組件 |
服務提供方 | 創建和管理終端節點服務。 |
服務使用方 | 創建和管理終端節點。 |
配置場景
本文以下圖場景為例。某公司使用阿里云賬號A在德國(法蘭克福)地域創建了VPC1,使用阿里云賬號B在德國(法蘭克福)地域創建了VPC2。在VPC2中創建了ECS2和ECS3,并且在ECS2實例和ECS3實例部署了應用服務。因業務發展,VPC2中的服務需要被VPC1通過私網訪問,避免公網訪問服務帶來的潛在安全風險。
您可以在VPC2下創建支持私網連接的CLB實例,將ECS實例添加為CLB實例的后端服務器,CLB就可以接收客戶端流量并將流量按照監聽轉發規則分發至對應的后端服務器ECS。然后創建終端節點服務,將CLB實例添加為服務資源,并將阿里云賬號A的ID添加到終端節點服務的服務白名單中。在VPC1下創建終端節點。創建成功后,終端節點與終端節點服務建立連接且狀態正常時,VPC1即可跨賬號私網訪問VPC2下的服務。
使用限制
VPC2中的CLB服務資源必須是按量付費的私網CLB實例,只有按量付費的私網CLB實例才支持私網連接。
創建終端節點服務時,選擇地域需要同時支持私網連接和CLB實例的地域。關于私網連接和CLB實例支持的地域,請參見私網連接支持的地域和CLB支持的地域信息。
終端節點和終端節點服務需要部署在一個可用區內,且該可用區必須是CLB實例部署的可用區。
前提條件
首次使用時,請登錄私網連接服務開通頁面根據提示開通私網連接服務。
您已使用阿里云賬號A在德國(法蘭克福)地域創建了VPC1,使用阿里云賬號B在德國(法蘭克福)地域創建了VPC2,并且在VPC1和VPC2中分別創建了一個交換機。具體操作,請參見創建專有網絡和交換機。
您已在賬號A的VPC1中創建了ECS1實例,在賬號B的VPC2中創建了ECS2和ECS3實例,ECS2和ECS3部署了不同的Nginx服務。
關于如何創建ECS實例,請參見自定義購買實例。
本文ECS2與ECS3部署測試應用示例如下:
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS2." > index.html
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS3." > index.html
您已經在VPC1創建了安全組。您可以根據自己的實際業務和安全要求配置安全組規則。
具體操作,請參見創建安全組。
說明VPC2中使用的安全組是在創建ECS2和ECS3時,阿里云為您創建的默認安全組。
本文中2個VPC網絡規劃如下表所示,在您規劃網絡時,選擇的VPC1和VPC2的網段可以重疊且互不影響。
屬性 | VPC1 | VPC2 |
網絡實例所屬地域 | 德國(法蘭克福) | 德國(法蘭克福) |
網絡實例的網段規劃 |
|
|
網絡實際交換的可用區 | 交換機位于可用區B | 交換機位于可用區B |
服務器IP地址 | ECS1 IP地址:10.10.2.1 |
|
配置步驟
步驟一:創建支持私網連接功能的CLB實例
使用賬號B登錄傳統型負載均衡CLB控制臺。
在實例管理頁面,單擊創建傳統型負載均衡。
在購買頁面,根據以下信息配置CLB實例,然后單擊立即購買完成支付。
配置
說明
付費模式
選擇一種付費模式。本文只支持選擇按量付費。
地域和可用區
選擇實例的所屬地域,并在可用區下拉列表中選擇實例的主可用區,主可用區是當前承載流量的可用區。
本文地域選擇德國(法蘭克福) ,可用區選擇法蘭克福 可用區B。
說明確保實例的地域和后端添加的云服務器ECS(Elastic Compute Service)的地域相同。
可用區類型
顯示所選地域的可用區類型。系統默認顯示多可用區。
備可用區
選擇實例的備可用區。備可用區默認不承載流量,主可用區不可用時才承載流量。
本文選擇歐洲中部1 可用區A。
實例名稱
輸入自定義實例名稱。
實例計費方式
選擇實例的一種計費方式。包括以下兩種計費方式:
按規格計費
按使用量計費
本文選擇按規格計費。
實例規格
選擇一種性能規格。
實例類型
根據業務場景選擇配置對外公開或對內私有的CLB實例,系統會根據您的選擇分配公網或私網服務地址。
本文只支持選擇私網。
網絡類型
選擇CLB實例的網絡類型。
系統默認顯示專有網絡。
專有網絡
選擇VPC2及VPC2下的交換機。
IP版本
選擇CLB實例的IP版本。本文選擇IPv4。
功能特性
選擇實例的功能特性。系統默認顯示標準功能。
公網流量費
選擇一種公網計費方式。公網CLB實例支持以下兩種公網計費方式:
按使用流量計費
按固定帶寬計費
本文系統默認顯示按使用流量計費。
說明公網實例會按使用流量計費,本文選擇的私網實例不會產生流量費。
數量
選擇購買數量。本文選擇1。
資源組
選擇實例所屬的資源組。本文選擇默認資源組。
步驟二:配置CLB實例
創建CLB實例后,您需要至少添加一個監聽和一組后端服務器才能實現流量轉發。
使用賬號B登錄傳統型負載均衡CLB控制臺。
在實例管理頁面,找到步驟一創建的CLB實例,在操作列單擊監聽配置向導。
在協議&監聽配置向導,根據以下信息配置監聽規則,其他配置保持默認值,然后單擊下一步。
選擇監聽協議:本文選擇TCP協議。
監聽端口:用來接收請求并向后端服務器進行請求轉發的監聽端口。
本文設置為80。
在后端服務器配置向導,選擇默認服務器組,單擊繼續添加,添加后端服務器。
在我的服務器面板,選擇已經創建的ECS2和ECS3實例,單擊下一步。
配置權重,單擊添加。
權重越大轉發的請求越多,默認為100,本文保持默認值。
在默認服務器組頁簽,配置后端協議端口,本文端口設置為80,然后單擊下一步。
ECS實例上開放的用來接收請求的后端端口,在同一個CLB實例內可重復。
在健康檢查配置向導,配置健康檢查,本文使用默認值,然后單擊下一步。
在配置審核配置向導,檢查配置信息,然后單擊提交。
單擊知道了,返回實例管理頁面。
當后端ECS實例的健康檢查狀態為正常時,表示后端ECS實例可以正常處理CLB轉發的請求了。
步驟三:創建終端節點服務
終端節點服務是可以被其他VPC通過創建終端節點建立私網連接的服務。
使用賬號B終端節點服務控制臺。
在頂部菜單欄處,選擇要創建終端節點服務的地域。本文選擇德國(法蘭克福)。
在終端節點服務頁面,單擊創建終端節點服務。
在創建終端節點服務頁面,根據以下信息配置終端節點服務,然后單擊確定創建。
此處僅列舉和本文強相關的配置。關于其余參數的配置,請參見創建終端節點服務。
配置
說明
選擇服務資源
選擇要承載流量的可用區,然后選擇與終端節點服務關聯的CLB實例。
本文選擇法蘭克福 可用區B,然后選擇步驟一創建的支持私網連接功能的CLB實例。
自動接受終端節點連接
選擇是否自動接受終端節點的連接請求。本文選擇否。
是:終端節點服務將自動接受終端節點的連接請求,通過終端節點能夠訪問服務。
否:終端節點連接將處于已斷開狀態,等待服務使用方進行處理:
如果服務使用方接受該終端節點對應的終端節點服務連接,通過終端節點將能夠訪問服務。
如果服務使用方拒絕該終端節點對應的終端節點服務連接,通過終端節點無法訪問服務。
是否支持同可用區優先
本文選擇是,表示連接服務的終端節點域名支持就近解析。
終端節點服務創建成功后,您可以查看終端節點服務的實例ID和服務名稱。
步驟四:添加服務白名單
您可以為終端節點服務添加服務白名單,服務白名單中的用戶可以創建與終端節點服務連接的終端節點。
完成以下操作,將阿里云賬號A(主賬號)的ID添加到阿里云賬號B配置的終端節點服務的服務白名單中。
步驟五:創建終端節點
終端節點可以與終端節點服務相關聯,以建立通過VPC私網訪問外部服務的網絡連接。
使用阿里云賬號A終端節點控制臺。
在頂部菜單欄處,選擇要創建終端節點的地域。本文選擇德國(法蘭克福)。
在終端節點頁面,單擊創建終端節點。
在創建終端節點頁面,根據以下信息配置終端節點,然后單擊確定創建。
此處僅列舉和本文強相關的配置。關于其余參數的配置,請參見創建終端節點。
配置
說明
節點名稱
輸入自定義終端節點的名稱。
終端節點類型
終端節點選擇的節點類型。本文選擇接口終端節點。
終端節點服務
選擇目標終端節點服務。
本文先單擊選擇可用服務,然后選擇步驟三中創建的終端節點服務。
專有網絡
選擇需要創建終端節點的VPC。本文選擇已創建的VPC1。
安全組
選擇要與終端節點網卡關聯的安全組,安全組可以管控VPC到終端節點網卡的數據通信。
說明確保安全組內的規則開放了客戶端對終端節點網卡的訪問。
一個終端節點默認最多支持添加5個安全組。
可用區與交換機
選擇終端節點服務對應的可用區,然后選擇該可用區內的交換機,系統會自動在該交換機下創建一個終端節點網卡。
本文選擇法蘭克福 可用區B,然后選擇VPC1中創建的交換機。
創建完終端節點后,您可以在終端節點詳情頁查看生成的終端節點域名、終端節點可用區的域名和IP。
步驟六:接受終端節點連接請求
終端節點發送連接請求后,終端節點服務需要接受終端節點的連接請求。接受后,VPC1才能通過終端節點訪問服務。
如果您在步驟三創建終端節點服務時設置自動接受連接請求,請忽略此步驟。
完成以下操作,在阿里云賬號B的終端節點服務上接受阿里云賬號A的終端節點連接請求。
使用阿里云賬號B終端節點服務控制臺。
在頂部菜單欄處,選擇終端節點服務的地域。本文選擇德國(法蘭克福)。
在終端節點服務頁面,找到步驟三創建的終端節點服務,單擊其服務ID鏈接。
在終端節點服務詳情頁面,單擊終端節點連接頁簽,找到目標終端節點,在操作列單擊允許。
在允許連接對話框,單擊確定。
接受連接請求后,終端節點連接的狀態由已斷開變更為已連接,表示終端節點服務可以處理終端節點發送的請求了。
步驟七:通過終端節點訪問服務
完成以下操作,測試阿里云賬號A的VPC1中的ECS1實例是否可以通過私網訪問阿里云賬號B的VPC2中部署在ECS2和ECS3上的服務。
本文中ECS實例安裝了Alibaba Cloud Linux操作系統,如果您使用的是其他操作系統,如何測試VPC1和VPC2之間的連通性請參見您的操作系統手冊。
使用阿里云賬號A登錄VPC1中的ECS1實例。具體操作,請參見ECS遠程連接方式概述。
打開阿里云賬號A ECS1實例的瀏覽器。
登錄VPC1中的ECS1實例后,您有以下兩種方式測試VPC之間的連通性。
通過終端節點服務域名訪問VPC2中部署的服務。
在終端節點詳情頁,查看生成的終端節點服務域名。
執行
curl
命令,測試連通性。
指定可用區域名或IP訪問VPC2中部署的服務。
在終端節點詳情頁,單擊可用區與網卡頁簽,查看生成的可用區域名和IP地址。
執行
curl
命令,測試連通性。