![如何限制从外部访问 EC2 但允许从 Elastic Beanstalk 实例访问?](https://linux22.com/image/684646/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E4%BB%8E%E5%A4%96%E9%83%A8%E8%AE%BF%E9%97%AE%20EC2%20%E4%BD%86%E5%85%81%E8%AE%B8%E4%BB%8E%20Elastic%20Beanstalk%20%E5%AE%9E%E4%BE%8B%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
情况如下:
我们有一台运行 Elasticsearch 和 Elastic Beanstalk (EB) 环境的 EC2 服务器。它们都位于同一个 VPC 中。
这是我的目标:
允许访问 EC2(9200 端口)仅有的来自 EB 生成的实例。
我做了什么以及发生了什么:
在 EC2 安全组内,我添加了一条规则,允许从 Elastic Load Balancer 的安全组访问端口 9200。没有用 - 超时。当尝试指定 EB 实例 IP 地址时 - 有效。
之后,我尝试了一个更精简的版本,只是为了看看问题出在哪里。创建一个空的安全组“elasticsearch-client”。然后创建一个安全组“elasticsearch-server”,并设置以下规则
Custom TCP Rule | TCP | 9200 | sg-xxxxxxxx (elasticsearch-client)
将服务器组附加到 Elasticsearch EC2 实例,将客户端组附加到我想从中进行搜索的新 EC2 实例。我尝试从客户端连接到服务器,但连接超时。如果我允许从任何地方进行连接,我可以连接到服务器,因此我知道 Elasticsearch 服务器至少可以正常工作。如果我在安全组中指定新的 EC2 实例的 IP,也可以从该实例进行连接。
我使用安全组的方式是否错误?还有其他方法可以解决这个问题吗?
任何帮助深表感谢。