Cloudtrail + Athena 讓雲平臺的審計更簡單

系統操作的監管/審計是很多公司的安全部門的要求。 那再AWS上,我們如何做到呢?

Cloudtrail + Athena 是非常容易實現,並可以通過SQL的方式,根據審計的需求,查詢相應的結果。

1. 首先先了解一下基本概念。

什麼是 AWS CloudTrail?

AWS CloudTrail 是一項 AWS 服務,可幫助對您的 AWS 賬戶進行監管、合規性檢查、操作審覈和風險審覈。用戶、角色或 AWS 服務執行的操作將記錄爲 CloudTrail 中的事件。事件包括在 AWS 管理控制檯、AWS Command Line Interface 和 AWS 開發工具包和 API 中執行的操作

Amazon Athena 是什麼?

Amazon Athena 是一種交互式查詢服務,讓您能夠使用標準 SQL 直接在 Amazon Simple Storage Service (Amazon S3) 中輕鬆分析數據。只需在 AWS 管理控制檯中執行幾項操作,即可將 Athena 指向 Amazon S3 中存儲的數據,並開始使用標準 SQL 運行臨時查詢,然後在幾秒鐘內獲得結果。

Athena 是無服務器的,因此您無需設置或管理任何基礎設施,且只需爲您運行的查詢付費。Athena 可自動擴展 – 並行執行查詢 – 因此,即使在數據集很大、查詢很複雜的情況下也能很快獲得結果。

2. 下面開始設置Cloudtrail,複製官方文檔步驟

使用 AWS 管理控制檯創建 CloudTrail 跟蹤

  1. 登錄 AWS 管理控制檯並通過以下網址打開 CloudTrail 控制檯:https://cn-northwest-1.console.amazonaws.cn/cloudtrail

  2. 選擇您要在其中創建跟蹤的 AWS 區域。

  3. 選擇 Get Started Now

提示

如果您沒有看到 Get Started Now (立即入門),請選擇 Trails (跟蹤),然後選擇 Create trail (創建跟蹤)

  1. 在 Create Trail 頁面上,對於 Trail name,鍵入一個跟蹤名。

2.1 起個Tail的名字,選擇需要審計的內容

1.png

2.2 選擇需要審計的S3 bucket

2.png

2.3 選擇需要審計的Lambda function

3.png

2.4 選擇cloud trail log的存放位置,點擊”創建create“。

4.png

2.5 然後,再S3中,就可以看到cloudtrail產生的日誌文件了。

如何查找您的 CloudTrail 日誌文件:

https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html

5.png

3. Cloudtrail log有了,但是我們如何分析呢?之前,我們可能直接打開json格式的log,硬讀?

以下示例顯示,一位名爲 Alice 的 IAM 用戶對實例 i-ebeaf9e2 執行 ec2-start-instances 命令,從而使用 AWS CLI 調用了 Amazon EC2 StartInstances 操作。

{"Records": [{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::123456789012:user/Alice",
        "acces+sKeyId": "EXAMPLE_KEY_ID",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21:22:54Z",
    "eventSource": "ec2.amazonaws.com",
    "
eventName": "StartInstances
",
    "awsRegion": "us-east-2",
    "sourceIPAddres+s": "205.251.233.176",
    "userAgent": "ec2-api-tools 1.6.12.2",
    "requestParameters": {"instances+Set": {"items": [{"instanceId": "i-ebeaf9e2"}]}},
    "responseElements": {"instances+Set": {"items": [{
        "instanceId": "i-ebeaf9e2",
        "currentState": {
            "code": 0,
            "name": "pending"
        },
        "previous+State": {
            "code": 80,
            "name": "stopped"
        }
    }]}}
}]}


4. 深入瞭解cloudtrail的日誌文件格式。 對於後面通過Athena查詢,才知道如何實現自己的需求。

CloudTrail 日誌文件示例

https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-log-file-examples.html

CloudTrail 日誌事件參考

https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-event-reference.html

畢竟cloudtrail的記錄非常多,加上日積月累之後,通過人工硬讀的方式,肯定是力不從心了。

熟悉大數據處理的話,有很多方法可以處理json格式的文件。但是畢竟審計工作,也不是需要天天做的,開一批機器做數據處理,也是很浪費的行爲。

AWS Athena解決了這個問題,隨用隨查,方便的同時,也降低了成本。

您可以使用 Athena 通過指定日誌文件的 LOCATION 直接從 Amazon S3 查詢這些日誌文件。您可以通過兩種方式之一來執行此操作:

  • 通過直接從 CloudTrail 控制檯爲 CloudTrail 日誌文件創建表。

  • 通過在 Athena 控制檯中手動爲 CloudTrail 日誌文件創建表。

這裏以第一種方式創建的表:

~~~~~~~~~

在 CloudTrail 控制檯中爲 CloudTrail 跟蹤創建表

  1. 在 CloudTrail 控制檯。

  2. 在導航窗格中,選擇 Event history

  3. 在 Event history (事件歷史記錄) 中,選擇 Run advanced queries in Amazon Athena (在 Amazon Athena 中運行高級查詢)

  4. 對於 Storage location (存儲位置),選擇其中存儲了要查詢的跟蹤日誌文件的 Amazon S3 存儲桶。

注意

您可以通過轉到 Trails 並選擇跟蹤來查找與跟蹤相關聯的存儲桶。存儲桶名稱會顯示在 Storage location 中。

   5. 選擇 Create Table。將使用包含 Amazon S3 存儲桶名稱的默認名稱創建表。

~~~~~~~

其實就兩邊,點一點,就完成了,Athena已經幫忙自動準備好 創建外部表的DDL SQL

6.png7.png


5. 然後就可以進入到Athena界面,並看到剛剛創建的表

8.png

查詢示例1:

9.png

查詢示例2:

select count (*) as TotalEvents, useridentity.username, eventname

from  "default"."cloudtrail_logs_cloudtrail_cn_bright"

where eventtime >= '2017-01-01T00:00:00Z'

and useridentity.type = 'IAMUser'

group by useridentity.username, eventname

order by TotalEvents desc;

10.png

至此,我們已經實現審計日誌的SQL化查詢,有任何定製化查詢需求,只要針對的準備相應的SQL,就可實現審計目標。


更多查詢SQL,可以參考官方blog

Analyze Security, Compliance, and Operational Activity Using AWS CloudTrail and Amazon Athena


參考鏈接:

https://docs.aws.amazon.com/zh_cn/athena/latest/ug/cloudtrail-logs.html

https://amazonaws-china.com/blogs/big-data/aws-cloudtrail-and-amazon-athena-dive-deep-to-analyze-security-compliance-and-operational-activity/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章