當您需要審計和監控服務網格內的資源操作時,可以開啟網格審計並配置SLS的警示,為ASM資源(VirtualService、DestinationRule等)的變更行為添加審計警示能力。在重要資源變動時及時發送警示通知到警示連絡人,以保障服務網格的安全性和合規性。本文介紹如何為網格資源操作配置審計警示,並在虛擬服務被刪除時傳送簡訊通知給警示連絡人。
前提條件
已開通Log ServiceSLS。關於SLS如何計費,請參見計費概述。
步驟一:開啟網格審計
開啟網格審計後,ASM執行個體的KubeAPI動作記錄會被收集到SLS作為後續的警示配置的資料來源。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在KubeAPIAction Trail頁面,選中啟用網格審計,然後單擊確定。
介面顯示如下,表明網格審計啟用成功。
步驟二:添加警示接收使用者
本樣本後續產生的警示會被通知到SLS的Service Mesh內建使用者組,因此需要將能接收通知的帳號添加到該使用者組中。
確認測試子帳號已經添加了手機號,並且對應號碼能夠正常接收簡訊。具體操作,請參見建立使用者。
在使用者組中添加測試子帳號。
在Project列表地區,單擊目標Project名稱,然後在左側導覽列,單擊警示。
如果是建立的Project(沒有在建立網格時或開啟審計功能時顯式地複用現有Project),則Project名字格式為
mesh-log-<Mesh ID>
。如果是複用已有的Project,單擊複用Project名稱。
在警示中心頁面,單擊
。在使用者組管理頁簽,單擊SLS 服務網格內建使用者組右側操作列下的修改。
SLS 服務網格內建使用者組對應的標識符為sls.app.asm.builtin。
在修改使用者組對話方塊,添加測試子帳號,然後單擊確認。
步驟三:配置審計警示
配置VirtualService資源刪除的簡訊警示通知。
在Project列表地區,單擊目標Project名稱,然後在左側導覽列,單擊警示。
在警示中心頁面的警示規則頁簽,單擊建立警示。
在建立警示面板,配置相關資訊,然後單擊確定。
部分配置項說明如下。關於配置項的詳細說明,請參見建立日誌警示監控規則。
配置項
說明
規則名稱
配置為虛擬服務刪除。
檢查頻率
為了快速驗證本樣本的效果,因此配置為1分鐘。
查詢統計
單擊添加,在查詢統計對話方塊的進階配置頁簽,選擇audit開頭的日誌庫。
查詢區間選擇與檢查頻率相同的1分鐘(相對),以避免重複警示與漏報。
在查詢文字框,輸入
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
,然後單擊預覽,確認無誤後,單擊確定。
觸發條件
配置為當有資料時,嚴重度高。
添加標註
您可以按需修改title和desc,配置警示內容的標題和內容。更多說明,請參見內容範本變數說明(新版)。
輸出目標
選擇SLS通知,開啟開啟開關,行動策略選擇SLS 服務網格內建行動策略 (sls.app.asm.builtin)。
步驟四:驗證審計警示
通過刪除一個VirtualService資源來驗證步驟三配置的審計警示。
建立並刪除虛擬服務。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 ,然後單擊使用YAML建立。
在建立頁面,命名空間選擇default,情境模板選擇HTTP基礎路由,然後單擊建立。
在虛擬服務頁面的操作列,單擊建立的reviews-route虛擬服務對應的刪除,然後在確認對話方塊,單擊確定。
查看審計警示是否成功。
在Project列表地區,單擊目標Project名稱,然後在左側導覽列,單擊
。在儀錶盤列表,單擊警示歷史統計,查看每次警示的執行記錄以及是否產生警示行為。
步驟1刪除虛擬服務的操作將在警示歷史地區產生一次警示。
在左側導覽列,單擊日誌儲存,搜尋並單擊internal-alert-history日誌庫,然後在頁面右側,單擊查詢 / 分析。
可以看到AlertDisplayName為虛擬服務刪除的警示日誌。該條日誌的Fired欄位為true。
查看測試帳號綁定的手機是否收到警示通知簡訊。
相關資訊
SLS服務網格內建行動策略細節
警示嚴重程度 | 行為 |
嚴重 | 語音通知 |
高 | 簡訊通知 |
其他 | 郵件通知 |
常用警示條件查詢參考
ASM網關IstioGateway建立、修改、刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: istiogateways and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: create or verb: delete or verb: update )
網關規則Gateway刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: gateways and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
認證ASMCredential刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: asmcredentials and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: delete )
虛擬服務VirtualService刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
目標規則DestinationRule刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: destinationrules and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
可觀測Telemetry刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: telemetries and objectRef.apiGroup: "telemetry.istio.io" and ( verb: delete )
授權策略AuthorizationPolicies刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: authorizationpolicies and objectRef.apiGroup: "security.istio.io" and ( verb: delete )
Envoy過濾器EnvoyFilter刪除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: envoyfilters and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
相關文檔
當您需要為RAM使用者授予Log Service警示的唯讀許可權或系統管理權限,請參見授予RAM使用者警示操作許可權。
您可以在網格中配置工作負載身份、對等身份認證、請求身份認證、授權策略等,更加細粒度地管理網格資源,提高網格的安全性。具體操作,請參見零信任安全概述。