現在,您可以在應用程式閘道後方安全地部署重要工作負載,以取得第 7 層負載平衡功能的彈性。 有兩種方式可以存取後端工作負載:
- 公用 IP 位址 - 您的工作負載可以透過網際網路進行存取。
- 私人 IP 位址 - 您的工作負載可以透過虛擬網路/已連線網路私下進行存取
適用於應用程式閘道的 Private Link 可讓您透過跨越 VNet 和訂用帳戶的私人連線來連線工作負載。 設定時,私人端點會放入已定義虛擬網路的子網路,為想要與閘道通訊的用戶端提供私人 IP 位址。 如需其他支援 Private Link 功能的 PaaS 服務清單,請參閱 什麼是 Azure Private Link。
特性與功能
在下列案例中,Private Link 可讓您透過私人端點將私人連線擴充至應用程式閘道:
- 與應用程式閘道位於相同或不同區域的 VNet
- 與應用程式閘道位於相同或不同訂用帳戶的 VNet
- 與應用程式閘道位於相同或不同訂用帳戶,以及相同或不同 Microsoft Entra 租用戶的 VNet
您也可以選擇封鎖對應用程式閘道的輸入公用 (網際網路) 存取,並只允許透過私人端點進行存取。 應用程式閘道仍然需要允許輸入管理流量。 如需詳細資訊,請參閱應用程式閘道基礎結構設定
透過私人端點存取時,支援應用程式閘道所支援的所有功能 (包括 AGIC 的支援)。
備註
應用閘道的 Private Link 設定閒置逾時約為 5 分鐘(300 秒)。 為防止因不活躍而終止連線,透過私有端點連接應用閘道的應用程式應使用 TCP 保持活間隔少 於 300 秒。 如果客戶端無法啟用 TCP keepalive,請提交支援服務單,要求在 Application Gateway 上啟用所需的 keepalive 行為。
識別來自私有端點的流量
備註
當流量透過私有端點抵達應用閘道時,Private Link 會保留用戶端的來源 IP 位址與來源埠口。 應用閘道存取日誌會記錄這些值在 clientIP and clientPort 欄位中。 對於 HTTP 和 HTTPS 要求,Application Gateway 新增至 X-Forwarded-For 標頭中的項目,會以 IP:port 格式反映相同的值。 如果另一個代理將請求傳送到私有端點,這些值會將該代理標示為直接的用戶端。
消費者虛擬網路可以使用重疊的 IP 位址空間,因此僅有用戶端 IP 位址可能無法識別原始消費者。 Azure Private Link 會為每個私人端點連線指派一個 linkIdentifier,也稱為 LINKID。 對於 HTTP 和 HTTPS 請求,應用閘道會在以下位置暴露十進位識別碼:
| 位置 | 名稱 | Description |
|---|---|---|
| 請求已轉發到後端 | X-Azure-PrivateEndpoint-ID |
Application Gateway 會在轉發請求前加入此標頭。 其值即為十進位私有端點連結識別碼,例如。 123456 |
| 應用程式閘道存取日誌 | LinkId |
包含與字串值相同的十進位連結識別碼。 欲了解更多資訊,請參閱 存取日誌分類。 |
例如,後端會收到以下標頭,針對透過私有端點抵達的請求:
X-Azure-PrivateEndpoint-ID: 123456
備註
儘管名稱如此,它X-Azure-PrivateEndpoint-ID並不包含私有端點的 Azure 資源 ID。 它包含私有端點連線 linkIdentifier 屬性的十進位值。
X-Azure-PrivateEndpoint-ID HTTP 標頭適用於第 7 層的 HTTP 和 HTTPS 流量。 它不會被加入第四層的 TCP/TLS 代理流量中。
將任一值與 linkIdentifier Azure Resource Manager 中對應的私有端點連線屬性進行比較。 此比較讓你能將後端請求與存取日誌記錄與特定的私有端點連線關聯,以便進行稽核或存取控制決策。
Application Gateway 僅在透過私有端點接收的請求時,填充標頭與存取日誌屬性。 對於直接傳送至 Application Gateway 公用或私人前端 IP 位址的要求,Application Gateway 不會填入 X-Azure-PrivateEndpoint-ID 或 LinkId。 當 Private Link 設定與公用或私有應用閘道前端相關聯時,此行為同樣適用。
關於 Azure Private Link 的LINKID定義及其與 linkIdentifier的關係,請參見使用 TCP 代理 v2 取得連線資訊。
Private Link 元件
使用應用程式閘道實作 Private Link 需要四個元件:
應用程式閘道 Private Link 設定
私人連結組態可以與應用程式閘道前端 IP 位址相關聯,然後用來使用私人端點建立連線。 如果沒有與應用程式閘道前端 IP 位址的關聯,則未啟用 Private Link 功能。
應用程式閘道前端 IP 位址
應用程式閘道的 Private Link 設定需要與公用或私人 IP 位址關聯,以啟用 Private Link 功能。
私人端點
在 VNet 位址空間中配置私人 IP 位址的 Azure 網路資源。 它用於透過私人 IP 位址連線至應用程式閘道,類似於許多其他提供 Private Link 存取的 Azure 服務;例如 Storage 和 Key Vault。
私人端點連線
應用程式閘道上私人端點所產生的連線。 您可以自動核准、手動核准或拒絕連線,以授與或拒絕存取權。
Pricing
| 元件 | 服務提供者/私有連結(應用閘道資源擁有者) | 消費者/私有端點 |
|---|---|---|
| 私人連結服務 | 沒有指控 | 不適用 |
| 私人端點 | 不適用 | 依據 Private Link 收費 |
| 資料處理(雙向) | 沒有指控 | 依據 Private Link 收費 |
| 資料傳輸 | 依頻寬計費 | 依頻寬計費 |
限制
- API 2020-03-01 版或更新版本應該用來設定 Private Link 設定。
- 不支援 Private Link 設定物件中的靜態 IP 配置方法。
- 用於 PrivateLinkConfiguration 的子網路不能與應用程式閘道子網路相同。
- 適用於應用程式閘道的私人連結設定不會公開 "Alias" 屬性,而且必須透過資源 URI 進行參考。
- 私人端點建立不會建立 *.privatelink DNS 記錄或區域。 所有 DNS 記錄都應該輸入至用於您應用程式閘道的現有區域中。
- 應用閘道的 Private Link 設定閒置逾時約為 5 分鐘(300 秒)。 為防止因不活躍而終止連線,透過私有端點連接應用閘道的應用程式應使用 TCP 保持活間隔少 於 300 秒。 如果客戶端無法啟用 TCP keepalive,請提交支援服務單,要求在 Application Gateway 上啟用所需的 keepalive 行為。
下一步
- 設定 Azure 應用程式閘道 Private Link。
- 什麼是 Azure Private Link。