亚马逊 CloudFront 控制 - AWS Security Hub

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

亚马逊 CloudFront 控制

这些控制措施与 CloudFront 资源有关。

这些控件可能并非全部可用 AWS 区域。有关更多信息,请参阅 按地区划分的控件可用性

[CloudFront.1] CloudFront 发行版应配置默认根对象

相关要求:NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)。

类别:保护 > 安全访问管理 > 不可公开访问的资源

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-default-root-object-configured

计划类型:已触发变更

参数:

此控件检查 Amazon CloudFront 分配是否配置为返回默认根对象的特定对象。如果 CloudFront 发行版未配置默认根对象,则控件将失败。

用户有时可能会请求分配的根 URL,而不是分配中的对象。发生这种情况时,指定默认根对象可以帮助您避免暴露 Web 分发的内容。

修复

要为 CloudFront 分配配置默认根对象,请参阅 Amazon CloudFront 开发者指南中的如何指定默认根对象

[CloudFront.3] CloudFront 发行版在传输过程中应要求加密

相关要求:NIST.800-53.r5 AC-17(2)、NIST.800-53.r5 AC-4、NIST.800-53.r5 IA-5(1)、NIST.800-53.r5 SC-12(3)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-23、NIST.800-53.r5 SC-23(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-8(1)、NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)。

类别:保护 > 数据保护 > 加密 data-in-transit

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-viewer-policy-https

计划类型:已触发变更

参数:

此控件可检查 Amazon CloudFront 分配是否要求查看者直接使用 HTTPS 或是否使用重定向。如果 ViewerProtocolPolicy 对于 defaultCacheBehaviorcacheBehaviors 设置为 allow-all,则控制失败。

HTTPS (TLS) 可用于帮助防止潜在的攻击者使用 person-in-the-middle或类似的攻击来窃听或操纵网络流量。只允许通过 HTTPS (TLS) 进行加密连接。加密传输中数据可能会影响性能。您应该使用此功能测试应用程序,以了解性能概况和 TLS 的影响。

修复

要对传输中的 CloudFront 分配进行加密,请参阅《亚马逊 CloudFront 开发者指南》中的 “需要 HTTPS 才能 CloudFront在查看者之间进行通信”。

[CloudFront.4] CloudFront 发行版应配置源站故障转移

相关要求:NIST.800-53.r5 CP-10、NIST.800-53.r5 SC-36、NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)。

类别:恢复 > 弹性 > 高可用性

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-origin-failover-enabled

计划类型:已触发变更

参数:

此控件会检查 Amazon CloudFront 配送是否配置了具有两个或更多来源的起源组。

CloudFront 源站故障转移可以提高可用性。如果主源不可用或返回特定的 HTTP 响应状态代码,则源失效转移会自动将流量重定向到辅助源。

修复

要为 CloudFront 分配配置源故障转移,请参阅 Amazon CloudFront 开发者指南中的创建源组

[CloudFront.5] CloudFront 发行版应启用日志记录

相关要求:NIST.800-53.r5 AC-2(4)、NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AC-6(9)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4(20)、NIST.800-53.r5 SI-7(8)。

类别:识别 > 日志记录

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-accesslogs-enabled

计划类型:已触发变更

参数:

此控件检查 CloudFront 发行版上是否启用了服务器访问日志记录。如果未为分配启用访问日志记录,则控制失败。

CloudFront 访问日志提供有关 CloudFront 收到的每个用户请求的详细信息。每个日志都包含诸如收到请求的日期和时间、发出请求的查看器的 IP 地址、请求的来源以及查看器请求的端口号等信息。

这些日志对于安全和访问审计、取证调查等应用很有用。有关如何分析访问日志的更多指导,请参阅 Amazon Athena 用户指南中的查询亚马逊 CloudFront 日志

修复

要为 CloudFront 分配配置访问日志,请参阅 Amazon CloudFront 开发者指南中的配置和使用标准日志(访问日志)

[CloudFront.6] CloudFront 发行版应启用 WAF

相关要求:NIST.800-53.r5 AC-4(21)

类别:保护 > 防护服务

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-associated-with-waf

计划类型:已触发变更

参数:

此控件检查 CloudFront 分布是否与 AWS WAF 经典 ACL 或 AWS WAF Web ACL 相关联。如果分配未与 Web ACL 关联,则控制失败。

AWS WAF 是一种 Web 应用程序防火墙,可帮助保护 Web 应用程序和 API 免受攻击。通过它,您可以配置一组规则(称为 Web 访问控制列表,即 Web ACL),基于可自定义的 Web 安全规则以及您定义的条件,允许、阻止或统计 Web 请求。确保您的 CloudFront 发行版与 AWS WAF Web ACL 关联,以帮助保护其免受恶意攻击。

修复

要将 AWS WAF 网页 ACL 与 CloudFront 分配相关联,请参阅 Amazon CloudFront 开发者指南中的使用 AWS WAF 来控制对内容的访问权限

[CloudFront.7] CloudFront 发行版应使用自定义 SSL/TLS 证书

相关要求:NIST.800-53.r5 AC-17(2)、NIST.800-53.r5 AC-4、NIST.800-53.r5 IA-5(1)、NIST.800-53.r5 SC-12(3)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-23、NIST.800-53.r5 SC-23(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-8(1)、NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)。

类别:保护 > 数据保护 > 加密 data-in-transit

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-custom-ssl-certificate

计划类型:已触发变更

参数:

此控件检查 CloudFront 发行版是否使用默认的 SSL/TLS 证书提供的信息。 CloudFront 如果 CloudFront 发行版使用自定义 SSL/TLS 证书,则此控制通过。如果 CloudFront 分发使用默认 SSL/TLS 证书,则此控制失败。

自定义 SSL/TLS 允许用户使用备用域名访问内容。您可以将自定义证书存储在 AWS Certificate Manager (推荐)中,也可以存储在 IAM 中。

修复

要使用自定义 SSL/TLS 证书为 CloudFront 分配添加备用域名,请参阅亚马逊 CloudFront 开发者指南中的添加备用域名

[CloudFront.8] CloudFront 发行版应使用 SNI 来处理 HTTPS 请求

相关要求:NIST.800-53.r5 CA-9(1),NIST.800-53.r5 CM-2

类别:保护 > 安全网络配置

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-sni-enabled

计划类型:已触发变更

参数:

此控件检查亚马逊 CloudFront 分发是否使用自定义 SSL/TLS 证书,以及是否配置为使用 SNI 来处理 HTTPS 请求。如果关联了自定义 SSL/TLS 证书,但 SSL/TLS 支持方法是专用 IP 地址,则此控件将失败。

服务器名称指示 (SNI) 是对 TLS 协议的扩展,2010 年以后发布的浏览器和客户端均支持。如果您配置 CloudFront 为使用 SNI 处理 HTTPS 请求,请 CloudFront 将您的备用域名与每个边缘站点的 IP 地址相关联。当查看器提交针对内容的 HTTPS 请求时,DNS 将该请求传送到正确边缘站点的 IP 地址。指向您域名的 IP 地址在 SSL/TLS 握手协商期间确定;IP 地址并非专用于您的分发。

修复

要将 CloudFront 分配配置为使用 SNI 处理 HTTPS 请求,请参阅《 CloudFront 开发者指南》中的使用 SNI 处理 HTTPS 请求(适用于大多数客户端)

[CloudFront.9] CloudFront 发行版应加密发往自定义来源的流量

相关要求:NIST.800-53.r5 AC-17(2)、NIST.800-53.r5 AC-4、NIST.800-53.r5 IA-5(1)、NIST.800-53.r5 SC-12(3)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-23、NIST.800-53.r5 SC-23(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-8(1)、NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)。

类别:保护 > 数据保护 > 加密 data-in-transit

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-traffic-to-origin-encrypted

计划类型:已触发变更

参数:

此控件可检查 Amazon CloudFront 分配是否正在加密流向自定义来源的流量。对于源协议策略允许 “仅限 http” 的 CloudFront 分发,此控制失败。如果分配的源协议策略为 “match-viewer”,而查看器协议策略为 “allow-all”,则此控制也会失败。

HTTPS (TLS) 可用于帮助防止侦听或操纵网络流量。只能允许通过 HTTPS (TLS) 进行加密连接。

修复

要更新源协议策略以要求对 CloudFront 连接进行加密,请参阅《亚马逊 CloudFront 开发者指南》中的要求 CloudFront 与您的自定义源之间的通信需要 HTTPS

[CloudFront.10] CloudFront 分发版不应在边缘站点和自定义源站之间使用已弃用的 SSL 协议

相关要求:NIST.800-53.r5 AC-17(2)、NIST.800-53.r5 AC-4、NIST.800-53.r5 IA-5(1)、NIST.800-53.r5 SC-12(3)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-23、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-8(1)、NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)。

类别:保护 > 数据保护 > 加密 data-in-transit

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-no-deprecated-ssl-protocols

计划类型:已触发变更

参数:

此控件可检查 Amazon CloudFront 分配是否使用已弃用的 SSL 协议进行 CloudFront 边缘站点和您的自定义源站之间的 HTTPS 通信。如果 CloudFront 分配OriginSslProtocols包含 where includes,则CustomOriginConfig此控件将失败SSLv3

2015 年,国际互联网工程任务组 (IETF) 正式宣布,由于该协议不够安全,应弃用 SSL 3.0。建议您使用 TLSv1.2 或更高版本与自定义源进行 HTTPS 通信。

修复

要更新 CloudFront 分配的 Origin SSL 协议,请参阅 Amazon CloudFront 开发者指南中的要求 HTTPS 才能 CloudFront 与您的自定义源进行通信

[CloudFront.12] CloudFront 发行版不应指向不存在的 S3 来源

相关要求:NIST.800-53.r5 CM-2, NIST.800-53.r5 CM-2(2)

类别:识别 > 资源配置

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-s3-origin-non-existent-bucket

计划类型:定期

参数:

此控件可检查亚马逊 CloudFront 分发是否指向不存在的 Amazon S3 来源。如果源配置为指向不存在的存储桶,则 CloudFront 分配的控制将失败。此控件仅适用于没有静态网站托管的 S3 存储桶是 S3 来源的 CloudFront 分配。

当您账户中的 CloudFront 分配配置为指向不存在的存储桶时,恶意第三方可以创建引用的存储桶,并通过您的分配提供自己的内容。无论路由行为如何,我们都建议您检查所有源,以确保分布指向适当的源。

修复

要修改 CloudFront 分配以指向新的来源,请参阅《Amazon CloudFront 开发者指南》中的更新分配

[CloudFront.13] CloudFront 发行版应使用源站访问控制

类别:保护 > 安全访问管理 > 资源不公开访问

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:cloudfront-s3-origin-access-control-enabled

计划类型:已触发变更

参数:

此控件检查源为 Amazon S3 的亚马逊 CloudFront 分发是否配置了源站访问控制 (OAC)。如果没有为 CloudFront 分发配置 OAC,则控制失败。

使用 S3 存储桶作为 CloudFront 分配的源时,您可以启用 OAC。这仅允许通过指定的 CloudFront 分配访问存储桶中的内容,并禁止直接从存储桶或其他分配进行访问。尽管 CloudFront 支持原始访问身份 (OAI),但 OAC 提供了其他功能,使用 OAI 的发行版可以迁移到 OAC。尽管 OAI 提供了一种安全的方式来访问 S3 源,但它也有一些局限性,例如缺乏对精细策略配置的支持,以及不支持使用需要 AWS 签名版本 4 (SigV4) 的 POST 方法的 HTTP/HTTPS 请求。 AWS 区域 OAI 也不支持使用进行加密。 AWS Key Management Service OAC 基于使用 IAM 服务主体向 S3 源进行身份验证 AWS 的最佳实践。

修复

要为具有 S3 来源的 CloudFront 分配配置 OAC,请参阅《亚马逊 CloudFront 开发者指南》中的限制对 Amazon S3 来源的访问权限

[CloudFront.14] 应该给 CloudFront 发行版加标签

类别:识别 > 清单 > 标记

严重性:

资源类型:AWS::CloudFront::Distribution

AWS Config 规则:tagged-cloudfront-distribution(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 评估的资源必须包含的非系统标签密钥列表。标签键区分大小写。 StringList 符合AWS 要求的标签列表 无默认值

此控件会检查 Amazon CloudFront 分配是否具有参数中定义的特定密钥的标签requiredTagKeys。如果分配没有任何标签密钥或者没有在参数中指定的所有密钥,则控件将失败requiredTagKeys。如果requiredTagKeys未提供该参数,则该控件仅检查标签密钥是否存在,如果分配未使用任何密钥进行标记,则该控件将失败。系统标签会自动应用并以其开头aws:,但会被忽略。

标签是您分配给 AWS 资源的标签,它由密钥和可选值组成。您可以创建标签,按用途、所有者、环境或其他标准对资源进行分类。标签可以帮助您识别、组织、搜索和筛选资源。标记还可以帮助您跟踪负责任的资源所有者的操作和通知。使用标记时,可以实现基于属性的访问控制 (ABAC) 作为一种授权策略,该策略根据标签定义权限。您可以向 IAM 实体(用户或角色)和 AWS 资源附加标签。您可以为您的 IAM 委托人创建单个 ABAC 策略或一组单独的策略。您可以将这些 ABAC 策略设计为允许在委托人的标签与资源标签匹配时进行操作。有关更多信息,请参阅 ABAC 有什么用 AWS? 在 IAM 用户指南中。

注意

不要在标签中添加个人身份信息 (PII) 或其他机密或敏感信息。许多人都可以访问标签 AWS 服务,包括 AWS Billing。有关更多标记最佳做法,请参阅中的为AWS 资源添加标签AWS 一般参考

修复

要为 CloudFront 分配添加标签,请参阅《亚马逊 CloudFront 开发者指南》中的 “为亚马逊 CloudFront 分配添加标签”。