提供私有内容概述 - 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 将比较 URL 或 Cookie 的已签名部分和未签名部分。如果它们不匹配,则 CloudFront 将不提供该文件。

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

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

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

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

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

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

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

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

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

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

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

源自定义标头

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

查看器协议策略

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

源协议策略

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

进行了这些更改之后,在自定义源上更新应用程序,以仅接受满足如下条件的请求:其中包含您已将 CloudFront 配置为发送的自定义标头。

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

  1. 更新 CloudFront 分配,开始将新标头转发至自定义源。

  2. 更新应用程序以接受新标头,从而确认请求来自 CloudFront。

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