安全组始终定义 ALLOW 流量。对于安全组,没有 DENY 的概念。
因此,如果您希望拒绝所有流量,只需设置一个空的安全组。
但是,请注意安全组是有状态的。这意味着,如果入站安全组允许连接(例如,请求进入 Web 服务器),响应将被自动允许退出服务器。因此,只有当入站和出站安全组都为空(取决于您的配置)时才会真正阻止它。
阻止服务器的其他选项是基于主机的防火墙规则(即操作系统内的配置)或使用在子网级别运行的网络访问控制列表 (NACL)。 NACL 具有 DENY 规则,可以阻止流量进出子网(但不能阻止特定实例)。
更新
事实证明,如果没有提供 Egress 规则,则默认的“Allow All”规则将应用于安全组。
因此,您需要提供一个不执行任何操作的规则,以使默认规则不适用。
例如:
"InstanceSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"VpcId": {
"Ref": "VPC"
},
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": "80",
"ToPort": "80",
"CidrIp": "0.0.0.0/0"
}
],
"SecurityGroupEgress": [
{
"IpProtocol": "tcp",
"FromPort": "1",
"ToPort": "1",
"CidrIp": "0.0.0.0/32"
}
]
}