
Я хочу предотвратить прямое взаимодействие с моим S3 bucket. Хотя мой S3 bucket настроен правильно, я хочу найти (производительный) метод блокировки доступа к одному IP, продолжая при этом обслуживать файлы из S3.
Архитектура, которую я себе представляю, это:
user request -> proxy web application -> s3 bucket
Так, чтобы пользователь не подвергался воздействию или не был осведомлен об использовании S3. Обязательство, которое я пытаюсь обойти, заключается в том, что это потребует от меня оплаты нагрузки ЦП для каждого запроса, что сведет на нет многие преимущества использования S3 в первую очередь. Я представляю, что достижение этой цели потребует очень быстрого и очень минимального веб-сервиса.
Есть ли способ скрыть S3 от пользователей, не теряя его преимуществ в прокси?
Примечание:
Я не хочу считать, что S3 может быть безопасно сконфигурирован. В моем случае есть организационные причины рассмотреть дополнительные процедуры безопасности. Я бы с удовольствием поразмышлял над этим, даже если это действительно неправильный выбор.
Кроме того, это не вариант использовать сервис вместо S3. Мы говорим только о S3 здесь.
решение1
Если вы хотите заблокировать доступ к IP-адресу, вы можете установить соответствующее разрешение через IAM — таким образом, вам не придется заниматься всякой ерундой с обратным прокси-сервером.
Вы можете создать глобальную политику чтения S3, а затем задать условие, что запросы должны поступать с определенного IP-адреса.
Пример условного оператора:
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
}
}