自引用aws安全组

use*_*200 8 amazon-web-services aws-security-group

我的应用程序在Web组件层中有ELB,NGNIX和ECS,我将所有这些组合在一个安全组中,并且ELB,NGNIX和ECS之间存在内部通信.我想为这三者之间的通信创建自我引用端口,我是否必须编写自我入侵规则或自我超越规则,这种通信是这三种入站还是出站之间的内部通信?

Joh*_*ein 9

默认的出站安全组允许所有流量,因此,除非您有特定的网络要求(例如,执行其他限制以满足合规性),否则请不要更改它们。

您可以配置安全组以允许来自其自身的入站连接(即,该安全组具有其自己的ID作为入站连接的源)。这将使与该安全组关联的任何Amazon EC2实例能够与(在给定端口上)与同一安全组关联的任何其他Amazon EC2实例进行通信。

需要注意的重要一点是,安全组是在实例级别实施的,而不是在网络级别运行的传统防火墙。因此,不存在多个实例位于“安全组内部”的概念。而是将安全组应用于进入每个实例的流量。因此,需要允许来自“自身”的传入连接。


小智 6

可以使安全组允许来自其自身的流量,但是需要将 SecurityGroup 资源及其入口规则分开以避免循环依赖。例如;

ConsumerSG:
  Type: 'AWS::EC2::SecurityGroup'
  Properties:
    VpcId: !ImportValue EnvVpc
    GroupDescription: !Sub 'Security group which grants access to consuming apps'


ConsumerSGIngress:
  Type: 'AWS::EC2::SecurityGroupIngress'
  DependsOn: ConsumerSG
  Properties:
    GroupId: !Ref ConsumerSG
    IpProtocol: tcp
    FromPort: '5000'
    ToPort: '5000'
    SourceSecurityGroupId: !Ref ConsumerSG
Run Code Online (Sandbox Code Playgroud)

这将创建一个安全组,允许在端口 5000 上从自身访问


小智 0

当然,您需要一个带有应用程序正在侦听的端口的入口规则。

默认情况下,安全组的出口是允许所有的,并且 sg 是有状态的,因此您不需要入口规则来返回传出流量