2017-01-30 63 views
1

因此,我一直在关注CloudFront和S3上的指南,我觉得我仍然缺少Origin Access身份和CloudFront签名URL之间关系中的核心信息。Origin访问身份和CloudFront签名的Url之间的关系

我想要什么:一个私有CDN主持音频片段(几秒钟的长度)和低分辨率的图像。我只希望这些文件在来自特定域(Web应用程序所在的域)以及可能是测试服务器的请求时可访问。所以,我的web应用程序可以获取文件,但只是人不能没有通过web应用程序会访问它们

什么IM困惑:我模糊的关系(如果有的话)CloudFront的起源访问身份之间和签署CloudFront网址。

我目前已经为我的cloudfront发布创建了一个私有S3,一个OAI,并且已经通过cloudfront为图片生成了一个链接的url。但我不明白这些事情是如何相关的,以及他们如何阻止其他人访问CDN文件(如果他们能够执行检查并获取签名的URL)。

是否要确保签名url快到期?如果是的话,OAI如何在其中发挥作用?这是否在CORS中设置?

回答

0

添加指向您的CloudFront域的新CNAME条目。此条目应与CloudFront控制台中的“备用域名”中输入的条目匹配。

enter image description here

默认情况下CloudFront的自动生成域名(例如d3i29vunzqzxrt.cloudfront.net),但你可以定义你选择的域名。你

也可以保证的Cloudfront Serving Private Content through CloudFront

+0

好的。 CDN不会只改变网址吗?如何确保在除指定域以外的其他人可以访问CDN上的项目? – crazyCoder

+1

您可以选择保护您的Amazon S3存储桶中的内容,以便用户可以通过CloudFront访问它,但无法使用Amazon S3 URL直接访问它。这可以防止任何人绕过CloudFront并使用Amazon S3 URL获取您想要限制访问的内容。此步骤不需要使用签名的URL --AWS –

4

的原点了接入身份是内CloudFront的一个实体 可通过桶政策被授权访问区中的物件。当CloudFront使用源访问标识访问存储区中的内容时,CloudFront将使用OAI的凭据生成签名请求,以便将其发送到存储区以获取内容。查看者无法访问此签名。

这里使用的单词“origin”的含义不应该与在其他上下文中使用的词“origin”混淆,例如CORS,其中“origin”是指允许访问内容的网站。

原始访问标识与访问被限制为包含特定OriginReferer标头的请求无关。

一旦CloudFront验证签名URL为匹配与您的AWS账户(或您指定为可信签署人的另一账户)相关联的CloudFront签名密钥,则该对象将从存储桶中获取,并使用来源访问身份已经被授予。

是否要确保签名url快到期?

基本上,是的。

通过尝试基于发现链接的站点限制访问的身份验证和授权请求是而不是可行的安全措施。它可以防止来自其他站点的热链接,但不会防止任何人伪造请求标头。击败这样的措施是微不足道的。

相比之下,签名的URL对计算不可行性极其篡改。

签名的URL不仅仅在到期之前才有效,还可以选择性地限制访问策略文档中包含的具有相同IP地址的人员,如果使用custom policy。一旦签名,对URL的任何更改(包括策略声明)都会使整个URL无法使用。

OAI仅与CloudFront签署的URL间接连接 - 它们可以单独使用或一起使用 - 但是如果没有OAI,CloudFront无法证明它有权从您的存储桶请求对象,因此存储桶将需要公开,这将打破CloudFront上签名URL的许多目的。

+0

明白了。所以试图限制访问,所以只有我的网站可以访问cdn文件不是一个好方法?我最好用合理的过期时间创建网址,或者使用IP限制为仅允许访问我的网站(域)的自定义策略创建网址? – crazyCoder

+0

试图通过网络浏览器*声称这是一个来自您的网站的请求,这是一种保护内容的原始形式,以此来限制您的网站的神奇功能。是的,过期的网址会更好。如果您关心用户“共享”网址,那么仅限于*用户* IP的签名URL也可以提供帮助。请注意,IP是用户的IP--而不是您网站的IP。这个想法通常是在页面呈现时生成签名的URL。让我知道这个答案需要更多细节或澄清。 –

+0

我明白了,谢谢。我对用户共享URL和更多关注webapp上的材料(音频文件和图像)的关注较少。除了带宽使用外,这些文件不应该在webapp以外的任何人访问 – crazyCoder

相关问题