代码之家  ›  专栏  ›  技术社区  ›  cphill

安全组链接EC2-负载均衡器-RDS

  •  1
  • cphill  · 技术社区  · 6 年前

    虽然安全组的设置是一个非常简单的实践,但在关注应用程序安全性和管理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*
    

    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*
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   ekeyser    6 年前

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

    ELB是否可以从Internet访问?如果是这样的话,您就可以开始了,除非您应该从ELB中删除SSH规则,因为它永远不会被使用(您不能SSH到ELB,ELBs不能负载平衡SSH连接)。

    埃尔布

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

    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)*
    

    无线电数据系统

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

    最后,对于ELBs,您可以在ELB处终止SSL连接,然后通过端口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)*