You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI配置EC2安全组,阻止指定IP的HTTP/HTTPS访问

AWS 实现允许所有IP访问、仅拦截指定恶意IP的方案

AWS安全组默认是白名单机制,目前已支持显式拒绝规则,再结合NACL的能力,你只需要拦截十几个恶意IP的场景可以用以下两种方案实现:

方案1:使用网络ACL(NACL)实现(运维成本最低)

NACL是子网级别的访问控制组件,支持显式拒绝规则,优先级数字越小规则优先级越高,操作步骤:

  • 给业务EC2所在子网关联自定义NACL(默认NACL默认允许所有流量,不建议直接修改)
  • 配置入站拒绝规则:优先级设置为10,源IP为要拦截的恶意IP(单个IP使用/32掩码),协议为TCP,端口范围443,动作设置为拒绝,十几个IP可以对应创建十几条规则,优先级依次设置为11、12...即可
  • 配置入站允许规则:优先级设置为100,源IP为0.0.0.0/0,协议TCP、端口443,动作设置为允许
  • 保持原有安全组的入站规则不变:保留原有的允许0.0.0.0/0访问443的规则即可

批量添加拦截IP的CLI命令示例:

aws ec2 create-network-acl-entry \
  --network-acl-id <你的NACL资源ID> \
  --ingress \
  --rule-number <对应规则优先级数字> \
  --protocol tcp \
  --port-range From=443,To=443 \
  --cidr-block <要拦截的恶意IP/32> \
  --rule-action deny

你可以把所有要拦截的IP写到脚本里循环执行上述命令即可。

方案2:仅用安全组实现(不需要修改子网配置)

2023年之后AWS安全组已支持显式拒绝规则,你可以直接通过安全组优先级规则实现需求:

  • 在你的业务EC2关联的安全组中,添加入站拒绝规则:优先级设置为1,源地址为要拦截的恶意IP(/32掩码),协议TCP、端口443,动作设置为拒绝,多个IP可以依次添加,优先级依次设置为2、3...即可
  • 再添加入站允许规则:优先级设置为100,源地址0.0.0.0/0,协议TCP、端口443,动作设置为允许

批量添加安全组拒绝规则的CLI命令示例:

aws ec2 create-security-group-rule \
  --group-id <你的安全组ID> \
  --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "IpRanges": [{"CidrIp": "<要拦截的恶意IP/32>", "Description": "恶意探测IP拦截"}]}]' \
  --ingress \
  --rule-action deny

如果后续要调整拦截IP列表,你也可以先把恶意IP放到AWS托管前缀列表中,直接修改前缀列表的IP条目即可,不需要频繁修改安全组规则。

内容的提问来源于stack exchange,提问作者Buzz Moschetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:57:03