全部產品
Search
文件中心

Alibaba Cloud Service Mesh:在ASM網關中配置黑白名單

更新時間:Jun 30, 2024

當您需要精確控制使用者對服務的存取權限時,可以在ASM網關中配置黑白名單。ASM網關支援從源地址、HTTP網域名稱、連接埠、遠程源IP四個維度對流量進行精確控制,以保障網格內應用的安全。本文以源地址為例,介紹如何在ASM網關中配置IP黑名單和白名單。

前提條件

已部署應用到ASM執行個體的叢集。具體操作,請參見在ASM執行個體關聯的叢集中部署應用

配置說明

  • 每條請求匹配規則內部的關係為AND,請求匹配規則之間的關係為OR。

  • 關閉黑白名單,對應的授權策略會被刪除。

  • HTTP網域名稱(Host)支援精確匹配、首碼和尾碼匹配。配置樣本如下:

    • 精確匹配:aliyun.com

    • 首碼匹配:aliyun*

    • 尾碼匹配:*aliyun.com

使用網關日誌擷取用戶端源IP地址

說明

對於南北向流量,用戶端先請求負載平衡,然後將請求轉給Istio IngressGateway,最後轉給後端服務。由於IngressGateway的存在,擷取用戶端源IP地址變得更為複雜。關於如何在網關中設定南北向流量保留源IP地址,請參見為南北向流量保留源IP地址

  1. 在瀏覽器中輸入http://{您的ASM網關IP地址}/productpage,訪問Productpage服務,產生訪問日誌。

    關於如何擷取ASM網關IP地址,請參見擷取入口網關地址

  2. 使用資料面叢集的KubeConfig,執行以下命令,使用網關日誌擷取用戶端源IP地址。

    kubectl -n istio-system logs ${您的網關Pod名稱} -c istio-proxy | grep "/productpage" | tail -n 1

    樣本輸出:

    {"method":"GET","authority":"47.99.XXX.XXX","response_flags":"-","start_time":"XXXXXX","requested_server_name":null,"request_id":"*****","upstream_local_address":null,"duration":0,"downstream_local_address":"10.34.0.25:80","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.X.X Safari/537.36","upstream_host":null,"bytes_received":0,"istio_policy_status":null,"protocol":"HTTP/1.1","bytes_sent":19,"downstream_remote_address":"XXXXXXX","response_code":403,"x_forwarded_for":"112.124.XXX.XX","upstream_cluster":"outbound|9080||productpage.default.svc.cluster.local","trace_id":null,"path":"/productpage","upstream_transport_failure_reason":null,"upstream_service_time":null,"route_name":null}

    樣本輸出中的downstream_remote_address即為當前用戶端源IP地址。

為網關配置IP黑名單,禁止當前用戶端IP訪問

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊目標網關名稱,然後在網關概覽頁面左側,選擇網關安全 > 黑白名單

  4. 黑白名單匹配規則設定精靈,開啟啟用網關黑白名單開關,匹配模式選擇黑名單,開啟源地址(IPBlock)開關,輸入用戶端源IP地址,然後單擊提交

    說明

    若您需要配置多條匹配規則,請單擊添加請求匹配規則,實現同時攔截或允許存取多類請求。

    建立完成後,頁面會顯示網關黑白名單建立成功,表示當前網關黑白名單策略已經生效。您可以單擊AuthorizationPolicy右側的查看YAML,查看已配置的黑白名單語義資訊。

  5. 在瀏覽器中輸入http://{您的ASM網關IP地址}/productpage,訪問Productpage服務。

    出現如下頁面,表示訪問被拒絕,說明黑名單規則已經生效。

    黑名單規則生效

為網關配置IP白名單,只允許當前用戶端IP訪問

下文將在已配置的IP黑名單的基礎上,通過修改匹配模式,驗證說明IP白名單功能。

  1. 入口網關頁面,單擊目標網關名稱,在網關概覽頁面左側,選擇網關安全 > 黑白名單

  2. 黑白名單匹配規則設定精靈,將匹配模式改為白名單,然後單擊提交

  3. 訪問Productpage服務。

    1. 在瀏覽器中輸入http://{您的ASM網關IP地址}/productpage。

      可以看到頁面能夠正常訪問。

    2. 使用其他IP的用戶端,在瀏覽器中輸入http://{ASM網關IP地址}/productpage。

      出現如下頁面,表示其他用戶端IP訪問被拒絕,說明白名單規則已經生效。黑名單規則生效

相關文檔

如果您需要採集ASM網關的訪問日誌,請參見產生和採集ASM網關訪問日誌