amazon-web-services - 为什么我的安全组规则在从私有子网调用到公共子网时不起作用?
问题描述
我在 SG1 的私有子网中有一台服务器,我想调用 SG2 的公共子网中的负载均衡器。
我在 SG1 上设置了出站规则,允许流量到 SG2。
但是,当我添加一条规则以允许来自允许 SG1 入站的 SG2 的入站流量时,请求超时。如果我向 SG2 添加开放规则,请求工作!我也尝试过使用私有 IP 地址范围,但这不起作用。
如何向负载均衡器添加正确的规则,以便允许来自 SG1 的流量,并且不公开安全组以公开开放?
解决方案
我怀疑问题是由于您连接到面向 Internet 的负载均衡器这一事实引起的。
通过 DNS 名称引用负载均衡器。此名称解析为公共 IP 地址,因为负载均衡器可通过 Internet 访问。
当私有子网中的实例访问负载均衡器时,它实际上是将 ELB DNS 名称解析为公共 IP 地址,因此请求实际上是离开 VPC,然后返回。这意味着“来自”IP 地址来自私有实例的公共IP 地址,而不是其私有 IP 地址。安全组只需要私有实例的私有IP 地址,因此它无法识别传入流量。
如果负载均衡器仅以这种方式使用,则应将其创建为内部负载均衡器,而不是公开的。还可以创建两个负载均衡器(一个面向 Internet,一个仅用于内部)。
推荐阅读
- ios - 检测 MapView 完成更改区域
- dart - built_value 可以像这样反序列化泛型吗?
- c# - LINQ 中的 First() 是否会导致急切或延迟加载?
- soap - 第二次调用后 SOAP 服务异常
- docker - docker 无法在谷歌云平台上启动容器
- c# - VS 设计时数据上下文(示例数据)包含异常
- node.js - 我不断收到以下错误消息 -TypeError:Todo.createDocument 不是函数
- angular - Angular Electron 应用的单例 redux 商店
- python - Scrapy splash - 循环将所有值仅保存到一项
- c# - 如何在代码隐藏中将 StreamSource 分配给 BitmapImage?