今天早上有個診所沒法鏈接他們的EC2 實例,簡單的Troubleshoot了一下,發現安全組被人改動了,他們的IP subnet被移除了3389的訪問權限,天然沒法遠程鏈接。把對應的子網加進去,就都okay了。json
這個操做估計是某個管理員無心形成的。咱們能夠經過cloudtrail來進行刪選。好比說咱們能夠查看revokesecuritygroupIngress 的操做,就能夠知道誰進行了安全組inbound policy的刪除安全
若是想看細節,咱們能夠點進去查看Event Recordide
固然,若是數據特別多,咱們能夠經過Athena進行查詢,點擊右上角的按鈕 Create Athena Table, 選擇對應的S3 Bucket,他會自動生成對應的數據3d
以後打開Athena,他已經生成了一個表,咱們能夠經過SQL碰見進行查詢,這個表的結構和咱們上面看見的Event Record裏面的JSON數據是相匹配的code
須要注意的是他的每一列的格式,有的是string,有的是 struct。而在真正的JSON數據裏面,有的數據,好比useridenty和 requestparameters 看起來都是嵌套的JSON格式,可是Athena的數據表裏面,他們顯示的類型卻不同,這樣一來,咱們對不一樣類型的數據寫SQL語句的時候語法徹底不同。對象
看看下面的例子, userIdentity裏面的嵌套的鍵值對是能夠像對象同樣直接調用的,而個人requestparameters裏面的鍵值對,我須要用 json_extract 的方式來獲取blog
select userIdentity.username as username, eventTime,sourceIPAddress, json_extract(requestparameters,'$.groupId') as sg , requestparameters from cloudtrail_logs_vetpartners_ec2logging where (eventname='RevokeSecurityGroupIngress')
過濾結果以下所示,XXX在何時對什麼安全組作了怎樣的刪除操做,一目瞭然string