我的ELB出现问题。 我们正在开发一些Web应用程序,我们需要关闭从Internet上对我们应用程序的公共访问。关于测试环境:
example.com->具有route53的应用程序负载平衡器->专用子网中的EC2。
在安全性测试组中,我为80和443打开了0.0.0.0/0(端口无关紧要)。我的应用程序响应正常,一切正常。
但是我不需要0.0.0.0/0,所以我将其更改为我的办公室IP。 我的应用程序停止运行,因为在负载均衡器的安全组中不允许来自两个可用区域中的负载均衡器的IP。这很奇怪..该IP不是静态的,我无法保证此IP在5分钟内不会更改。那么,我们拥有什么,我ALB不允许他通过IP访问他的流量吗?
答案 0 :(得分:0)
如果您不希望您的应用程序对公共Internet开放,则可以set up a VPN in your VPC或使用SSH port forwarding来访问专用子网中的应用程序。链接的文章只是示例-有很多方法可以执行-但两者都是常见的方法。如果您选择这些选项之一,则您的ALB不必位于公共子网中。由于您的应用程序不需要公开访问,因此它也可以位于专用子网中。
这些是为您提供的最安全,最可靠的选项。或者,如果您可以确定ISP分配的IP地址范围,则可以在ALB安全组中打开更广泛的网络,但仍然不允许完整的Internet。例如。如果您的ISP总是分配kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: hello-allow-from-foo
spec:
policyTypes:
- Ingress
podSelector:
matchLabels:
app: hello
ingress:
- from:
- podSelector:
matchLabels:
app: foo
范围内的地址,则可以添加一条规则来允许1.2.3.0-254
。当然,使用分配了这些地址之一的ISP的其他任何人也都可以访问您的应用程序。另外,您可以开发一个脚本,以使用新的动态地址不断更新ALB安全组。
答案 1 :(得分:0)
EC2实例不必与负载均衡器位于同一安全组中。负载平衡器应位于允许来自Internet(或您的办公室IP)的端口80/443的安全组中。 EC2实例应位于安全组中,该安全组允许来自负载平衡器的安全组的流量。
答案 2 :(得分:-1)
嗯,原因是带有IPs ELB的NAT IP无法访问ALB。将IP ELB和NAT网关添加到安全组。固定。感谢您的帮助