Amazon-Web-Services
限制對 AWS ECS Fargate 服務的公共訪問
- 我在使用 Fargate 部署的 AWS ECS 上提供了一項服務。
- 此服務使用網路負載均衡器 (NLB) 來允許彈性 IP 與服務相關聯。
- 這不是 http 服務,並且使用埠 5060 (SIP),因此選擇 NLB。
關於健康檢查,我不太了解。如果我將與該服務關聯的安全組中的訪問限制為僅幾個 /32(單個 IP)的流量埠,則該服務被標記為不健康。如果我允許通過流量埠訪問世界,則該服務被標記為健康。如果我只允許訪問包括 NLB 在內的內部 CIDR 塊,則該服務被標記為健康——但它也允許世界訪問該埠。
我嘗試使用容器上的另一個埠進行執行狀況檢查,但這並不理想,而且我沒有成功地進行。雖然我歡迎詳細說明如何根據我的 Fargate/NLB/Elastic IP 要求正確設置它的答案,但我寧願讓流量埠成為執行狀況檢查埠,但我需要了解一種拒絕世界的方法進入港口。
您必須弄清楚健康檢查的來源並將這些 IP 列入白名單。由於它是一個 Fargate 容器,並且您可能沒有 SSH 訪問權限,您可以嘗試以下方法之一:
- SIP 服務是否記錄傳入連接?如果是這樣,並且如果日誌被轉發到例如*CloudWatch Logs*(它們應該是!),您可以在那裡查看。
- 使用**VPC 流日誌**來確定哪些 IP 連接到您的服務。最好知道容器的ENI ID(彈性網路介面 ID) - 它顯示在 Fargate 任務詳細資訊中。
您還提到,當您將內部 VPC IP 範圍列入白名單時,該服務將向全世界開放。這聽起來不對 - 在這種情況下,您可以發布您的安全組設置的螢幕截圖嗎?
希望有幫助:)