将CloudTrail日志发送到Elasticsearch Service

首先

我发现了两种方法来将CloudTrail投入到Elasticsearch Service中,所以我将它们作为备忘录整理一下。

1. 云跟踪→S3→Lambda→Elasticsearch 服务

使用Lambda处理以gz格式保存在S3中的文件并将其注册到Elasticsearch Service的模式。
可以通过搜索找到示例代码,但需要从头开始创建Lambda函数。

NodeJS Lambda函数创建的参考资料

S3上的Lambda示例已在awslabs的Github上公开,用于将数据注册到Elasticsearch Service。
https://github.com/awslabs/amazon-elasticsearch-lambda-samples/blob/master/src/s3_lambda_es.js
可以根据以下网站的代码作为参考,在上述基础上解压gz文件。
使用Lambda将CloudTrail日志存入CloudSearch以进行搜索。

Lambda执行角色的配置。

如果Elasticsearch的访问策略是完全开放的,就不需要太在意。但如果使用IAM或IP进行限制,需要在Lambda→Elasticsearch API中使访问成为可能,就需要在Lambda执行角色中授予es:*或es:ESHttpPost等权限。
※尚未经验证,但理论上可以将Lambda的执行角色添加到Elasticsearch Service的访问策略中也可以吧?

请参阅以下关于访问策略设置和可以在操作中设置的值的信息。
创建和配置 Amazon ES 域名。

2. 云足迹→云监控日志→Lambda→Elasticsearch 服务

将CloudTrail的日志注册到CloudWatch Logs,然后通过Lambda进行处理,并将其注册到Elasticsearch Service的模式。
以下网站有步骤,但与1.不同,可以通过屏幕上的点击设置来完成。
【运营】利用通过CloudTrail获取的审计日志在ElasticSearch Service中【简单设置】
非常简单又方便!!

我认为,最终还是要使用Lambda,所以我建议您查看所创建的代码和角色设置。
* 这里使用了Bulk API来注册到Elasticsearch。

考察 – 研究、观察

由于可以轻松地从界面设置,因此在第二种配置中使用非常简单。
然而,从费用角度来看,第二种配置同时保存在S3和CloudWatch Logs中,所以感觉会增加一些费用。

抒发一下我的见解

听说有一个关于Lambda支持的语言的调查,是选择Go语言还是Ruby更好?
我觉得Ruby更好。

我们想听听您的意见 – 您认为 AWS Lambda 应该支持下一个语言是哪种?#Golang 还是 #Ruby?— 亚马逊网络服务(@awscloud)2015年10月29日

广告
将在 10 秒后关闭
bannerAds