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