

# Amazon CloudFront 中的数据保护
<a name="data-protection-summary"></a>

AWS [责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于 Amazon CloudFront 中的数据保护。如该模式中所述，AWS 负责保护运行所有 AWS 云 的全球基础设施。您负责维护对托管在此基础结构上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq/)。有关欧洲数据保护的信息，请参阅 *AWS Security Blog* 上的 [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

出于数据保护目的，建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management（IAM）设置单个用户。这样，每个用户只获得履行其工作职责所需的权限。还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 使用 SSL/TLS 与 AWS 资源进行通信。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 使用 AWS CloudTrail 设置 API 和用户活动日记账记录。有关使用 CloudTrail 跟踪来捕获 AWS 活动的信息，请参阅《AWS CloudTrail 用户指南》**中的[使用 CloudTrail 跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及 AWS 服务中的所有默认安全控制。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果在通过命令行界面或 API 访问 AWS 时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅《美国联邦信息处理标准（FIPS）第 140-3 版》[https://aws.amazon.com/compliance/fips/](https://aws.amazon.com/compliance/fips/)。

强烈建议您切勿将机密信息或敏感信息（如您客户的电子邮件地址）放入标签或自由格式文本字段（如**名称**字段）。这包括您通过控制台、API、AWS CLI 或 AWS SDK 使用 CloudFront 或其他 AWS 服务时。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供 URL，强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

Amazon CloudFront 提供了几个选项，您可使用这些选项来帮助保护所提供的内容：
+ 配置 HTTPS 连接。
+ 配置字段级加密以在传输过程中为指定数据提供额外的安全性。
+ 限制对内容的访问权限，从而只有特定人员或者特定区域中的人员可以查看这些内容。

以下主题更详细地说明了选项。

**Topics**
+ [传输中加密](#data-protection-summary-encryption-in-transit)
+ [静态加密](#data-protection-summary-encryption-at-rest)
+ [限制对内容的访问](#data-protection-summary-restrict-access)

## 传输中加密
<a name="data-protection-summary-encryption-in-transit"></a>

要对传输中的数据加密，您可以将 Amazon CloudFront 配置为要求查看器使用 HTTPS 请求您的文件，以便在 CloudFront 与查看器通信时加密连接。您也可以将 CloudFront 配置为使用 HTTPS 从源获取文件，以便在 CloudFront 与源通信时加密连接。

有关更多信息，请参阅 [将 HTTPS 与 CloudFront 结合使用](using-https.md)。

字段级加密增加了一个额外的安全保护层以及 HTTPS，使您可以在整个系统处理过程中保护特定的数据，以便只有某些应用程序才能查看它。通过在 CloudFront 中配置字段级加密，您可以将用户提交的敏感信息安全上传到您的 Web 服务器。客户端提供的敏感信息在更接近用户的边缘站点中进行加密。这些敏感信息在整个应用程序堆栈中保持加密状态，从而确保仅需要该数据（以及具有用于解密的凭证）的应用程序才能使用该数据。

有关更多信息，请参阅 [使用字段级加密帮助保护敏感数据](field-level-encryption.md)。

CloudFront API 终端节点 `cloudfront.amazonaws.com` 和 `cloudfront-fips.amazonaws.com` 只接受 HTTPS 流量。这意味着，当您使用 CloudFront API 发送和接收信息时，您的数据（包括分配配置、缓存策略和源请求策略、密钥组和公钥以及 CloudFront Functions 中的函数代码）始终在传输过程中加密。此外，发送到 CloudFront API 终端节点的所有请求都使用 AWS 凭证进行签名并记录到 AWS CloudTrail 中。

CloudFront Functions 中的函数代码和配置被复制到边缘站点节点 (POP) 以及在 CloudFront 使用的其他存储位置之间复制时，始终在传输过程中加密。

## 静态加密
<a name="data-protection-summary-encryption-at-rest"></a>

CloudFront Functions 中的函数代码和配置始终以加密的格式存储在边缘站点 POP 上和 CloudFront 使用的其他存储位置中。

## 限制对内容的访问
<a name="data-protection-summary-restrict-access"></a>

许多通过互联网分发内容的公司都希望限制对文档、业务数据、流媒体或面向一部分用户的内容的访问。要使用 Amazon CloudFront 安全地提供此内容，您可执行以下一个或多个操作：

**使用签名 URL 或 Cookie**  
您通过 CloudFront，使用签名 URL 或签名 Cookie 来提供此私有内容，从而限制面向选定用户（例如，付费用户）的内容的访问。有关更多信息，请参阅 [使用签名 URL 和签名 Cookie 提供私有内容](PrivateContent.md)。

**限制对 Amazon S3 存储桶中内容的访问**  
例如，如果您通过使用 CloudFront 签名 URL 或签名 Cookie 来限制对内容的访问，您也不希望人们使用文件的直接 URL 查看文件。而是希望他们只能通过使用 CloudFront URL 访问文件，这样您的保护才会发挥作用。  
如果您使用 Amazon S3 存储桶作为 CloudFront 分配的源，则可以设置源访问控制 (OAC) 来限制对 S3 存储桶的访问。有关更多信息，请参阅 [限制对 Amazon S3 源的访问](private-content-restricting-access-to-s3.md)。

**限制对 Application Load Balancer 提供的内容的访问**  
当您将 CloudFront 与 Elastic Load Balancing 中的 Application Load Balancer 作为源时，您可以配置 CloudFront 以防止用户直接访问 Application Load Balancer。这使得用户只能通过 CloudFront 访问 Application Load Balancer，从而确保您获得使用 CloudFront 的益处。有关更多信息，请参阅 [限制访问应用程序负载均衡器](restrict-access-to-load-balancer.md)。

**使用 AWS WAF Web ACL**  
您可以使用 Web 应用程序防火墙服务 AWS WAF 创建 Web 访问控制列表 (Web ACL) 来限制对内容的访问。根据指定的条件（如请求源自的 IP 地址或查询字符串的值），CloudFront 会使用所请求的内容或使用 HTTP 状态代码 403（禁止）来响应请求。有关更多信息，请参阅 [使用 AWS WAF 保护功能](distribution-web-awswaf.md)。

**使用地理限制**  
您可以使用*地理限制* （也称为*地理阻止*）禁止特定地理位置的用户访问您通过 CloudFront 分配提供的内容。配置地理限制时有多个选项可供选择。有关更多信息，请参阅 [限制您的内容的地理分配](georestrictions.md)。