Amazon AWS ELB在其后面的服务器上没有公共地址

时间:2016-07-27 16:29:03

标签: amazon-web-services amazon-ec2 amazon-elb

我目前在AWS上的ELB后面有3台服务器。

这些EC2实例中的每一个都位于3个独立的可用区域中。

我使用ELB

  • SSL终止

  • 分发负载

我已经配置了一个VPN来访问用于SSH访问的EC2实例,但是当我从EC2容器中删除公共地址时,我无法让ELB工作......

我认为我可以允许它们仅允许来自ELB sec组的端口80(ELB上终止的443)上的流量,这意味着我不需要Ext IP,因为ELB直接连接到它们?

我假设我还需要为他们设置NAT以便能够从外部访问?

ELB不在子网内吗?

尝试所有变化后,他们需要公共IP,但只限制访问权限?

非常感谢提前!

2 个答案:

答案 0 :(得分:3)

假设您的ELB应该可公开访问,您需要设置以下内容:

  1. 将您的ELB放入公共子网。
  2. 为ELB分配一个或多个安全组,允许来自0.0.0.0/0的端口443上的传入访问和端口80上的传出访问。
  3. 通常使用Auto Scaling组创建您的EC2实例,但这不是必需的。
  4. 将您的EC2实例放入私有子网。
  5. 为您的EC2实例提供公共IP地址。
  6. 为您的EC2实例分配一个或多个安全组,允许ELB安全组在端口80上进行传入访问。
  7. 如果您的EC2实例需要传出互联网访问权限:

    1. 在公有子网中设置NAT(实例或网关)
    2. 更新私有子网的VPC路由表,以通过NAT转发0.0.0.0/0流量。
    3. 更新您的EC2实例的安全组,以允许所需端口上的传出连接。
    4. 允许传入SSH连接到您的EC2实例:

      1. 设置您的VPN或堡垒EC2实例。
      2. 更新您的EC2实例的安全组以允许端口22上的传入连接。
      3. 在所有情况下,尽可能限制安全组:

        1. 仅允许您知道所需的端口和
        2. 尽可能使用/32 CIDR,然后/24,然后/16,然后/8。最后,如果您确实需要全局访问,则只允许0.0.0.0/0

答案 1 :(得分:0)

我担心这会暴露给公众并且可以被DDoS利用。我不得不使用API​​网关,然后使用HAProxy信任VPC,更多细节在这里。 http://knowmg.blogspot.com/2017/11/why-do-i-need-haproxy-in-aws-stack.html