我有一個EC2實例(運行kafka),它需要通過公共IP訪問自己,但我不想打開整個世界的網絡ACL。如何使用公共IP爲自己的連接設置EC2?
基本原理是,當與kafka經紀人建立連接時,經紀人通告哪些kafka節點可用。由於kafka將在EC2內部和外部使用,唯一常見的選擇是經紀人公佈其公共IP。
我的設置:
- 一個實例,公網IP(不彈性IP)
- VPC的
- 安全組,允許從我的工作網絡 訪問卡夫卡端口
- 互聯網網關
- 允許通過網關進行外部訪問的路由
安全組是如下:
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。
如果我打開卡夫卡端口到整個世界:
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的入站流量(無關緊要)而不會打開太多?