Https на S3 БЕЗ облачной перспективы?

В настоящее время мы хотим начать хостинг всех наших активов через AWS S3, а также мы хотим сервировать все через https. Я понимаю, что могу использовать Диспетчер сертификатов Amazon (ACM) с Cloudfront для серверных ресурсов через https. Проблема в том, что мы работаем в медицинской промышленности, и нам по закону запрещено принимать что-либо за пределами ЕС. С S3 я могу выбрать местоположение (Франкфурт для нас), но с Cloudfront я просто получаю эту опцию:

enter image description here

Поэтому я подумал, что, возможно, смогу использовать Letsencrypt для генерации своих собственных сертификатов. Но я думаю, что мне все еще нужно использовать ACM, который работает только с Cloudfront, а это значит, что я все еще не могу его использовать.

Кто-нибудь знает, могу ли я как-то настроить S3 с https, но без облачного фронта?

Ответ 1

К сожалению, вы не можете использовать сертификат SSL с вашим собственным доменом с S3. Вы можете использовать домен S3 с сертификатом SSL Amazon, например: https://my-example-bucket.s3-website-us-east-1.amazonaws.com.

Если вы хотите использовать собственный домен с SSL, и вы не можете использовать CloudFront, вам нужно будет поместить другой прокси-сервер перед S3, как ваш собственный сервер Nginx или что-то в этом роде.

Ответ 2

В AWS API Gateway вы можете создать прокси-ресурс /{proxy+} который сопоставляется с s3-website.

Не забудьте сопоставить не только с s3, но и s3-website, поэтому вы получите PATH/TO/DIR/index.html возвращенный для PATH/TO/DIR, и, возможно, другие вещи, работающие по желанию.

API-шлюз обслуживается через HTTPS, опционально в вашем собственном домене.

Это не очень хороший вариант, потому что вы должны вручную добавить все разрешенные коды возврата HTTP, и в запросе есть ограничение в 10 МБ полезной нагрузки, так как эта служба предназначена для API REST.

Ответ 3

Ниже приведен полезный график ресурсов. Оба S3 и CloudFront доступны в ЕС. Вы можете представить S3 через CloudFront.

Я понимаю требования к размещению в пределах территориальной границы. Эти требования потребуются для S3 в регионе ЕС. CloudFront не является сервисом хостинга, это CDN (сеть доставки контента), используя высокопроизводительные выделенные линии и управляемое кеширование конечных точек. Проблема, которую вы ищете, - это варианты цены, а не место размещения. Если вы хотите обслуживать контент в ЕС, вам нужно "Price Class 100" или "Class Class All".

При использовании CloudFront вы можете контролировать оба диапазона IP, которые могут получить доступ к вашему материалу, и шифрование как внешнего, так и внешнего трафика. Проверьте некоторые шаблоны проектирования

Есть несколько отличных белых документов и шаблонов проектирования для создания защищенного CloudFront. Я думаю, вы обнаружите, что можете делать то, что хотите, и оставаться в пределах законных требований.

http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region https://aws.amazon.com/compliance/eu-data-protection/

Также ознакомьтесь с AWS doco 'using-https-cloudfront-to-s3-origin' и 'custom-ssl-domains'

P.S. Убедитесь, что вы разрешаете разрешения для ведра только для доступа через канал CloudFront.

RL

Ответ 4

CloudFront имеет функцию для стран с белым/черным списком. Я бы попытался использовать любой из трех вариантов CDN, которые вы указали вместе с белым списком стран ЕС. Я не уверен, что самый простой способ проверить, запрещены ли другим странам (например, США).

Ответ 5

Да, это. Вам просто нужно сделать ваш сегмент общедоступным, а затем настроить маршрут 53. Предположим, что ваш сегмент находится на www.example.com в регионе us-east-1, он доступен по этому URL-адресу

http://www.example.com.s3-website-us-east-1.amazonaws.com/

Просто добавьте зону вашего example.com на Route53, например, CNAME

www → www.example.com.s3-website-us-east-1.amazonaws.com