如何限制仅单台Windows机器访问指定endpoint,拦截AWS其他机器POST请求
访问控制实现方案
待防护目标Endpoint:https://test.rev.com:443/press/api/v1/receiver
方案1:AWS WAF实现(推荐,适配绝大多数AWS部署场景)
- 第一步先获取特定Windows设备的固定公网出口IP:如果是AWS内的Windows EC2,直接取其绑定的弹性公网IP(EIP);如果是外部设备,确认其长期固定的公网出口地址。如果设备IP不固定,可改用客户端证书方案替代IP校验。
- 给Endpoint关联的CloudFront/ALB/API Gateway配置AWS WAF WebACL:
- 新建优先级最高的自定义规则,匹配条件设置为:请求方法为
POST、请求URI完全匹配/press/api/v1/receiver、源IP不属于指定Windows设备的公网IP - 规则动作设置为阻止(Block)
- 保持WebACL默认动作为允许,不影响该站点其他路径的正常业务请求
- 新建优先级最高的自定义规则,匹配条件设置为:请求方法为
- 如需额外强化拦截范围,可以把AWS官方公布的公网IP段加入规则的源IP拦截列表,确保AWS环境内其他设备的POST请求全部被拦截。
方案2:网络层+主机层规则实现(轻量场景,适合Endpoint直接部署在EC2上)
- 配置Endpoint所在EC2的安全组入站规则:仅放行指定Windows设备的公网IP访问443端口,其余IP的443入站请求默认拒绝。
- 由于安全组无法识别应用层的请求方法和路径,需要补充主机层规则:如果Endpoint部署在Linux主机上,配置iptables规则匹配POST请求和目标路径;如果部署在Windows主机上,配置高级防火墙规则,仅允许指定源IP的对应POST请求通过,其余全部拦截。
方案3:应用层内置拦截(无法调整云侧网络配置时使用)
- 在Endpoint的后端服务代码中添加校验逻辑:
- 所有发往
/press/api/v1/receiver的POST请求,优先校验请求真实源IP(注意要正确获取X-Forwarded-For头中的真实IP,避免伪造) - 仅源IP为指定Windows设备IP时放行请求,其余直接返回403状态码。
- 所有发往
生效验证
- 用授权的Windows设备向目标Endpoint发送POST请求,确认可以正常得到业务响应
- 用AWS环境内的其他任意设备发送POST请求到该Endpoint,确认返回403或连接超时,验证拦截规则生效。
内容的提问来源于stack exchange,提问作者klee
相关产品推荐
相关产品推荐

