AWS Разрешить трафик на EC2 только с S3

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

  1. S3 вызов NLB
  2. API вызовов NLB на EC2
  3. Трафик на инстанс EC2 ограничен только с NLB, все остальные блокируются,

К сожалению, теперь, чтобы поддерживать связь между S3 и EC2, мне нужно открыть определенный порт и разрешить трафик с 0.0.0.0/0, что является моим кошмаром. Может быть, кто-нибудь знает какое-либо решение, которое было бы хорошо в моем случае. Может есть способ ограничить трафик с сервиса S3?

Вы, кажется, фундаментальное заблуждение о чем-то в вашей настройке. "1. S3 вызов NLB" невозможно. S3 хранит только контент; он никогда не связывается ни с одним сервером по какой-либо причине. Похоже, вы хотите ограничить доступ к EC2 только для браузеры, которые являются отображение вашим приложением, которое хранится в корзине и подключается из браузера к вашему серверу... но это сильно отличается от утверждения, что S3 является подключение к вашему серверу. Это не так.

Michael - sqlbot 15.03.2019 14:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
339
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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.

Другие вопросы по теме