AWS如何强制VPC使用interface/gateway endpoint 避免EC2走公网访问同区域服务
强制VPC内EC2走VPC端点访问同区域AWS服务的方案
完全可以实现强制配置,不需要依赖公网访问,分不同生效范围可选以下方案:
- 单VPC层级配置
- 网关端点(适配S3、DynamoDB两类服务):给对应子网的路由表添加指向网关端点的、同区域对应服务前缀列表的路由,路由优先级高于公网IGW路由,确保访问这两类服务的流量优先走端点。同时可以在子网NACL、EC2安全组中禁止出方向到这两类服务的公网IP段,彻底堵死公网访问路径。
- 接口端点(适配绝大多数其他AWS服务):创建对应服务的接口端点后,开启端点的私有DNS功能,此时同区域AWS服务的公网域名会自动解析到接口端点的私有IP,流量默认走内网。同样可以通过NACL、安全组限制到对应服务公网IP的出方向访问。
- 全账号层级配置
通过AWS Organizations的SCP(服务控制策略)配置全局规则,在访问AWS服务的权限中添加aws:SourceVpce条件校验,要求所有对应服务的访问请求必须来自指定的VPC端点,就算EC2实例有公网访问能力,未走端点的请求也会被IAM直接拒绝,实现全账号强制。
公网访问同区域AWS服务的审计检测方案
如果暂不做强制配置,可以通过以下方案定位走公网访问服务的EC2实例:
- 分析VPC流日志:开启VPC流日志后,筛选出方向流量中目的IP属于同区域AWS服务公网IP段的记录,对应源IP就是走公网访问的EC2实例。AWS服务公网IP段可以通过
aws ip-ranges get-ip-ranges命令获取,按需筛选对应区域和服务的前缀即可。 - 分析CloudTrail日志:所有AWS服务的API请求都会记录在CloudTrail中,筛选请求参数中
sourceVpce字段为空、且请求来源IP属于VPC内网段的记录,即可对应到未走VPC端点的实例。 - 配置AWS Config规则:自定义Config规则,检测VPC是否部署了必要的端点、子网路由表是否有指向端点的路由、EC2安全组是否开放了到服务公网IP的出方向权限,不合规资源自动触发告警。
- 开启GuardDuty检测:Amazon GuardDuty会自动识别VPC内EC2通过公网访问AWS服务的异常行为,直接生成告警通知。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

