說明
常見的 Ingress 定義方法包含 Host 與 Path,而在某些情境 (下面案例並非最佳實踐) 也需要開放 WebAPI 給指定 IP 位置使用,若直接使用 Path 方式存取 WebSite 與 WebAPI,有可能會有需要修改既有程式路由。 若在 WebAPI 沒有良好設計前提下,臨時變更可能造成其他使用者不便。所以我們會透過 host 設定 + WAF v2 Custom Rule,限制 WebAPI 存取。
前置作業
開始實作之前,你需要先建立 Azure Kubernetes Service 與 Application Gateway Ingress Controller,若您沒有現成的環境,可以先考慮透過 Application Gateway Ingress Controller 建立實驗環境。
另外,因為我們的範例為 www.duranhsieh.com 存取 A 網站服務、test.duranhsieh.com, 存取 B 網站服務,所以您必須先行設定 A record 與 CName 至 Application Gateway。
建立自訂 WAF 規則
在 Azure 上搜尋 WAF Policy (或 Web 應用程式防火牆原則),點選建立
Ingress YAML
開啟 Azure Portal > Cloud Shell 輸入 code aspnetapp.yaml,輸入下列 ingress 設定
完成後存檔,輸入 kubectl apply -f aspnetapp.yaml
實際測試
在外部隨意一台電腦,則無法存取 www.duranhsieh.com;而在特定 IP 的電腦,則可以瀏覽。
參考資料
1. Application Gateway Ingress Controller
0 留言