【问题标题】:Security Group Linking EC2 - Load Balancer - RDS安全组链接 EC2 - 负载均衡器 - RDS
【发布时间】:2018-09-01 00:22:57
【问题描述】:

虽然安全组的设置是一种非常简单的做法,但在关注应用程序安全和管理我的 EC2 实例、负载均衡器和 RDS 之间的连接时,我很难使用正确的模板。

我担心的是,我知道某些应用程序不应具有公共访问权限,并且只能由使用它们的应用程序访问,但不确定实现该链接的最佳方法。

负载均衡器是否应该是安全组配置的来源,然后附加的 EC2 实例仅引用负载均衡器设置? RDS 应该链接到 EC2 安全组还是负载均衡器?任何关于我在设计和当前设置方面应该考虑什么的指导都将非常有帮助!

负载均衡器:

Type | Protocol | Port Range | Source

HTTP | TCP | 80 | *Public*
SSH | TCP | 22 | *Private IP*
HTTPS | TCP | 443 | *Public*

EC2 实例:

Type | Protocol | Port Range | Source

HTTP | TCP | 80 | *Load Balancer Security Group*
SSH | TCP | 22 | *Load Balancer Security Group*
HTTPS | TCP | 443 | *Load Balancer Security Group*

RDS:

Type | Protocol | Port Range | Source

All TCP | TCP | 0 - 65535 | *EC2 Instance Security Group*
PostgreSQL | TCP | 5432 | *Public*
PostgreSQL | TCP | 5432 | *Public (IPv6)*
SSH | TCP | 22 | *Private IP*

【问题讨论】:

    标签: amazon-web-services amazon-ec2 rds aws-security-group


    【解决方案1】:

    您可以从您的 RDS 安全组中删除 SSH 和 All,因为它们永远不会被使用。 RDS sec 组应指定需要连接的 EC2 sec 组。这意味着您还应该删除可公开访问的引用。

    应该可以从 Internet 访问 ELB 吗?如果是这样,你可以继续,除非你应该从 ELB 中删除 SSH 规则,因为它永远不会被使用(你不能 ssh 到 ELB 并且 ELB 不会对 ssh 连接进行负载平衡)。

    EC2 sec 组应具有允许 ELB 访问的规则。换句话说,应该为端口 80 和 443 添加定义 ELB sec 组 ID 的规则,这基本上就是你所拥有的。

    删除(或更改)允许从 ELB 进行 SSH 访问的 EC2 sec 组规则,因为 ELB 不支持负载平衡 ssh 连接。理想情况下,它应该锁定在您的管理位置(您的办公室)。

    所以基本上是这样的:

    ELB

    Type | Protocol | Port Range | Source
    
    HTTP | TCP | 80 | *Public*
    HTTPS | TCP | 443 | *Public*
    

    EC2

    Type | Protocol | Port Range | Source
    
    HTTP | TCP | 80 | *Load Balancer Security Group*
    HTTPS | TCP | 443 | *Load Balancer Security Group*
    SSH | TCP | 22 | *Your office IP address (best practices)*
    

    RDS

    Type | Protocol | Port Range | Source
    
    PostgreSQL | TCP | 5432 | *EC2 Instance Security Group*
    

    最后,对于 ELB,您可以终止 ELB 上的 SSL 连接,然后 ELB 将通过端口 80 将连接转发到您的 EC2 后端实例。这使您可以在一个地方 (ELB) 管理您的 SSL 证书。在需要极其严格的合规性的情况下,您不应该这样做,因为它会在 ELB -> EC2 之间的加密中留下空隙。但除非您处理 PCI 或 HIPAA 合规性问题,否则您真的不必担心这一点。

    那么您的 EC2 sec 组将如下所示:

    EC2

    Type | Protocol | Port Range | Source
    
    HTTP | TCP | 80 | *Load Balancer Security Group*
    SSH | TCP | 22 | *Your office IP address (best practices)*
    

    【讨论】:

    • 这太棒了。正是我正在寻找的帮助,并欣赏其中的推理和细节。我从 Elastic Beanstalk 实例启动了 ELB 和 EC2,它看起来正在处理 SSL 部分,因此看起来您修改后的 EC2 设置并删除了 HTTPS 协议将是更安全的路由。
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2015-01-21
    • 2014-03-09
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多