當您需要按照自身需求定製存取控制策略時,可以在ASM安全性原則中配置自訂授權服務,將請求轉寄至指定的自訂授權服務進行鑒權,便於實現更加複雜的鑒權邏輯,減少開發和維護成本,提高開發效率。
前提條件
操作步驟
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在ASM安全性原則頁面,單擊建立。在建立ASM安全性原則對話方塊,單擊自訂授權服務,然後單擊確定。
在建立自訂授權服務頁面的自訂授權服務配置設定精靈,單擊基於envoy.ext_authz實現的自訂授權服務(HTTP或gRPC協議)頁簽,進行相關配置,然後單擊下一步。
本樣本配置如下。關於配置項的說明,請參見接入HTTP協議的自訂授權服務。
在工作負載和匹配規則設定精靈,單擊添加工作負載組。在建立工作負載組對話方塊,進行相關配置,然後單擊提交。
本樣本配置如下。
配置項
說明
工作負載組名稱
配置為test-policy。
工作負載列表
單擊添加工作負載。
在添加工作負載對話方塊,選中工作負載生效,選擇命名空間為default,工作負載類型為Service。
在選擇負載地區,選中productpage,單擊表徵圖,將選中的負載添加到已選擇地區,然後單擊確定。
匹配規則列表
匹配模式選擇選中請求必須經過鑒權,匹配規則選中自訂匹配規則,然後開啟HTTP路徑(Path)開關,配置為/productpage。
建立成功後,在完成設定精靈,會顯示ASM安全性原則建立成功。您可以單擊查看YAML查看建立的資源,也可以單擊完成,返回ASM安全性原則頁面,查看新建立的安全性原則。
驗證自訂授權配置是否生效。
執行以下命令,請求中攜帶
x-ext-authz: allow
,訪問productpage服務。curl -I -H "x-ext-authz: allow" http://${ASM網關IP地址}/productpage
預期輸出:
HTTP/1.1 200 OK content-type: text/html; charset=utf-8 content-length: 5288 server: istio-envoy date: Tue, 17 Jan 2023 07:53:14 GMT x-envoy-upstream-service-time: 20
預期輸出表明觸發鑒權且鑒權通過。
執行以下命令,請求中攜帶
x-ext-authz: deny
,訪問productpage服務。curl -I -H "x-ext-authz: deny" http://${ASM網關IP地址}/productpage
預期輸出:
HTTP/1.1 403 Forbidden x-ext-authz-check-result: denied date: Tue, 17 Jan 2023 07:55:27 GMT server: istio-envoy x-envoy-upstream-service-time: 2 transfer-encoding: chunked
預期輸出表明觸發鑒權但鑒權未通過。
以上結果表明自訂授權配置生效。
相關操作
關於ASM安全性原則的概念和相關功能說明,請參見ASM安全性原則概述。
您可以啟用網格審計功能,記錄或追溯不同使用者的日常操作,也可以為網格資源操作配置審計警示,在重要資源變動時及時發出警示通知到警示連絡人。具體操作,請參見使用KubeAPIAction Trail和為網格資源操作配置審計警示。