起因
先介紹一下筆者所在的工作環境。我們是一個小的團隊,申請了一個主賬號作為服務賬號,同時在該主賬號下創建了多個子賬號給不同的同學使用,由於不同的同學有很多不同的需求,因此在使用時沒有嚴格限制不同子賬戶之間的權限,而是都給了管理員權限,而這也導致了這個事情的發生。
資源被操作了
某天,當我查看我的 NAT 網關時,突然發現某個網關上被多綁上了一個 EIP,如下圖所示:
頓時心生疑慮,這個 NAT 我清楚的記得是前段時間處理 VPC 接入公網流量時部署的,接入的時候也只是加上了第一個 EIP,但是今天卻突然發現綁了兩個 EIP。那另外一個是誰綁的呢?難道是我自己在當初綁定時就綁了兩個 EIP?還是說有別的同學錯誤的把 EIP 綁到了我的 NAT 上?還是說這個同學是基於某個需求需要這樣做呢?
在努力回憶確定不是自己做的後,當務之急應該首先要把綁定的操作者確定下來,向他當面問清楚這樣做的原因。但是由於我們團隊為每個子賬戶都授予了權限,因此每個人都有可能操作過。幸虧我們團隊人不多,我向每個同學都問了一遍,但是沒一個人說是自己做的。
既然都記不住是誰操作的,是不是有產品能記錄這些操作呢?抱著懷疑的心情,我搜索了下阿里雲搜索文檔下的產品,還真的有一個叫作 操作審計 的產品,也許它能幫助我找到是誰操作的。
發現是誰操作的
開通操作審計,進入 操作審計控制檯,能看到查詢面板,這裡能清楚的看到每一個操作記錄,最關鍵的是能看到是哪個 RAM 用戶做的操作,這正是我需要的信息。
然而,由於主賬號下每天有大量的事件記錄,我必須更精確地找到 NAT 綁定 EIP 的確切時間和事件,這樣才能精準的定位到相關的操作記錄。這裡操作審計提供了 資源名稱 作為搜索項。
首先,查看一下多出來的 EIP 的創建時間,發現它是在 7 月 28 日創建的,同時可以獲取到 EIP 的 ID。
在搜索欄上選擇 資源名稱,並填入對應的 EIP ID,選好時間後進行查詢。
將鼠標懸浮在 事件名稱 上,可以看到詳細的事件情況,結合事件名,我們可以知道這個就是將 EIP 綁定到 NAT 的事件。
最後操作記錄上顯示是 小A 在 9月21日13:13:01 進行了操作,在詢問本人後,他終於想起是當時綁定別的資源時錯將我的 NAT 綁定上去了。
雖然只是一個誤操作,但是如果沒有操作審計的日誌記錄,排查起來也是很難的。通過操作審計,我們可以通過多個維度進行事件查詢,明確操作人員和操作時間,規範整個使用流程。
操作審計詳解
操作審計每一條日誌都記錄了相關操作的詳細字段。
展開某條具體日誌後,可以看到幾個關鍵的字段,如 AK、事件源、地域、事件時間、錯誤碼、請求ID、事件ID、源IP地址、事件名稱、用戶名,除此之外,如果該條日誌和資源相關,在這條日誌下也能看到對應的資源類型以及資源名稱。最後點擊“查看事件”後,可以看到整個事件詳情,具體字段的介紹可以參見 操作事件結構定義。
另外需要注意的是,操作審計默認只支持 90 天的操作事件查詢,如果有更長時間的事件需求,可以創建跟蹤投遞到自己的 SLS 或者 OSS 上進行長期存儲。
結束語
隨著越來越多的業務上雲,如何保障雲上開發人員更加規範合規的使用雲成為了一個越來越被重視的話題。通過操作審計等審計產品,我們可以合法審查團隊人員的相關操作,規範化開發過程,優化權限管理,真正做到安全上雲,安全用雲。