Amazon web services 安全组链接EC2-负载均衡器-RDS
虽然安全组的设置非常简单,但在关注应用程序安全性和管理EC2实例、负载平衡器和RDS之间的连接时,我很难使用正确的模板 我担心的是,我知道某些应用程序不应该具有公共访问权限,只能由使用它们的应用程序访问,但不确定实现链接的最佳方法 负载平衡器是否应该是安全组配置的源,然后连接的EC2实例只引用负载平衡器设置?RDS应该链接到EC2安全组还是负载平衡器?任何关于我应该在设计和当前设置方面思考的指导都将非常有用 负载平衡器:Amazon web services 安全组链接EC2-负载均衡器-RDS,amazon-web-services,amazon-ec2,rds,aws-security-group,Amazon Web Services,Amazon Ec2,Rds,Aws Security Group,虽然安全组的设置非常简单,但在关注应用程序安全性和管理EC2实例、负载平衡器和RDS之间的连接时,我很难使用正确的模板 我担心的是,我知道某些应用程序不应该具有公共访问权限,只能由使用它们的应用程序访问,但不确定实现链接的最佳方法 负载平衡器是否应该是安全组配置的源,然后连接的EC2实例只引用负载平衡器设置?RDS应该链接到EC2安全组还是负载平衡器?任何关于我应该在设计和当前设置方面思考的指导都将非常有用 负载平衡器: Type | Protocol | Port Range | Source
Type | Protocol | Port Range | Source
HTTP | TCP | 80 | *Public*
SSH | TCP | 22 | *Private IP*
HTTPS | TCP | 443 | *Public*
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*
EC2实例:
Type | Protocol | Port Range | Source
HTTP | TCP | 80 | *Public*
SSH | TCP | 22 | *Private IP*
HTTPS | TCP | 443 | *Public*
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*
RDS:
Type | Protocol | Port Range | Source
HTTP | TCP | 80 | *Public*
SSH | TCP | 22 | *Private IP*
HTTPS | TCP | 443 | *Public*
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*
您可以从RDS安全组中删除SSH和All,因为它们永远不会被使用。 RDS sec组应指定需要连接的EC2 sec组。这意味着您还应该删除可公开访问的引用 ELB是否可以从互联网访问?如果是这样的话,您可以继续,但您应该从ELB中删除SSH规则,因为它永远不会被使用(您不能SSH到ELB,ELBs不平衡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)*
Type | Protocol | Port Range | Source
HTTP | TCP | 80 | *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*
最后,对于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*
HTTPS | TCP | 443 | *Load Balancer Security Group*
SSH | TCP | 22 | *Your office IP address (best practices)*
Type | Protocol | Port Range | Source
HTTP | TCP | 80 | *Load Balancer Security Group*
SSH | TCP | 22 | *Your office IP address (best practices)*
这太棒了。这正是我所寻求的帮助,我很欣赏其中的道理和细节。我已经从一个弹性Beanstalk实例启动了ELB和EC2,看起来它正在处理SSL部分,所以看起来删除HTTPS协议的修改后的EC2设置将是更安全的路由。