S3 上的 https 可以在没有 Cloudfront 的情况下吗?

问题描述 投票:0回答:5

我们目前希望开始通过 AWS S3 托管我们的所有资产,并且我们还希望通过 https 来服务器所有内容。我了解我可以将 Amazon Certificate Manager (ACM) 与 Cloudfront 结合使用,通过 https 来服务器资产。问题是我们处于医疗行业,法律禁止我们在欧盟以外举办任何活动。使用 S3,我可以选择一个位置(我们是法兰克福),但使用 Cloudfront,我只能得到这个选项:

enter image description here

所以我想我可以使用 Letsencrypt 来生成我自己的证书。但我认为我仍然需要使用仅适用于 Cloudfront 的 ACM,这意味着我仍然无法使用它。

有谁知道我是否可以通过 https 设置 S3,但不使用 cloudfront?

amazon-web-services amazon-s3 https ssl-certificate lets-encrypt
5个回答
36
投票

遗憾的是,您无法将 SSL 证书与 S3 的自定义域一起使用。您可以将 S3 域与 Amazon SSL 证书结合使用,例如:

https://my-example-bucket.s3-website-us-east-1.amazonaws.com

如果您想使用带有 SSL 的自定义域,并且无法使用 CloudFront,那么您将需要考虑在 S3 前面放置一些其他代理,例如您自己的 Nginx 服务器或其他东西。


5
投票

在 AWS API Gateway 中,您可以创建映射到 /{proxy+}

proxy
资源
s3-website

确保不要单独映射到

s3
,而是映射到
s3-website
,这样您就可以为
PATH/TO/DIR/index.html
返回
PATH/TO/DIR
,并且可能还有其他按预期工作的东西。

API 网关通过 HTTPS 提供服务,可以选择在您自己的域下。

但这不是一个很好的选择,因为您必须手动添加所有允许的 HTTP 返回代码,并且请求中的负载限制为 10MB,因为此服务针对的是 REST API。


1
投票

下面是一个有用的资源计划。 S3 和 CloudFront 在欧盟均可用。 您当然可以通过 CloudFront 提供 S3。

我了解在领土边界内举办活动的要求。您可以在欧盟地区通过 S3 实现这一要求。 CloudFront 不是托管服务,而是使用高性能租用线路和可管理端点缓存的 CDN(内容交付网络)。 您正在考虑的问题是价格选项,而不是托管位置。 如果您想在欧盟提供内容,您需要“价格等级 100”或“价格等级全部”。

使用 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'

附注 确保将存储桶权限设置为仅可通过 CloudFront 通道使用。

RL


1
投票

CloudFront 具有针对白/黑名单国家/地区的功能。 我会尝试使用您列出的 3 个 CDN 选项中的任何一个以及欧盟国家/地区的白名单。 我不确定验证其他国家(例如美国)被拒绝的最简单方法是什么。


0
投票

这可以使用 ALB 实现。完整说明位于 AWS 帖子使用 ALB、S3 和 PrivateLink 托管内部 HTTPS 静态网站

© www.soinside.com 2019 - 2024. All rights reserved.