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

如何查找近2周无端口22/3389连接的正在运行的AWS实例

高效筛选符合条件AWS实例的解决方案

以下三个方案可根据你的使用场景选择,都可以省去手动匹配网卡和实例的步骤:

  • 方案1:AWS Config + Lambda 自动化定期排查(适合长期监控场景)
    开启AWS Config后配置自定义规则,关联Lambda函数实现自动扫描:

    1. Lambda先调用describe-instancesAPI过滤所有运行状态的EC2实例,采集绑定的弹性网卡ID列表
    2. 调用CloudWatch Logs Insights查询VPC Flow Logs日志组,统计过去14天内目标端口的连接命中情况
    3. 自动标记无连接记录的实例,结果可直接在AWS Config控制台导出,还可配置SNS告警推送
      附通用CloudWatch Logs Insights查询模板:
    fields @timestamp, interfaceId, dstPort, srcAddr
    | filter @timestamp >= now() - 14d
    | filter dstPort in (22, 3389)
    | filter interfaceId in (<Lambda动态传入的当前运行实例网卡ID列表>)
    | stats count() as connect_cnt by interfaceId
    
  • 方案2:优化Athena查询逻辑一步出结果(适合已有Athena查询Flow Logs的场景)
    无需先单独查询网卡再手动排除,直接通过关联查询得到结果:

    1. 可以通过Athena的AWS数据源对接AWS Config配置表,直接获取实时运行的EC2实例与网卡的映射关系,也可以手动上传当前运行实例的网卡映射CSV到S3建临时表
    2. 编写左连接查询语句,将VPC Flow Logs表和实例映射表关联,过滤出无匹配连接记录的实例ID,单次查询1-2分钟即可出结果,完全省去手动匹配的工作量。
  • 方案3:轻量CLI脚本排查(适合单次临时排查、实例规模较小的场景)
    无需额外开启服务,直接通过AWS CLI组合命令实现:

    1. 执行aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*].[InstanceId,NetworkInterfaces[*].NetworkInterfaceId]" --output text导出所有运行实例和对应网卡列表
    2. 写简单的循环逻辑调用cloudwatch filter-log-events查询每个网卡过去14天的22/3389端口连接记录,无记录的实例直接输出,100台以内的实例规模5分钟内可以跑完。

注意:所有方案均依赖VPC Flow Logs已开启且存储周期≥14天,仅采集允许流量的Flow Logs也可支持本次查询,不影响结果准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:27:00