提供私有内容概述 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

提供私有内容概述

您可通过两种方式控制用户对私有内容的访问:

限制访问 CloudFront缓存中的文件

您可以配置 CloudFront 为要求用户使用签名 URL 或签名 Cookie 访问您的文件。然后开发应用程序,以创建签名 URL 并将其分发给经身份验证的用户,或者为经身份验证的用户发送用于设置签名 Cookie 的 Set-Cookie 标头。(要为一些用户提供长期访问少量文件的权限,还可以手动创建签名 URL。)

创建签名 URL 或签名 Cookie 以控制对您的文件的访问时,可以指定以下限制:

  • 结束日期和时间,在此之后,URL 不再有效。

  • (可选)URL 生效的日期和时间。

  • (可选)可用于访问您的内容的 IP 地址或计算机的地址范围。

签名 URL 或签名 Cookie 的其中一部分使用公有/私有密钥对中的私有密钥进行哈希处理和签名。当有人使用签名 URL 或签名 Cookie 访问文件时, CloudFront 会比较网址或 Cookie 的已签名部分和未签名部分。如果它们不匹配,则 CloudFront 不提供文件。

您必须使用 RSA-SHA1 对网址或 Cookie 进行签名。 CloudFront 不接受其他算法。

限制对 Amazon S3 存储桶中文件的访问

您可以选择保护您的 Amazon S3 存储桶中的内容,这样用户就可以通过指定的 CloudFront 分配对其进行访问,但不能使用 Amazon S3 网址直接访问这些内容。这样可以防止他人绕过 CloudFront 并使用 Amazon S3 URL 来获取您想要限制访问的内容。虽然此步骤未要求使用签名 URL,但我们建议使用。

要要求用户通过 CloudFront URL 访问您的内容,请执行以下任务:

  • 授予 CloudFront 源访问控制权限以读取 S3 存储桶中的文件。

  • 创建源访问控制并将其与您的 CloudFront 分配相关联。

  • 删除其他任何人使用 Amazon S3 URL 读取这些文件的权限。

有关更多信息,请参阅限制对 Amazon S3 源的访问

在自定义源上限制对文件的访问

如果您使用自定义源,则可以选择设置自定义标头来限制访问。 CloudFront 要从自定义来源获取文件,必须CloudFront 可以使用标准的 HTTP(或 HTTPS)请求访问这些文件。但是,通过使用自定义标题,您可以进一步限制对内容的访问,以便用户只能通过访问内容CloudFront,而不能直接访问。虽然此步骤未要求使用签名 URL,但我们建议使用。

要要求用户通过访问内容 CloudFront,请在您的 CloudFront 分配中更改以下设置:

源自定义标头

配置 CloudFront 为将自定义标头转发到您的来源。请参阅 配置 CloudFront 为向源请求添加自定义标头

查看器协议策略

将分配配置为要求查看器使用 HTTPS 访问 CloudFront。请参阅 查看器协议策略

源协议策略

将您的分配配置 CloudFront 为要求使用与查看者相同的协议将请求转发到源。请参阅 协议(仅自定义源)

进行这些更改后,请更新自定义源上的应用程序,使其仅接受包含您配置为发送的自定义标头 CloudFront 的请求。

查看器协议策略源协议策略的组合可确保在传输过程中对自定义标头进行加密。但是,我们建议您定期执行以下操作来轮换 CloudFront 转发到您的来源的自定义标头:

  1. 更新您的 CloudFront 分配,开始向您的自定义来源发送新的标头。

  2. 更新您的应用程序,以接受新的标题作为请求来自的确认 CloudFront。

  3. 当请求不再包含您要替换的标头时,请更新您的应用程序,使其不再接受旧的标头作为请求来自的确认 CloudFront。