亚马逊:S3via Lambda

AWS Lambda允许您独立于服务器运行代码和运行应用程序。当连接到AWS S3时,来自S3存储桶的事件可以触发Lambda函数。

您可以将AWS S3存储桶连接到InsightOps,以便跟踪来自AWS Lambda的事件和功能。

要连接它们,您必须:

您还可以使用工作代码示例.

在你开始之前

确保您使用的是Python的Certifi。您可以在此处阅读有关certifi的更多信息:https://github.com/certifi/python-certifihttps://certifi.io/en/latest/.

用例

您可以在几种不同的情况下利用AWS Lambda的InsightOps:

  • 转发AWS ELB和CloudFront日志。
  • 转发OpenDNS日志
  • 转发CloudTrail日志(如果您已经配置了CloudTrail S3集成)

获取日志Token

下载包后,必须至少获得一个日志令牌。基于令牌的输入是单个TCP连接,其中每个日志行包含唯一标识目标日志的令牌。

要获取日志令牌,请执行以下操作:

  1. 登录您的InsightOps帐户。
  2. 按照下面的说明获取日志令牌:TCP日志令牌.

或者,您可以使用现有的令牌来聚合日志。

将脚本部署到AWS Lambda

现在,您必须在AWS Lambda中创建一个函数,该函数将调用脚本来运行并触发AWS S3跟踪的事件。

您必须完成以下操作:

配置功能

按照下面的说明在AWS Lambda中创建一个新函数:https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html

配置新功能。

  1. 登录到AWS控制台。
  2. 从“服务”下拉菜单中选择兰姆达从“计算”部分。
  3. 从左侧导航菜单中,选择功能然后单击橙色创建新函数右边的按钮。
  4. 在“蓝图”部分,搜索并选择s3获取对象python蓝图
  1. 单击下一个按钮
  2. 在“触发器”部分,搜索并选择S3作为触发器。
  1. 在“Bucket”中,选择存储要使用的日志数据的S3 Bucket。
  2. 对于“事件类型”,选择事件类型对象创建(全部)。
  1. 检查启用触发器复选框。
  2. 单击下一个按钮

上传功能代码

  1. 你的函数名称。
  2. 可选地提供描述。
  3. 从“运行时”下拉列表中将python运行时版本设置为python 3.6。
  4. 在您的资产上,创建一个.ZIP文件,其中包含r7insight_lambdas3.py和文件夹认证您可以在此处下载:https://github.com/rapid7/r7insight_lambdaS3
    • 确保文件和证书文件夹位于ZIP归档文件的根目录中
  5. 在“代码输入类型”下,单击上传ZIP文件单选按钮。
  6. 选择在前面步骤中创建的存档zip文件。
  7. 在“处理程序”字段中,将处理程序名称设置为r7insight_lambdas3.lambda_handler.
  1. 在“角色”字段中,分配或创建一个允许的新角色getobject在您选择的S3桶上。在AWS Lambda中创建角色会自动授予所需的权限。
  2. 在“Memory”下,将内存限制设置为足够高的值,以便于日志解析和发送。
  3. 在“Timeout”下,将Timeout设置为足够高的值,以便于日志解析和发送。
  4. 将VPC值保留为“无VPC”。如果您选择使用VPC,请参阅以下亚马逊文档:https://docs.aws.amazon.com/vpc/index.html#lang/en_us
  5. 在“环境变量”中,将以下内容设置为键值对:
    • 区域-您的洞察区域(如欧盟、美国等)
    • Token -之前配置的Token UUID
  1. 单击下一个按钮
  2. 查看功能配置后,单击创建函数按钮
  3. 您可以在下一个屏幕中测试功能配置。
  4. 单击关闭并保存保存功能配置。

一旦S3桶吸收了日志文件,Lambda函数就会触发。

示例代码

下面是一个工作代码示例:

         
1.
(根)-当前AWS自动将根目录名设置为lambda函数名
2.
├── 认证/
3.
│├──
4.
│ ├── __初始值
5.
│ ├── __主管道
6.
│ ├── 卡塞特·佩姆
7.
│├──core.py
8.
│ ├── 老根
9
│└──weak.pem
10
├── r7insight_lambdas3.py`
11
``
12
13
注意:通过github下载的Zip文件将所有文件放在一个子目录下;因此,将下载的zip直接上传到AWS将不起作用。

在insight中配置数据

通过S3桶完成AWS Lambda的配置:

  1. 1 .登录insight tops。
  2. 选择数据收集左边菜单上的第页。
  3. 选择AWS Lambda S3“系统数据”部分的图标。
  4. 在“日志名称”字段中,输入您希望在日志搜索中看到的该数据的名称。
  5. 选择要将此日志添加到的现有日志集,或键入名称以创建新的日志集。
  6. 单击完成按钮

一旦AWS S3桶开始接收日志文件数据,Lambda函数就会启动,您将看到log Search页面上反映的日志。日志以JSON的形式出现,大约需要30秒。