基于源IP的AWS安全组规则

AWS security group rules based on origin IP

我有以下场景。我有一个 EKS 集群 A,其工作节点位于私有子网中,可以通过 NAT 网关访问互联网(弹性 IP,比如 x.x.x.x/32)。另一个AWS账户中还有一个类似的EKS集群B。当用户访问集群 A 中的负载均衡器 URL https://sample.site.clusterA.com 时,它需要重定向到集群 B 上托管的登录页面 (OIDC)。

我的需求是限制集群 B 中工作节点的安全组仅当来自集群 A 的 NAT 网关弹性 IP 的 originated/redirected 时才接受入站 HTTPS 请求。由于 https://sample.site.clusterA.com正在重定向到登录页面,现在请求似乎来自用户 IP 而不是集群 A 的弹性 IP。

我想阻止用户直接点击登录 url 而不是从集群弹性 IP 重定向的任何请求。是否可以将安全组规则限制为仅允许基于原始 IP 而不是用户 IP?

您将无法使用 AWS 安全组,因为登录重定向是从浏览器而不是集群本身完成的。 AWS 安全组仅适用于传输层,因为您只能阻止 IP 范围、传输协议和端口。

如果您的集群 A 正在代理到登录页面的连接,那么您就可以将 NAT 网关 IP 地址列入白名单。

集群确实要求浏览器从 siteA 重定向到 siteB,您也许可以根据 cookie 进行验证。

发生重定向时,header 会向客户端返回状态(通常为 301、302 或 307)以及重定向到的位置。

因此客户端执行重定向,第一个集群只是指示它去哪里。

安全组只能控制来自访问它的来源的主机 ingress/egress,在本例中是客户端。

如果您想应用更全面的规则,您可以将 WAF 附加到 ALB,但需要能够定义要阻止的行为。