Cloudtrail + Athena 让云平台的审计更简单

系统操做的监管/审计是不少公司的安所有门的要求。 那再AWS上,咱们如何作到呢?html

Cloudtrail + Athena 是很是容易实现,并能够经过SQL的方式,根据审计的需求,查询相应的结果。json

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

什么是 AWS CloudTrail?安全

AWS CloudTrail 是一项 AWS 服务,可帮助对您的 AWS 帐户进行监管、合规性检查、操做审核和风险审核。用户、角色或 AWS 服务执行的操做将记录为 CloudTrail 中的事件。事件包括在 AWS 管理控制台、AWS Command Line Interface 和 AWS 开发工具包和 API 中执行的操做服务器

Amazon Athena 是什么?ide

Amazon Athena 是一种交互式查询服务,让您可以使用标准 SQL 直接在 Amazon Simple Storage Service (Amazon S3) 中轻松分析数据。只需在 AWS 管理控制台中执行几项操做,便可将 Athena 指向 Amazon S3 中存储的数据,并开始使用标准 SQL 运行临时查询,而后在几秒钟内得到结果。工具

Athena 是无服务器的,所以您无需设置或管理任何基础设施,且只需为您运行的查询付费。Athena 可自动扩展 – 并行执行查询 – 所以,即便在数据集很大、查询很复杂的状况下也能很快得到结果。开发工具

2. 下面开始设置Cloudtrail,复制官方文档步骤大数据

使用 AWS 管理控制台建立 CloudTrail 跟踪ui

  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/

相关文章
相关标签/搜索