【问题标题】:How to restrict access to ALB so that it reads traffic only from a Ec2 machine in AWS?如何限制对 ALB 的访问,使其仅从 AWS 中的 Ec2 机器读取流量?
【发布时间】:2021-03-26 05:41:07
【问题描述】:

我在非默认 VPC 中有以下架构。

Route53 -> ALB(web server) - > Ec2 (web servers) - > ALB(application server) - > Ec2 (application server) - > RDS.

我希望我的 ALB for App 服务器仅读取来自 Ec2 Web 服务器的流量。 我尝试在 ALB 的安全性中添加一条规则,并将源作为 Ec2 Web 服务器的安全组。

由于某种原因,它不起作用。但是当我添加 0.0.0.0/0 作为规则的来源时,它正在工作。

我觉得我在这里遗漏了一些东西。 谁能帮我解决这个问题?

【问题讨论】:

  • ALB(application server) 内部/私有 ALB 吗?
  • @Marcin 它面向互联网
  • 这就是它可能不起作用的原因。您可以仔细检查并使用 VPC cidr 范围而不是 0.0.0.0/0
  • @Marcin 我不希望 ALB 应用程序服务器面向 Internet。它应该只能从 wen 服务器访问,抱歉最后的评论
  • 架构在 ALB 详细信息中面向互联网

标签: amazon-web-services aws-security-group aws-application-load-balancer


【解决方案1】:

由于您的ALB(application server) 面向互联网,它只能通过公共 IP 访问。这意味着您的Ec2 (web servers) 正在使用互联网访问ALB(application server)

Route53 -> ALB(web server) - > Ec2 (web servers) - > INTERNET -> ALB(application server) - > Ec2 (application server) - > RDS

在这种情况下,您的安全组 (SG) 只能使用 0.0.0.0/0 规则,而不是通过引用 Web 服务器的 SG。 SG 引用仅在流量在 VPC 内而非来自 Internet 时才有效。

在您的设置中,您的ALB(application server) 应该是私有子网 中的内部 ALB,而不是公共子网。由于您的设置遵循三层架构,请查看下面的一些示例设计。请注意,在所有这些中,第二个 ALB 是内部的,应用程序服务器位于私有子网中。这允许以您想要的方式使用 SG。

【讨论】:

  • ,我有两个问题。 1.如何从代码中调用应用服务器。在面向互联网的情况下,我曾经从我给它的域中调用。这里我应该使用 Nat 网关 IP 还是? 2. 我将如何处理我的部署?目前它正在由 Jenkins 处理,但一旦它是私有的,jenkins 将如何访问它?
  • @sumanthshetty 1. 您仍然使用域名,但它会解析为 ALB 的私有 IP 地址,并且流量仅在 VPC 内。不需要NAT。 2.取决于你的詹金斯是如何设置的。如果它需要互联网,那么可以使用 NAT。您还可以设置 VPC 接口端点以访问 AWS 服务,无需 NAT。
  • 你能帮我解决这个问题吗stackoverflow.com/questions/66951040/…
  • @sumanthshetty 可悲的是,我不知道可能出了什么问题:-(
  • @sumanthshetty 希望其他人能够提供帮助。我不是 SAM 用户,因此我不知道可能出了什么问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 2022-01-04
相关资源
最近更新 更多