AWS EC2 实例定期删除安全组

Posted

技术标签:

【中文标题】AWS EC2 实例定期删除安全组【英文标题】:AWS EC2 instance periodically drops security group 【发布时间】:2021-03-28 18:56:12 【问题描述】:

我正在使用 EC2 和 Elastic Beanstalk 来部署 Spring Boot 应用程序。此部署连接到 RDS mysql 实例,并且分配的默认安全组允许通信。

我第三次发现安全组已从 EC2s 组列表中删除,导致 Spring Boot 降级,其中 Boot 卡在启动循环中(我不确定为什么将其关闭)

单独的 Boot/EBS 部署使用同一组进行 RDS 连接,并且从未遇到过这种情况。

有其他人经历过吗?日志只显示与 RDS 的连接超时。

【问题讨论】:

在实例部分的EB环境配置中实际选择了安全组吗? 我不确定是哪个视图。使用 Actions>Networking>Change Security Groups 重新添加该组后,该组将显示在安全组下的 EC2 实例视图中。在 EB 配置视图中,我没有看到安全组的选项。 【参考方案1】:

要解决此问题,您可以使用 AWS CloudTrail。使用 AWS CloudTrail,您可以跟踪从相关 AWS EC2 实例中分离安全组的人员。此类事件记录为 ModifyNetworkInterfaceAttribute,事件源为 ec2.amazonaws.com。

Here您可以找到 AWS CloudTrail 用户指南。

注意:通常,CloudTrail 会在 API 调用/事件发生后 15 分钟内交付事件。

【讨论】:

【参考方案2】:

我相信您的问题是您使用 EC2 控制台而不是使用 EB 环境的配置将安全组附加到实例。

转到 EB 控制台,选择您的环境,点击配置。

单击“实例”部分上的“编辑”,从该位置添加安全组。这样做将确保您的所有安全组都在 EB 创建实例时应用,例如在横向扩展时。

【讨论】:

果然,该组并没有出现在 EB 配置下,即使它应用于 EC2 实例并允许入站/出站流量。我能够通过重建重现失去的小组。这似乎与 UI 存在差距。 我不会认为这是 UI 中的空白。出于调试目的或出于某些其他原因,您可能希望将 SG 添加到一个实例而不影响同一 EB 环境中的其他实例。我不希望将 SG 添加到实例级别会影响我的 EB 配置。

以上是关于AWS EC2 实例定期删除安全组的主要内容,如果未能解决你的问题,请参考以下文章

AWS 清理安全组

适用于 RDS 的 AWS 安全组 - 出站规则

在 AWS EC2 中,没有入站规则的安全组是啥意思?

可以与 AWS 中的安全组关联的所有资源都有哪些?

如何使用 CloudFormation 将安全组添加到现有 EC2 实例

创建 AWS IAM 策略,将正在运行的实例限制为特定安全组