У меня есть одно одностраничное приложение, размещенное в корзине S3. Он использует API приложения, расположенное в экземпляре EC2 за Network Load Balancer. Из-за этих конкретных ограничений балансировщика нагрузки я не могу использовать SG и управлять потоком трафика к экземпляру EC2. Идеальный сценарий должен быть таким:
К сожалению, теперь, чтобы поддерживать связь между S3 и EC2, мне нужно открыть определенный порт и разрешить трафик с 0.0.0.0/0, что является моим кошмаром. Может быть, кто-нибудь знает какое-либо решение, которое было бы хорошо в моем случае. Может есть способ ограничить трафик с сервиса S3?





Amazon S3 — это служба хранения объектов. Если ваше приложение обслуживается S3, это означает, что S3 предоставляет содержимое HTML, CSS и JavaScript для браузеров ваших клиентов. JavaScript выполняется на стороне клиента, а не на S3. Таким образом, невозможно ограничить доступ к API EC2 из S3.
Я бы предложил использовать Amazon Cognito для аутентификации ваших клиентов и ограничения доступа к API для аутентифицированных клиентов.
Похоже, группу безопасности на вашем экземпляре Amazon EC2 можно настроить так, чтобы она принимала трафик только от NLB.
Из Зарегистрируйте цели в своей целевой группе — эластичная балансировка нагрузки:
Network Load Balancers do not have associated security groups. Therefore, the security groups for your targets must use IP addresses to allow traffic from the load balancer.
...you can grant access to the private IP addresses used by the load balancer nodes. There is one IP address per load balancer subnet.
Однако любой может вызвать Network Load Balancer и, следовательно, получить доступ к инстансам EC2.
Вы, кажется, фундаментальное заблуждение о чем-то в вашей настройке. "1. S3 вызов NLB" невозможно. S3 хранит только контент; он никогда не связывается ни с одним сервером по какой-либо причине. Похоже, вы хотите ограничить доступ к EC2 только для браузеры, которые являются отображение вашим приложением, которое хранится в корзине и подключается из браузера к вашему серверу... но это сильно отличается от утверждения, что S3 является подключение к вашему серверу. Это не так.