我们目前希望通过AWS S3开始托管我们的所有资产,我们也希望通过https服务一切。我知道我可以使用Cloudfront的亚马逊证书管理器(ACM)来通过https服务器资产。问题是我们在医疗行业,我们在法律上被禁止在欧盟以外的地方举办任何活动。使用S3我可以选择一个位置(法兰克福为我们),但使用Cloudfront我只能选择此选项:
所以我认为我可以使用Letsencrypt来生成我自己的证书。但我认为我仍然需要使用仅适用于Cloudfront的ACM,这意味着我仍然无法使用它。
有人知道我是否可以某种方式使用https设置S3但没有 cloudfront?
答案 0 :(得分:14)
很遗憾,您无法在S3自定义域中使用SSL证书。您可以将S3域与Amazon SSL证书一起使用,例如:https://my-example-bucket.s3-website-us-east-1.amazonaws.com
。
如果您想使用带有SSL的自定义域,并且您无法使用CloudFront,那么您需要考虑将一些其他代理放在S3之前,就像您自己的Nginx服务器一样。
答案 1 :(得分:1)
在AWS API网关中,您可以创建映射到/{proxy+}
的代理资源s3-website
。
请确保不单独映射到s3
,而是映射到s3-website
,这样您就可以PATH/TO/DIR/index.html
返回PATH/TO/DIR
,并且可能需要其他方式工作。
API网关通过HTTPS提供服务,可以选择在您自己的域下进行。
这不是一个很好的选择,因为您必须手动添加所有允许的HTTP返回码,并且此请求针对REST API,因此请求中的有效负载限制为10MB。
答案 2 :(得分:1)
是的。您只需要公开您的存储桶,然后配置Route53。假设您的存储桶位于us-east-1区域上的www.example.com,可以在此URL上访问
http://www.example.com.s3-website-us-east-1.amazonaws.com/
只需在Route53上的example.com托管区域中添加一个CNAME之类的
www-> www.example.com.s3-website-us-east-1.amazonaws.com
答案 3 :(得分:0)
以下是有用的资源计划。 S3和CloudFront均可在欧盟使用。您当然可以通过CloudFront呈现S3。
我理解在领土范围内托管的要求。您将在欧盟地区通过S3实现这一目标。 CloudFront不是托管服务,它是使用高性能租用线路和可管理端点缓存的CDN(内容交付网络)。您正在考虑的问题是价格选项,而不是托管位置。如果您想在欧盟提供内容,您需要“价格等级100”'或者' Price All 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'使用-https-cloudfront-to-s3-origin' &安培; '自定义的SSL域'
P.S。确保将存储桶权限设置为仅通过CloudFront通道可用。
RL
答案 4 :(得分:0)
CloudFront具有白名单/黑名单国家/地区的功能。我会尝试使用您列出的3个CDN选项以及欧盟国家/地区的白名单。我不确定最简单的方法是验证其他国家(例如美国)是否被拒绝。