检查 IPv4 和 IPv6 安全组入口规则中的单主机网络条目 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

检查 IPv4 和 IPv6 安全组入口规则中的单主机网络条目

由 SaiJeevan Devireddy (AWS)、Ganesh Kumar (AWS) 和 John Reynolds (AWS) 创作

环境:生产

技术:联网;安全性、标识性、合规性

AWS 服务:亚马逊 SNS;AWS; CloudFormation亚马逊;AWS Lambda CloudWatch;亚马逊 VPC

总结

此模式提供了一种安全控制,当 Amazon Web Services(AWS) 资源不符合您的规格时,它会通知您。它提供 AWS Lambda 函数,以用于在 Internet 协议版本 4 (IPv4) 和 IPv6 安全组源地址地址字段中查找单主机网络条目。Lambda 函数是在亚马逊 CloudWatch 事件检测到亚马逊弹性计算云 (Amazon EC AuthorizeSecurityGroupIngress2) API 调用时启动的。Lambda 函数中的自定义逻辑评估安全组入口规则的 CIDR 块子网掩码。如果确定子网掩码不是 /32 (IPv4) 或 /128 (IPv6),则 Lambda 函数使用 Amazon Simple Notification Service (Amazon SNS) 发送违规通知。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account

  • 您希望接收违规通知的电子邮件地址

限制

  • 此安全监控解决方案是区域性的,必须部署在要监控的每个 Amazon Web Services Region 中。

架构

目标技术堆栈

  • Lambda 函数

  • SNS 主题

  • 亚马逊 EventBridge 规则

目标架构

自动化和扩展

工具

Amazon Web Services

  • AWS CloudFormation 是一项通过使用基础设施即代码来帮助您建模和设置 AWS 资源的服务。

  • Amazon EventBridge 提供来自您自己的应用程序、软件即服务 (SaaS) 应用程序和 AWS 服务的实时数据流,并将这些数据路由到 Lambda 函数等目标。

  • AWS Lambda  支持无需预置或管理服务器即可运行代码。

  • Amazon Simple Storage Service (Amazon S3) 是一项高度可扩展的对象存储服务,可用于各种存储解决方案,包括网站、移动应用程序、备份和数据湖。

  • Amazon SNS 可协调和管理发布者和客户端之间消息的传送或发送,包括 Web 服务器和电子邮件地址。订阅用户接收所有发布至他们所订阅主题的消息,并且一个主题的所有订阅用户收到的消息都相同。

代码

随附代码包括:

  • 包含 Lambda 安全控制代码的.zip 文件 (index.py)

  • 用于部署 Lambda 代码的 CloudFormation 模板(security-control.yml文件)

操作说明

任务描述所需技能

为 Lambda 代码创建 S3 存储桶

Amazon S3 控制台上,创建一个 S3 存储桶,其具有一个不包含前导斜杠的唯一名称。S3 存储桶名称是全局唯一的,并且命名空间由所有 Amazon Web Services account 共享。您的 S3 存储桶必须位于要部署安全组入口检查的 Amazon Web Services Region。

云架构师

将 Lambda 代码上传至 S3 存储桶。

附件部分中提供的 Lambda 代码(security-control-lambda.zip 文件)上传到您在上一步中创建的 S3 存储桶。

云架构师
任务描述所需技能

更改 Python 版本。

下载 “附件” 部分中提供的 CloudFormation 模板 (security-control.yml)。打开文件并修改 Python 版本以反映 Lambda 支持的最新版本(当前为 Python 3.9)。

例如,您可以在代码中搜索 python ,并将 Runtime的值从更改 python3.6python3.9

有关支持 Python 运行时版本的最新信息,请参阅 AWS Lambda 文档

云架构师

部署 AWS CloudFormation 模板。

在 AWS CloudFormation 控制台上,在与 S3 存储桶相同的 AWS 区域中,部署 CloudFormation 模板 (security-control.yml)。

云架构师

指定 S3 存储桶名称。

对于 S3 存储桶参数,请指定您在第一个操作说明中创建的 S3 存储桶的名称。

云架构师

为 Lambda 文件指定 Amazon S3 密钥名称。

对于 S3 密钥参数,请指定 S3 存储桶中 Lambda 代码 .zip 文件的 Amazon S3 位置。请勿包含前导斜杠 (例如,您可以输入 lambda.zipcontrols/lambda.zip)。

云架构师

提供通知电子邮件地址。

通知电子邮件参数,提供您想要接收违规通知的电子邮件地址。 

云架构师

定义日志记录级别。

Lambda 日志级别参数,定义您的 Lambda 函数的日志级别。选择以下任一值:

  • 信息,用于获取有关应用程序进度的详细信息消息。

  • 错误,用于获取有关仍允许应用程序继续运行的错误事件的信息。

  • 警告,用于获取有关潜在有害情况的信息。

云架构师
任务描述所需技能

确认订阅。

成功部署 CloudFormation 模板后,将创建一个新的 SNS 主题,并将订阅消息发送到您提供的电子邮件地址。您必须确认此电子邮件订阅才能接收违规通知。

云架构师

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip