特殊權限 Azure 角色指派的警示
特殊權限的 Azure 角色 (例如參與者、擁有者或使用者存取管理員) 是功能強大的角色,可能會對您的系統產生風險。 您可能會想要在有人指派這些角色或其他角色時,透過電子郵件或簡訊收到通知。 本文會說明如何使用 Azure 監視器建立警示規則,以收到訂用帳戶範圍的特殊權限角色指派通知。
必要條件
若要建立警示規則,您必須具備:
- 存取 Azure 訂用帳戶
- 可在訂用帳戶內建立資源群組和資源的權限
- 已設定 Log Analytics,使其能夠存取 AzureActivity 資料表
先估計成本再使用 Azure 監視器
使用 Azure 監視器和警示規則會產生相關成本。 成本的計算依據是查詢的執行頻率和所選取的通知。 如需詳細資訊,請參閱 Azure 監視器計量價格。
建立警示規則
若要收到特殊權限角色指派通知,您可以在 Azure 監視器中建立警示規則。
登入 Azure 入口網站。
瀏覽至 [監視器]。
在左側導覽中,按一下 [警示]。
按一下 [建立]>[警示規則]。 [建立警示規則] 頁面隨即開啟。
在 [範圍] 索引標籤上,選取您的訂用帳戶。
在 [條件] 索引標籤上,選取 [自訂記錄搜尋] 訊號名稱。
在 [記錄查詢] 方塊中,新增將對訂用客戶的記錄執行的下列 Kusto 查詢,並觸發警示。
此查詢會篩選出嘗試在所選訂用帳戶範圍內指派參與者、擁有者或使用者存取管理員角色的動作。
AzureActivity | where CategoryValue =~ "Administrative" and OperationNameValue =~ "Microsoft.Authorization/roleAssignments/write" and (ActivityStatusValue =~ "Start" or ActivityStatus =~ "Started") | extend Properties_d = todynamic(Properties) | extend RoleDefinition = extractjson("$.Properties.RoleDefinitionId",tostring(Properties_d.requestbody),typeof(string)) | extend PrincipalId = extractjson("$.Properties.PrincipalId",tostring(Properties_d.requestbody),typeof(string)) | extend PrincipalType = extractjson("$.Properties.PrincipalType",tostring(Properties_d.requestbody),typeof(string)) | extend Scope = extractjson("$.Properties.Scope",tostring(Properties_d.requestbody),typeof(string)) | where Scope !contains "resourcegroups" | extend RoleId = split(RoleDefinition,'/')[-1] | extend RoleDisplayName = case( RoleId =~ 'b24988ac-6180-42a0-ab88-20f7382dd24c', "Contributor", RoleId =~ '8e3af657-a8ff-443c-a75c-2fe8c4bcb635', "Owner", RoleId =~ '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9', "User Access Administrator", "Irrelevant") | where RoleDisplayName != "Irrelevant" | project TimeGenerated,Scope, PrincipalId,PrincipalType,RoleDisplayName
在 [量測] 區段中,設定下列值:
- 量值:資料表資料列
- 彙總類型:計數
- 彙總細微性:5 分鐘
針對 [匯總細微性],您可以將預設值變更為您想要的頻率。
在 [依維度分割] 區段中,將 [資源識別碼資料行] 設定為 [不要分割]。
在 [警示邏輯] 區段中,設定下列值:
- 運算子:大於
- 閾值:0
- 評估頻率:5 分鐘
針對 [評估頻率],您可以將預設值變更為您想要的頻率。
在 [動作] 索引標籤上,建立動作群組或選取現有的動作群組。
動作群組會定義警示觸發時所執行的動作和通知。
在建立動作群組時,必須指定要用來放置動作群組的資源群組。 然後,選取要在警示規則觸發時叫用的通知 (電子郵件/簡訊/推播/語音動作)。 您可以略過 [動作] 和 [標籤] 索引標籤。 如需詳細資訊,請參閱在 Azure 入口網站中建立和管理動作群組。
在 [詳細資料] 索引標籤上,選取要儲存警示規則的資源群組。
在 [警示規則詳細資料] 區段中,選取 [嚴重性],然後指定 [警示規則名稱]。
針對 [區域],您可以選取任何區域,因為 Azure 活動記錄是全球性功能。
跳過 [標籤] 索引標籤。
在 [檢閱 + 建立] 索引標籤上,按一下 [建立] 以建立警示規則。
測試警示規則
建立了警示規則後,便可以測試其是否能引發。
指派訂用帳戶範圍的參與者、擁有者或使用者存取管理員角色。 如需詳細資訊,請參閱使用 Azure 入口網站指派 Azure 角色。
等候幾分鐘來接收警示 (時間長短取決於彙總細微性和記錄查詢的評估頻率)。
在 [警示] 頁面上,監視您在動作群組中指定的警示。
下圖顯示電子郵件警示範例。
刪除警示規則
請遵循下列步驟來刪除角色指派警示規則,並停止產生額外的成本。
在 [監視器] 中,瀏覽至 [警示]。
在警示列中,按一下 [警示規則]。
在想要刪除的警示規則旁邊新增核取記號。
按一下 [刪除] 以移除警示。