如何使用安全组拒绝来自AWS EC2实例的所有出站流量?

时间:2017-08-11 08:02:11

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

我正在尝试设置AWS安全组出口规则,该规则会阻止所有出站流量。众所周知,默认情况下,安全组允许所有出站流量。

我正在使用AWS CloudFormation,我们应该如何定义适当的安全出口规则?

3 个答案:

答案 0 :(得分:7)

安全组始终定义ALLOW流量。安全组有没有DENY概念

因此,如果您希望拒绝所有流量,只需要一个空的安全组

但请注意,安全组有状态。这意味着,如果入站安全组允许连接(例如,请求进入Web服务器),将自动允许响应退出服务器。因此,只有在入站和出站安全组都为空(取决于您的配置)时,它才会被真正阻止。

阻止服务器的其他选项是基于主机的防火墙规则(即操作系统中的配置)或使用在子网级别运行的网络访问控制列表(NACL)。 NACL具有DENY规则,可以阻止流入/流出子网(但不能阻止特定实例)。

<强>更新

事实证明,如果没有提供出口规则,则默认为&#34;全部允许&#34;规则适用于安全组。

因此,您需要提供不执行任何操作的规则,以便默认规则不适用。

例如:

if (keycode >= 48 && keycode <= 57) {
  if (this.value.length == 2 && reg.test(this.value)) this.value = this.value + ":"; //Add colon if string length > 2 and string is a number 
  if (this.value.length > 5) this.value = this.value.substr(0, this.value.length - 1); //Delete the last digit if string length > 5
}

答案 1 :(得分:4)

即使CloudFormation不允许空SecurityGroupEgressSecurityGroupIngress属性,您也可以通过允许所有出站流量仅限本地主机来欺骗它:

AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template
Resources:
  InstanceSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties: 
      GroupName: block-outbound
      GroupDescription: Allow http to client host
      SecurityGroupEgress:
        - IpProtocol: -1
          CidrIp: 127.0.0.1/32
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
      VpcId: !Ref myVPC

这将实现阻止所有出站流量的目标。

答案 2 :(得分:-1)

在您的CloudFormation脚本中,您可以在“SecurityGroupEgress”属性下包含自定义规则,如下所示。

"InstanceSecurityGroup" : {
   "Type" : "AWS::EC2::SecurityGroup",
   "Properties" : {
      "GroupDescription" : "Allow http to client host",
      "VpcId" : {"Ref" : "myVPC"},
      "SecurityGroupIngress" : [{
            "IpProtocol" : "tcp",
            "FromPort" : "80",
            "ToPort" : "80",
            "CidrIp" : "0.0.0.0/0"
         }],
      "SecurityGroupEgress" : [{
         "IpProtocol" : "tcp",
         "FromPort" : "80",
         "ToPort" : "80",
         "CidrIp" : "0.0.0.0/0"
      }]
   }
}

有关详细信息,请查看AWS UserGuide