AWS Beanstalk SSL 负载平衡环境

Posted

技术标签:

【中文标题】AWS Beanstalk SSL 负载平衡环境【英文标题】:AWS Beanstalk SSL Load balanced environment 【发布时间】:2015-08-02 00:44:35 【问题描述】:

我试图理解 aws 文档中的一条注释,以便为弹性 beanstalk 应用程序配置 HTTPS。

注释如下:

如果您在任何时候决定使用负载平衡的环境重新部署您的应用程序,您就有可能将端口 443 开放给来自 Internet 的所有传入流量。在这种情况下,请从 .ebextensions 目录中删除配置文件。然后使用 Elastic Beanstalk 管理控制台的配置页面的负载均衡器部分创建负载均衡环境并设置 SSL。

这里是原始文档页面的链接:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html#configuring-https-elb

你能帮我理解这个警告吗?

【问题讨论】:

【参考方案1】:

这个文档写得不好。

实际上有两种不同的可能性

负载平衡环境:所有流量首先通过负载平衡器,然后到实例。 非负载平衡环境:所有流量都直接通过您的实例。

如果所有流量都直接流向实例,您需要向所有人开放您的实例 HTTPS 端口 443

    Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: Ref : AWSEBSecurityGroup
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0

如果您不这样做,每个人都无法访问您的网站。

如果您的所有流量都通过负载均衡器,您可以将实例安全性更改为仅与其通信。它可以忽略互联网的其余部分。这更安全,因为您的负载均衡器是对所有人开放的。这很重要,因为想象一下 linux 中是否存在一个错误,让某人通过端口 443 通过做一些奇怪的事情来接管你的机器。负载均衡器首先看到它并对其进行标准化,以便您的实例更难受到攻击。

【讨论】:

感谢您的回答艾略特。我明白那个。但是,我不明白为什么您在重新部署负载平衡环境期间冒着打开端口 443 的风险。重新部署期间发生了什么? 我相信“使用负载均衡器重新部署”意味着您正在将配置从非负载均衡更改为平衡,在这种情况下,您需要更改实例配置以关闭 443 与外界。 如果是这种情况,那么我们将从非负载平衡(= 开放 443 端口)转到负载平衡(= 隐藏 443 端口)。那他们为什么会警告你你的 443 端口会暴露呢?

以上是关于AWS Beanstalk SSL 负载平衡环境的主要内容,如果未能解决你的问题,请参考以下文章

VPC 中的 AWS beanstalk EC2 实例且没有负载平衡

AWS Elastic Beanstalk 负载均衡器 SSL/HTTPS 不起作用

在 AWS Elastic Beanstalk 上安装通配符 SSL 证书

AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL

Spring Boot 和单实例 AWS Beanstalk SSL 设置错误

如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?