将 EC2 安全组限制为 Elastic Beanstalk 实例

Posted

技术标签:

【中文标题】将 EC2 安全组限制为 Elastic Beanstalk 实例【英文标题】:Restrict EC2 security group to Elastic Beanstalk instances 【发布时间】:2016-12-17 13:14:38 【问题描述】:

我的 MongoDB 部署在一个 EC2 实例中,运行良好且稳定。我将(希望)很快使用 Docker 启动我的 Elastic Beanstalk 负载平衡 Web 应用程序。但是,我觉得我的数据库对 dockerize 或 beastalk-ize 过于敏感,所以我想将它保存在一个普通的 EC2 实例中。

我的问题与安全组有关。如何创建仅接受来自 Elastic Beanstalk 的 MongoDB 流量(端口 27017)的安全组?由于 EC2 实例会被任意创建和销毁,也许我可以得到其中最不常见的子网?

【问题讨论】:

【参考方案1】:

当您创建 Elastic Beanstalk 应用程序时,您将选择一个安全组来分配给它的 EC2 实例。

对于您的 MongoDB 安全组,为 EB EC2 的安全组允许端口 27017 上的流量。如果这样做,那么只有使用该安全组的 EC2 实例才能访问 MongoDB 实例。

请注意,从 EB 应用的 EC2 实例访问 MongoDB 实例时,请确保使用 MongoDB 实例的私有 IP 地址,而不是公共 IP 地址。如果您使用公共 IP 地址,则 AWS 不会将连接识别为源自 EB 安全组,并将拒绝该连接。

【讨论】:

以上是关于将 EC2 安全组限制为 Elastic Beanstalk 实例的主要内容,如果未能解决你的问题,请参考以下文章

Aws Elastic Load Balancing 安全组不允许入站调用

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

如何在 CloudFormation 模板中为 Elastic Beanstalk 启动配置指定安全组?

限制对 Elastic Beanstalk 的 HTTP 访问

将不同的安全组附加到不同的 EC2

如果我们使用默认 VPC 和安全组将公开访问设置为“否”,为啥 EC2 实例无法访问 RDS 实例?