【发布时间】:2015-07-10 21:16:12
【问题描述】:
我有一个 EC2 实例(运行 kafka)需要通过公共 IP 访问自己,但我不想向全世界开放网络 ACL。
基本原理是,当与 kafka 代理建立连接时,代理会通告哪些 kafka 节点可用。由于 kafka 将在 EC2 内部和外部使用,因此唯一常见的选项是让代理公布其公共 IP。
我的设置:
- 一个实例,具有公共 IP(不是弹性 IP)
- vpc
- 一个安全组,允许从我的工作网络访问 kafka 端口
- 互联网网关
- 允许通过网关进行外部访问的路由
安全组如下:
Custom TCP Rule, proto=TCP, port=9092, src=<my office network>
Custom TCP Rule, prtot=TCP, port=2181, src=<my office network>
简而言之,如果我使用 localhost,实例内部一切正常。 如果我使用公共 IP,则在实例之外一切正常。
我现在想要的是在具有公共 IP 的实例内部使用 kafka。
如果我向全世界开放 kafka 端口:
Custom TCP Rule, proto=TCP, port=9092, src=0.0.0.0/0
Custom TCP Rule, prtot=TCP, port=2181, src=0.0.0.0/0
它按预期工作,但感觉不安全。
如何设置网络 ACL 以接受来自我的本地实例/子网/vpv(不管哪个)的入站流量而不打开太多?
【问题讨论】:
标签: amazon-ec2 amazon-vpc apache-kafka