我目前有以下设置:
- 使用 Elastic Beanstalk 运行的 API(Node.JS),目前仅运行一个 EC2 实例
- 在单独的 EC2 实例上运行的 MongoDB 实例
目前,我有两个安全组,一个用于数据库,我们称之为SG数据库,以及由 Elastic Beanstalk 生成的另一个,名为awseb-e-wwbtetapaa-stack-AWSEBSecurityGroup-xx。
在SG数据库,我已将端口 27017 开放至 0.0.0.0/0。我正尝试关闭该端口,以便只有我的 Elastic Beanstalk 应用程序可以访问它。我尝试过打开 27017awseb-e-wwbtetapaa-stack-AWSEBSecurityGroup-xx,但是没有用,我仍然无法访问它。
为了测试目的,我尝试连接运行 API 的 EC2 实例,然后尝试打开数据库实例上的端口 22。我尝试打开awseb-e-wwbtetapaa-stack-AWSEBSecurityGroup-xx以及amazon-elb-sg. 两者都不起作用。
有人知道我该如何关闭 MongoDB 端口吗?目前将其开放至 0.0.0.0/0 是一个相当大的安全漏洞。
编辑
我搞清楚了发生的问题。显然,在指定 Elastic Beanstalk 应用程序的安全组时,您不能使用公共 IP。使用私有 IP 似乎工作得很好。所以现在我只需要找到一种方法来设置“静态”私有 IP 或类似的解决方案。
编辑2
似乎在 EC2 实例中使用公共 DNS 时会返回私有 IP。
答案1
我搞清楚了发生的问题。显然,在指定 Elastic Beanstalk 应用程序的安全组时,您不能使用公共 IP。使用私有 IP 似乎工作正常。似乎在 EC2 实例中使用公共 DNS 时会返回私有 IP。因此,我现在不是尝试连接到 Elastic IP,而是连接到公共 DNS,这样工作正常。