Amazon: S3通过Lambda
AWS Lambda允许您独立于服务器和应用程序运行代码。当连接到AWS S3时,S3桶中的事件可以触发Lambda函数。
您可以将AWS S3桶连接到InsightOps,以便从AWS Lambda跟踪事件和函数。
为了连接它们,您必须:
你也可以使用an工作代码示例.
在你开始之前
确保您使用的是Python的证书。你可以在这里阅读更多关于证书:https://github.com/certifi/python-certifi和https://certifi.io/en/latest/.
用例
你可以在几种不同的情况下使用AWS Lambda insight:
- 转发AWS ELB和CloudFront日志。
- 向前OpenDNS日志
- 转发CloudTrail日志(如果您已经配置了CloudTrail S3集成)
获取日志Token
下载包后,必须获取至少一个日志令牌。基于令牌的输入是一个单一的TCP连接,其中每个日志行包含一个唯一标识目标日志的令牌。
获取日志令牌:
- 登录您的InsightOps帐户。
- 按照下面的说明获取日志令牌:TCP日志标记.
或者,您可以使用现有的令牌来聚合日志。
部署一个脚本到AWS Lambda
现在,您必须在AWS Lambda中创建一个函数,该函数将调用一个脚本来运行并触发一个事件以供AWS S3跟踪。
您必须完成以下操作:
配置功能
按照下面的说明在AWS Lambda中创建一个新函数:https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html
配置新功能。
- 登录到AWS控制台。
- 从“服务”下拉菜单中选择λ从“计算”部分。
- 从左侧导航菜单中选择功能然后点击橘子创建新函数右边的按钮。
- 在“蓝图”部分,搜索并选择s3-get-object-python蓝图。
- 单击下一个按钮。
- 在“触发器”部分中,搜索并选择S3作为触发器。
- 在“Bucket”中选择存储要使用的日志数据的S3 Bucket。
- 对于“事件类型”,选择事件类型对象创建(全部)。
- 检查启用触发复选框。
- 单击下一个按钮。
上传功能代码
- 你的函数名称。
- 可选地提供描述。
- 将“runtime”下拉框中的python运行时版本设置为python 3.6。
- 在您的资产上,创建一个.ZIP文件,包含
r7insight_lambdas3.py和文件夹certifi你可在此下载:https://github.com/rapid7/r7insight_lambdaS3- 确保文件和证书文件夹位于ZIP归档文件的根目录中
- 在“代码输入类型”下,单击上传ZIP文件单选按钮。
- 选择在前面的步骤中创建的归档zip文件。
- 在“Handler”字段中,将处理程序名称设置为
r7insight_lambdas3.lambda_handler.
- 在“角色”字段中,分配或创建一个允许的新角色
getobject在您选择的S3桶上。在AWS Lambda中创建角色会自动授予所需的权限。 - 在“Memory”下,将内存限制设置为足够高的值,以便于日志解析和发送。
- 在“Timeout”下,将Timeout设置为足够高的值,以便于日志解析和发送。
- “VPC”设置为“无VPC”。如果您选择使用VPC,请在这里查阅Amazon文档:https://docs.aws.amazon.com/vpc/index.html#lang/en_us
- 在“环境变量”中,将以下内容设置为键值对:
- 区域-您的洞察区域(如欧盟、美国等)
- Token -之前配置的Token UUID
- 单击下一个按钮。
- 查看功能配置后,单击创建函数按钮。
- 您可以在下一个屏幕中测试功能配置。
- 单击关闭并保存保存功能配置。
一旦S3桶吸收了日志文件,Lambda函数就会触发。
示例代码
下面是一个工作代码示例:
1
当前AWS自动将根目录名设置为lambda函数名
2
├──certifi /
3.
│├──
4
│├──__init__ . py
5
│├──__main__.py
6
│├──cacert.pem
7
│├──core.py
8
│├──old_root.pem
9
│└──weak.pem
10
├──r7insight_lambdas3.py”
11
' '
12
13
注意:通过github下载的Zip文件将所有文件放在一个子目录下;因此,将下载的zip文件直接上传到AWS将不起作用。
在insight中配置数据
通过S3桶完成AWS Lambda的配置:
- 1 .登录insight tops。
- 选择数据收集页左边的菜单。
- 选择AWSλS3图标,从“系统数据”部分。
- 在“日志名称”字段中,输入您希望在日志搜索中看到的该数据的名称。
- 选择要将此日志添加到的现有日志集,或键入名称以创建新的日志集。
- 单击完成按钮。
一旦AWS S3桶开始接收日志文件数据,Lambda函数就会启动,您将看到log Search页面上反映的日志。日志以JSON的形式出现,大约需要30秒。
这个页面对你有帮助吗?