簡體   English   中英

"公有子網中的 AWS NLB,私有子網中的 EC2"

[英]AWS NLB in public subnets with EC2 in private subnets

是否有人在您的 VPC 的公有子網中配置了 NLB,以將流量路由到私有子網中的 EC2 實例?

使用 ELB 時,一個好的解決方案是為 ELB 創建一個安全組,然后為私有 EC2 實例創建另一個安全組,允許來自該 ELB 安全組的傳入流量,如下所述:

https:\/\/aws.amazon.com\/premiumsupport\/knowledge-center\/public-load-balancer-private-ec2\/<\/a>

“您還可以在實例的安全組上添加規則,以允許來自分配給負載均衡器的安全組的流量。例如,如果負載均衡器上的安全組是 sg-1234567a,則對關聯的安全組進行以下更改與私有實例"

由於您無法將安全組與 NLB 相關聯,那么您如何使用相同類型的安全性來完成此操作?

謝謝!

由於您無法將安全組與NLB關聯,因此如何使用相同類型的安全性來實現此目的?

安全方面不會改變。

NLB是一種不同的野獸,它與經典的Load Balancers不同。 對於經典負載均衡器,從您的實例的角度來看,流量似乎來自VPC內部。 從外部,流量轉到(隨機和變異的)IP地址列表,由AWS提供給您的DNS記錄解析。

網絡負載均衡器完全不同。 從您的實例來看,它們是完全不可見的。 如果它是外部網絡負載均衡器,則流量似乎直接來自互聯網上的實例(即使這是一種錯覺)。 因此,如果您想與互聯網上的每個人交談,請將0.0.0.0/0打開。

事實上,這是文檔所說的內容:

https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups

Recommended Rules

Inbound Source      Port Range        Comment
Client IP addresses instance listener Allow traffic from clients on the instance listener port

VPC CIDR            health check      Allow traffic from the load balancer on the health check port

客戶端IP地址是您的客戶端IP。 如果他們在開放的互聯網上,則為0.0.0.0/0。 正如我在其他響應中看到的那樣,添加NLB私有IP地址完成任何事情。 就實例而言,流量並非來自那里。

在安全角度,沒有任何變化。 由於您的實例位於私有子網中,因此流量無法直接流向它們,因為中間有NAT網關。 它只能從它們流向互聯網(通過NAT網關,然后是互聯網網關)。 即使您指定從任何地方允許所有流量,流量仍然不會來。 它必須通過另一種方式來實現。 在您的情況下,這種方式是NLB,它具有固定數量的偵聽端口,並且僅將流量發送到您指定的實例上的目標端口。

如果要從經典負載均衡器轉移到NLB,請將安全組規則從負載均衡器移至實例。 或者更好的是,由於您可以擁有多個安全組,只需將當前用於經典LB的SG添加到實例(並根據需要更新任何ASG)。 您的安全狀況將完全相同。 有了額外的好處,現在您的應用程序不需要像代理協議這樣的東西來確定流量來自何處,它不再被負載均衡器混淆。

根據AWS文檔確實如此:

網絡負載均衡器沒有關聯的安全組。 因此,目標的安全組必須使用IP地址來允許來自負載均衡器的流量。

因此,如果您不想授予對整個VPC CIDR的訪問權限,則可以授予對負載均衡器節點使用的專用IP地址的訪問權限。 每個負載均衡器子網有一個IP地址。

在NLB選項卡上,每個負載均衡器有一個網絡接口:

在每個網絡接口的“詳細信息”選項卡上,從主要專用IPv4 IP復制地址。

您可以使用此私有IP地址添加EC的EC2實例。

請參閱AWS文檔

跟蹤您的 http 訪問日志,您將看到網絡負載均衡器的源 IP 地址沒有更改,這意味着如果 Internet 需要訪問您的端點,您需要在端點安全組上允許 0.0.0.0/0。 僅當您使用私有子網時才可以這樣做,因此如果您將此服務器放在公共子網上,請小心,因為不建議使用此解決方案。 在這種情況下,只需使用應用程序負載平衡器。 您仍然可以設置相同的偵聽器並按實例配置目標組。 如果您跟蹤訪問日志,應用程序負載均衡器會將源 IP 地址更新為其自己的私有地址。 這樣做的好處是您只需要允許到應用程序負載均衡器的 https 流量,然后您可以接受來自負載均衡器的目標組的 http。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM