你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Amazon Web Services (AWS) 资源的安全建议

本文列出了使用 “环境设置” 页连接 Amazon Web Services (AWS) 帐户时在 Microsoft Defender for Cloud 中看到的所有建议。 环境中显示的建议基于要保护的资源和自定义配置。

若要了解可以针对这些建议采取的操作,请参阅 Defender for Cloud 修正建议

安全功能分数根据已完成的安全建议数量计算得出。 若要首先确定要解决的建议,请查看每个建议的严重性及其对安全功能分数的潜在影响。

AWS 计算建议

安装修补程序后,由 Systems Manager 管理的 Amazon EC2 实例应具有 COMPLIANT 的修补程序合规性状态

说明:此控制检查 Amazon EC2 Systems Manager 修补程序符合性是否合规或实例上的修补程序安装后NON_COMPLIANT符合性状态。 它仅检查 AWS Systems Manager 修补程序管理器管理的实例。 它不检查修补程序是否在 PCI DSS 要求“6.2”规定的 30 天限制内应用。 它还不会验证应用的修补程序是否被归类为安全修补程序。 你应使用适当的基线设置创建修补组,并确保范围内的系统由 Systems Manager 中的这些修补程序组管理。 有关修补程序组的详细信息,请参阅 AWS Systems Manager 用户指南

严重性:中等

Amazon EFS 应配置为使用 AWS KMS 静态加密文件数据

说明:此控件检查 Amazon Elastic File System 是否配置为使用 AWS KMS 加密文件数据。 以下情况下,检查失败:*“Encrypted”在 DescribeFileSystems 响应中设置为“false”。 DescribeFileSystems 响应中的KmsKeyId”密钥与 efs-encrypted-检查 的 KmsKeyId 参数不匹配。 请注意,此控件不对 efs-encrypted-检查 使用“KmsKeyId”参数。 它仅检查“已加密”的值。 有关 Amazon EFS 中敏感数据的额外安全层,应创建加密文件系统。 Amazon EFS 支持静态加密文件系统。 你可以在创建 Amazon EFS 文件系统时启用静态数据加密。 若要了解有关 Amazon EFS 加密的详细信息,请参阅 Amazon Elastic File System 用户指南中 Amazon EFS 中的数据加密

严重性:中等

Amazon EFS 卷应在备份计划中

说明:此控制检查 Amazon Elastic File System (Amazon EFS) 文件系统是否添加到 AWS 备份中的备份计划。 如果备份计划中不包含 Amazon EFS 文件系统,则控制将失败。 在备份计划中包含 EFS 文件系统有助于保护数据不被删除以及数据丢失。

严重性:中等

应启用应用程序负载均衡器删除保护

说明:此控件检查应用程序负载均衡器是否已启用删除保护。 如果未配置删除保护,则控件将失败。 启用删除保护以防止删除应用程序负载均衡器。

严重性:中等

与负载均衡器关联的自动缩放组应使用运行状况检查

说明:与负载均衡器关联的自动缩放组正在使用弹性负载均衡运行状况检查。 PCI DSS 不需要负载均衡或高可用性配置。 AWS 最佳做法建议此操作。

严重性:低

AWS 帐户应已启用 Azure Arc 自动预配

说明:若要充分了解 Microsoft Defender for 服务器的安全内容,EC2 实例应连接到 Azure Arc。若要确保所有符合条件的 EC2 实例自动接收 Azure Arc,请在 AWS 帐户级别启用从 Defender for Cloud 自动预配。 详细了解 Azure Arc适用于服务器的 Microsoft Defender

严重性:高

CloudFront 分发应配置了源故障转移

说明:此控件检查是否使用具有两个或多个源的源组配置 Amazon CloudFront 分发。 CloudFront 源故障转移可以提高可用性。 如果主源不可用或返回特定的 HTTP 响应状态代码,则源故障转移会自动将流量重定向到辅助源。

严重性:中等

CodeBuild GitHub 或 Bitbucket 源存储库 URL 应使用 OAuth

说明:此控件检查 GitHub 或 Bitbucket 源存储库 URL 是否包含个人访问令牌或用户名和密码。 身份验证凭据绝不应以明文形式存储或传输,也不会显示在存储库 URL 中。 应使用 OAuth 授予访问 GitHub 或 Bitbucket 存储库的授权,而不是使用个人访问令牌或用户名和密码。 使用个人访问令牌或用户名和密码可能会在意外数据泄露和未经授权的访问中泄露凭据。

严重性:高

CodeBuild 项目环境变量不应包含凭据

说明:此控件检查项目是否包含环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。 身份验证凭据 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 不应以明文形式存储,因为这可能会导致意外数据泄露和未经授权的访问。

严重性:高

应静态加密 DynamoDB 加速器 (DAX) 群集

说明:此控件检查是否对 DAX 群集进行静态加密。 静态加密数据可降低未通过 AWS 身份验证的用户访问磁盘上存储的数据的风险。 加密添加另一组访问控制,以限制未经授权的用户访问数据的能力。 例如,需要在读取数据之前使用 API 权限对数据进行解密。

严重性:中等

DynamoDB 表应根据需要自动缩放容量

说明:此控制检查 Amazon DynamoDB 表是否可以根据需要缩放其读取和写入容量。 如果表使用按需容量模式或配置了自动缩放的预配模式,则此控件将通过。 根据需要缩放容量可避免限制异常,有助于保持应用程序的可用性。

严重性:中等

EC2 实例应连接到 Azure Arc

说明:将 EC2 实例连接 Azure Arc,以便完全了解 Microsoft Defender for Servers 安全内容。 了解有关 Azure Arc 的详细信息,以及关于混合云环境中的适用于服务器的 Microsoft Defender

严重性:高

EC2 实例应由 AWS Systems Manager 管理

说明:在实例上安装修补程序后,Amazon EC2 Systems Manager 修补程序符合性的状态为“COMPLIANCE”或“NON_COMPLIANT”。 仅检查 AWS Systems Manager 修补程序管理器管理的实例。 未检查 PCI DSS 要求“6”规定的 30 天限制内应用的修补程序。

严重性:中等

应在 EC2 上解决 EDR 配置问题

说明:若要保护虚拟机免受最新威胁和漏洞的影响,请解决已安装的终结点检测和响应(EDR)解决方案的所有已识别的配置问题。
注意:目前,此建议仅适用于已启用 Microsoft Defender for Endpoint (MDE) 的资源。

严重性:高

应在 EC2 上安装 EDR 解决方案

说明:若要保护 EC2,请安装终结点检测和响应(EDR)解决方案。 EDR 有助于阻止、检测、调查和响应高级威胁。 请使用 Microsoft Defender for Servers 部署 Microsoft Defender for Endpoint。 如果资源被归类为“不正常”,则它未安装受支持的 EDR 解决方案。 如果安装了无法通过此建议发现的 EDR 解决方案,则可以免除该解决方案。

严重性:高

由 Systems Manager 管理的实例的关联合规性状态应为 COMPLIANT

说明:此控制检查在实例上运行关联后 AWS Systems Manager 关联符合性的状态是合规还是NON_COMPLIANT。 如果关联合规性状态为 COMPLIANT,则此控件通过。 状态管理器关联是分配给托管实例的配置。 该配置定义要在实例上维护的状态。 例如,关联可以指定必须在实例上安装和运行防病毒软件,或者必须关闭某些端口。 创建一个或多个状态管理器关联后,你可在控制台中或响应 AWS CLI 命令或相应的系统管理器 API 操作中立即获取合规性状态信息。 对于关联,“配置”符合性显示符合性或不符合的状态,以及分配给关联(例如“严重”或“中等”)的严重性级别。 若要详细了解 State Manager 关联符合性,请参阅 AWS Systems Manager 用户指南中的“关于状态管理器关联符合性 ”。 你必须为 Systems Manager 关联配置范围内 EC2 实例。 还必须为修补程序供应商的安全分级配置修补程序基线,并设置自动批准日期以满足 PCI DSS 3.2.1 要求 6.2。 有关如何创建关联的详细信息指南,请参阅 AWS Systems Manager 用户指南中的“创建关联”。 有关在 Systems Manager 中使用修补的详细信息,请参阅 AWS Systems Manager 用户指南中的 AWS Systems Manager 修补程序管理器

严重性:低

Lambda 函数应配置有死信队列

说明:此控件检查是否配置了 Lambda 函数的死信队列。 如果没有为 Lambda 函数配置死信队列,则此控件将失败。 作为故障目标的替代方法,可以使用死信队列来配置函数,以便保存放弃的事件以供进一步处理。 死信队列的作用与故障目标相同。 当某个事件的所有处理尝试失败或未进行处理而过期,将使用死信队列。 使用死信队列可以回顾错误或对 Lambda 函数的失败请求,以便调试或识别异常行为。 从安全角度来看,务必了解函数失败的原因,并确保函数不会因此导致数据损坏或破坏数据安全。 例如,如果函数无法与基础资源通信,则这可能是网络中其他位置的拒绝服务 (DoS) 攻击的现象。

严重性:中等

Lambda 函数应使用受支持的运行时

说明:此控件检查运行时的 Lambda 函数设置与为每个语言支持的运行时设置的预期值匹配。 此控件检查以下运行时:nodejs14.x、nodejs12.x、nodejs10.xpython3.8python3.7、python3.6、ruby2.7ruby2.5java11java8、java8.al2go1.xdotnetcore3.1、dotnetcore2.1 Lambda 运行时围绕受维护和安全更新约束的操作系统、编程语言和软件库的组合而构建。 当不再支持运行时组件的安全更新程序时,Lambda 会弃用运行时。 即使无法创建使用已弃用的运行时的函数,该函数仍可用于处理调用事件。 确保 Lambda 函数是最新的,并且不使用过时的运行时环境。 若要详细了解此控件检查用于受支持语言的受支持运行时,请参阅 AWS Lambda 开发人员指南中的 AWS Lambda 运行时

严重性:中等

应通过即时网络访问控制来保护 EC2 实例的管理端口

说明:Microsoft Defender for Cloud 确定了网络中管理端口的某些过于宽松的入站规则。 启用即时访问控制,以保护实例免受基于 Internet 的暴力攻击。 了解详细信息

严重性:高

应删除未使用的 EC2 安全组

说明:安全组应附加到 Amazon EC2 实例或 ENI。 正常查找可能表明存在未使用的 Amazon EC2 安全组。

严重性:低

AWS 容器建议

[预览]AWS 注册表中的容器映像应已解决漏洞发现

说明:Defender for Cloud 会扫描注册表映像中的已知漏洞(CVE),并为每个扫描的映像提供详细的发现。 扫描和修正注册表中容器映像的漏洞有助于维护安全可靠的软件供应链,降低安全事件的风险,并确保符合行业标准。

严重性:高

类型:漏洞评估

[预览]AWS 中运行的容器应已解决漏洞发现

说明:Defender for Cloud 创建 Kubernetes 群集中当前运行的所有容器工作负荷的清单,并通过匹配所使用的映像以及为注册表映像创建的漏洞报告来为这些工作负荷提供漏洞报告。 扫描和修正容器工作负载的漏洞对于确保可靠且安全的软件供应链、降低安全事件的风险以及确保符合行业标准至关重要。

严重性:高

类型:漏洞评估

EKS 群集应将所需的 AWS 权限授予 Microsoft Defender for Cloud

说明:Microsoft Defender for Containers 为 EKS 群集提供保护。 若要监视群集中的安全漏洞和威胁,Defender for Containers 需要 AWS 帐户的权限。 这些权限用于在群集上启用 Kubernetes 控制平面日志记录,并在群集与 Cloud 中的 Defender for Cloud 后端之间建立可靠管道。 详细了解 Microsoft Defender for Cloud 针对容器化环境的安全功能

严重性:高

EKS 群集应已安装 Microsoft Defender 的 Azure Arc 扩展

说明:Microsoft Defender 的 群集扩展 为 EKS 群集提供安全功能。 该扩展从群集及其节点收集数据,以识别安全漏洞和威胁。 此扩展适用于支持 Azure Arc 的 Kubernetes。 详细了解 Microsoft Defender for Cloud 针对容器化环境的安全功能

严重性:高

应在 AWS 连接器上启用 Microsoft Defender for Containers

说明:Microsoft Defender for Containers 为容器化环境提供实时威胁防护,并生成有关可疑活动的警报。 使用此信息加强 Kubernetes 群集的安全性,并修正安全问题。

重要说明:启用 Microsoft Defender for Containers 并将 Azure Arc 部署到 EKS 群集时,保护和费用将开始。 如果未在群集上部署 Azure Arc,Defender for Containers 不会对其进行保护,并且该群集的此 Microsoft Defender 计划不会产生任何费用。

严重性:高

数据平面建议

为 Kubernetes 启用 Azure Policy for Kubernetes 后,AWS 支持所有 Kubernetes 数据平面安全建议。

AWS 数据建议

Amazon Aurora 群集应已启用回溯

说明:此控制检查 Amazon Aurora 群集是否已启用回溯。 备份有助于更快地从安全事件中恢复。 它们还可以增强系统的复原能力。 Aurora 回溯可减少将数据库恢复到某个时间点的时间。 它不需要进行数据库还原。 有关 Aurora 中回溯的详细信息,请参阅 Amazon Aurora 用户指南中的 Aurora DB 群集上的回溯

严重性:中等

Amazon EBS 快照应不可公开恢复

说明:除非明确允许,否则 Amazon EBS 快照不应被所有人公开还原,以避免意外泄露数据。 此外,更改 Amazon EBS 配置的权限应该仅限于授权的 AWS 帐户。

严重性:高

Amazon ECS 任务定义应具有安全网络模式和用户定义

说明:此控件检查具有主机网络模式的活动 Amazon ECS 任务定义是否也具有特权或用户容器定义。 对于具有主机网络模式的任务定义和 privileged=false 或为空,user=root 或为空的容器定义,此控件失败。 如果任务定义具有提升的权限,是因为客户专门选择了该配置。 当任务定义启用了主机网络但客户未选择提升的权限时,此控制检查意外的特权升级。

严重性:高

Amazon Elasticsearch Service 域应加密在节点之间发送的数据

说明:此控制检查 Amazon ES 域是否启用了节点到节点加密。 可以使用 HTTPS (TLS) 来帮助防止潜在攻击者使用用户中间人或类似的攻击来窃听或操作网络流量。 应仅允许通过 HTTPS (TLS) 进行加密连接。 为 Amazon ES 域启用节点到节点加密可确保在传输中加密群集内通信。 此配置可能会对性能产生负面影响。 启用此选项前,应注意并测试性能权衡。

严重性:中等

Amazon Elasticsearch Service 域应启用静态加密

说明:启用 Amazon ES 域的其余部分加密以保护敏感数据非常重要

严重性:中等

应使用客户管理的密钥对 Amazon RDS 数据库进行加密

说明:此检查标识使用默认 KMS 密钥而不是客户托管密钥加密的 RDS 数据库。 作为一种先进的做法,请使用客户管理的密钥加密 RDS 数据库中的数据,并保持对敏感工作负载上的密钥和数据的控制。

严重性:中等

应使用自动备份设置配置 Amazon RDS 实例

说明:此检查标识未使用自动备份设置设置的 RDS 实例。 如果设置了自动备份,RDS 将创建数据库实例的存储卷快照,即备份整个数据库实例,而不仅仅是单个数据库,这样可以提供时间点恢复。 自动备份发生在指定的备份时段时间,并将备份保留期中定义的有限时间段内。 建议为关键 RDS 服务器设置自动备份,以帮助数据还原过程。

严重性:中等

Amazon Redshift 群集应启用审核日志记录

说明:此控制检查 Amazon Redshift 群集是否启用了审核日志记录。 Amazon Redshift 审核日志记录提供有关群集中连接和用户活动的附加信息。 此数据可在 Amazon S3 中进行存储和保护,对安全审核和调查非常有用。 有关详细信息,请参阅 Amazon Redshift 群集管理指南中的数据库审核日志记录

严重性:中等

Amazon Redshift 群集应启用自动快照

说明:此控制检查 Amazon Redshift 群集是否已启用自动快照。 它还检查快照保持期是否大于或等于 7。 备份有助于更快地从安全事件中恢复。 它们增强了系统的复原能力。 默认情况下,Amazon Redshift 定期拍摄快照。 此控件检查是否已启用自动快照并且至少保留 7 天。 有关 Amazon Redshift 自动化快照的详细信息,请参阅 Amazon Redshift 群集管理指南中的自动快照

严重性:中等

Amazon Redshift 群集应禁止公共访问

说明:建议 Amazon Redshift 群集通过评估群集配置项目中的“publiclyAccessible”字段来避免公共可访问性。

严重性:高

Amazon Redshift 应启用自动升级到主版本

说明:此控制检查是否为 Amazon Redshift 群集启用自动主版本升级。 启用主版本自动升级可确保在维护时段内安装 Amazon Redshift 群集的最新主版本更新。 这些更新可能包括安全修补程序和 bug 修补程序。 使用修补程序安装保持最新版本是保护系统的一个重要步骤。

严重性:中等

Amazon SQS 队列应静态加密

说明:此控制检查 Amazon SQS 队列是否静态加密。 服务器端加密 (SSE) 使你能够在加密队列中传输敏感数据。 为了保护队列中的消息内容,SSE 使用 AWS KMS 中管理的密钥。 有关详细信息,请参阅 Amazon Simple Queue Service 开发人员指南中的 静态加密

严重性:中等

应为重要群集事件配置 RDS 事件通知订阅

说明:此控件检查是否存在为以下源类型、事件类别键值对启用了通知的 Amazon RDS 事件订阅。 DBCluster: ["maintenance" 和 "failure"]。 RDS 事件通知使用 Amazon SNS 让你了解 RDS 资源的可用性或配置发生的更改。 这些通知允许快速响应。 有关 RDS 事件通知的更多信息,请参阅 Amazon RDS 用户指南中的“使用 Amazon RDS 事件通知”

严重性:低

应为重要数据库实例事件配置 RDS 事件通知订阅

说明:此控件检查是否存在 Amazon RDS 事件订阅,同时为以下源类型启用通知。 事件订阅。 DBInstance: ["maintenance"、"configuration change" 和 "failure"]。 RDS 事件通知使用 Amazon SNS 让你了解 RDS 资源的可用性或配置发生的更改。 这些通知允许快速响应。 有关 RDS 事件通知的更多信息,请参阅 Amazon RDS 用户指南中的“使用 Amazon RDS 事件通知”

严重性:低

应为关键数据库实例参数组配置 RDS 事件通知订阅

说明:此控件检查是否存在 Amazon RDS 事件订阅,同时为以下源类型启用通知。 事件订阅。 DBParameterGroup: ["configuration"、"change"]。 RDS 事件通知使用 Amazon SNS 让你了解 RDS 资源的可用性或配置发生的更改。 这些通知允许快速响应。 有关 RDS 事件通知的更多信息,请参阅 Amazon RDS 用户指南中的“使用 Amazon RDS 事件通知”

严重性:低

应为关键数据库安全组事件配置 RDS 事件通知订阅

说明:此控件检查是否存在 Amazon RDS 事件订阅,同时为以下源类型、事件类别键值对启用通知。DBSecurityGroup: [“configuration”,“change”,“failure”]。 RDS 事件通知使用 Amazon SNS 让你了解 RDS 资源的可用性或配置发生的更改。 这些通知允许快速响应。 有关 RDS 事件通知的更多信息,请参阅 Amazon RDS 用户指南中的“使用 Amazon RDS 事件通知”

严重性:低

应启用 API Gateway REST 和 WebSocket API 日志记录

说明:此控制检查 Amazon API 网关 REST 或 WebSocket API 的所有阶段是否已启用日志记录。 如果没有为某一阶段的所有方法启用日志记录,或者日志记录级别既不是 ERROR 也不是 INFO,则此控件失败。 API Gateway REST 或 WebSocket API 阶段应启用相关日志。 API Gateway REST 和 WebSocket API 执行日志记录提供对 API Gateway REST 和 WebSocket API 阶段发出的请求的详细记录。 这些阶段包括 API 集成后端响应、Lambda 授权者响应以及 AWS 集成终结点的 requestId。

严重性:中等

API Gateway REST API 缓存数据应进行静态加密

说明:此控制检查是否加密已启用缓存的 API 网关 REST API 阶段中的所有方法。 如果 API Gateway REST API 阶段中的任一方法配置为缓存且未加密缓存,则此控件失败。 静态加密数据可降低未通过 AWS 身份验证的用户访问磁盘上存储的数据的风险。 它添加了另一组访问控制,以限制未经授权的用户访问数据。 例如,需要在读取数据之前使用 API 权限对数据进行解密。 API Gateway REST API 缓存应该静态加密,以提供额外的安全层。

严重性:中等

API Gateway REST API 阶段应配置为使用 SSL 证书进行后端身份验证

说明:此控制检查 Amazon API 网关 REST API 阶段是否配置了 SSL 证书。 后端系统使用这些证书对 API Gateway 中传入的请求进行身份验证。 API Gateway REST API 阶段应配置 SSL 证书,以允许后端系统对来自 API Gateway 的请求进行身份验证。

严重性:中等

API Gateway REST API 阶段应启用 AWS X-Ray 跟踪

说明:此控制检查是否为 Amazon API 网关 REST API 阶段启用了 AWS X-Ray 活动跟踪。 使用 X Ray 活动跟踪可以更快地响应底层基础结构中的性能变化。 性能的变化可能会导致 API 的可用性不足。 X-Ray 活动跟踪提供流经 API Gateway REST API 操作和连接服务的用户请求的实时指标。

严重性:低

API Gateway 应与 AWS WAF Web ACL 相关联

说明:此控制检查 API 网关阶段是否使用 AWS WAF Web 访问控制列表(ACL)。 如果 AWS WAF Web ACL 未连接到 REST API 网关阶段,则此控件失败。 AWS WAF 是一种 Web 应用程序防火墙,可帮助防止 Web 应用和 API 遭受攻击。 它使你能够配置 ACL,该 ACL 是一组规则,根据你定义的可自定义 Web 安全规则和条件允许、阻止 Web 请求,或对 Web 请求进行计数。 确保 API Gateway 阶段与 AWS WAF Web ACL 相关联,以帮助防止其受到恶意攻击。

严重性:中等

应启用应用程序和传统负载均衡器日志记录

说明:此控件检查应用程序负载均衡器和经典负载均衡器是否已启用日志记录。 如果 access_logs.s3.enabled 为 false,则控件将失败。 弹性负载均衡提供访问日志,捕获有关发送到负载均衡器的请求的详细信息。 每个日志都包含一些信息,例如收到请求的时间、客户端的 IP 地址、延迟、请求路径和服务器响应。 可使用这些访问日志来分析流量模式并解决问题。 若要了解详细信息,请参阅传统负载均衡器用户指南中的访问传统负载均衡器的日志

严重性:中等

附加的 EBS 卷应进行静态加密

说明:此控制检查是否加密处于附加状态的 EBS 卷。 要通过此检查,EBS 卷必须处于使用中状态且已加密。 如果未附加 EBS 卷,则不受此检查的约束。 应静态加密 EBS 以实现 EBS 卷中敏感数据的额外安全层。 Amazon EBS 加密为 EBS 资源提供了一个简单的加密解决方案,无需构建、维护和保护你自己的密钥管理基础结构。 创建加密卷和快照时,它使用 AWS KMS 客户主密钥 (CMK)。 若要了解有关 Amazon EBS 加密的详细信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 AMAZON EBS 加密

严重性:中等

AWS 数据库迁移服务复制实例不得为公共实例

说明:保护副本 (replica)的实例免受威胁。 专用复制实例应该具有无法在复制网络外部访问的专用 IP 地址。 当源数据库和目标数据库位于同一网络中时,复制实例应具有专用 IP 地址,并且可使用 VPN、AWS Direct Connect 或 VPC 对等互连将网络连接到复制实例的 VPC。 还应确保仅向授权用户授予对 AWS DMS 实例配置的访问权限。 为此,请限制用户的 IAM 权限以修改 AWS DMS 设置和资源。

严重性:高

传统负载均衡器侦听器应配置 HTTPS 或 TLS 终止

说明:此控制检查经典负载均衡器侦听器是使用 HTTPS 还是 TLS 协议来配置前端(客户端到负载均衡器)连接。 如果传统负载均衡器具有侦听器,则该控件适用。 如果传统负载均衡器未配置侦听器,则该控件不会报告任何发现。 如果为传统负载均衡器侦听器配置了 TLS 或 HTTPS 进行前端连接,则此控件通过。 如果没有为侦听器配置 TLS 或 HTTPS 机芯前端连接,则此控件失败。 开始使用负载均衡器之前,必须添加一个或多个侦听器。 侦听器是使用配置的协议和端口来检查连接请求的进程。 侦听器可以同时支持 HTTP 和 HTTPS/TLS 协议。 应始终使用 HTTPS 或 TLS 侦听器,以使负载均衡器在传输过程中执行加密和解密操作。

严重性:中等

传统负载均衡器应启用连接排出

说明:此控件检查经典负载均衡器是否启用了连接排出。 在经典负载均衡器上启用连接清空可确保负载均衡器停止向正在取消注册或运行不正常的实例发送请求。 这会使现有连接保持打开状态。 这对于自动缩放组中的实例很有用,以确保不会突然断开连接。

严重性:中等

CloudFront 分发应启用 AWS WAF

说明:此控件检查 CloudFront 分发是否与 AWS WAF 或 AWS WAFv2 Web ACL 相关联。 如果分发不与 Web ACL 相关联,则此控件失败。 AWS WAF 是一种 Web 应用程序防火墙,可帮助防止 Web 应用和 API 遭受攻击。 它允许配置一组名为 Web 访问控制列表 (Web ACL) 的规则,可根据你定义的可自定义 Web 安全规则和条件允许、阻止 Web 请求,或对 Web 请求进行计数。 确保 CloudFront 分布与 AWS WAF web ACL 相关联,帮助防止恶意攻击。

严重性:中等

CloudFront 分发应启用日志记录

说明:此控制检查是否在 CloudFront 分发中启用服务器访问日志记录。 如果没有为分发启用访问日志记录,则此控件将失败。 CloudFront 访问日志提供 CloudFront 接收的每个用户请求的详细信息。 每个日志都包含收到请求的日期和时间、发出请求的查看器的 IP 地址、请求的源以及查看器发出的请求的端口号等信息。 这些日志适用于安全和访问审核以及取证调查等应用程序。 有关如何分析访问日志的详细信息,请参阅 Amazon Athena 用户指南中的查询 Amazon CloudFront 日志。

严重性:中等

CloudFront 分发要求在传输过程中加密

说明:此控件检查 Amazon CloudFront 分发是否要求查看者直接使用 HTTPS,还是使用重定向。 对于 defaultCacheBehavior 或 cacheBehaviors,如果将 ViewerProtocolPolicy 设置为 allow-all,则此控件失败。 HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人或类似的攻击来窃听或操作网络流量。 应仅允许通过 HTTPS (TLS) 进行加密连接。 加密传输中的数据可能会影响性能。 你应利用此功能对应用程序进行测试,以了解性能配置文件和 TLS 的影响。

严重性:中等

应使用 KMS CMK 对 CloudTrail 日志进行静态加密

说明:建议将 CloudTrail 配置为使用 S标准版-KMS。 将 CloudTrail 配置为使用 SSE-KMS 提供针对日志数据的其他机密性控制,因为给定用户必须对相应的日志存储桶具有 S3 读取权限,并且必须通过 CMK 策略授予其解密权限。

严重性:中等

应在传输过程中加密与 Amazon Redshift 群集的连接

说明:此控制检查是否需要连接到 Amazon Redshift 群集才能在传输中使用加密。 如果 Amazon Redshift 群集参数require_SSL未设置为 1,则检查将失败。 TLS 可用于帮助防止潜在攻击者使用中间人或类似的攻击来窃听或操作网络流量。 应只允许使用通过 TLS 加密的连接。 加密传输中的数据可能会影响性能。 你应利用此功能对应用程序进行测试,以了解性能配置文件和 TLS 的影响。

严重性:中等

应使用 TLS 1.2 加密与 Elasticsearch 域的连接

说明:此控件检查是否需要使用 TLS 1.2 连接到 Elasticsearch 域。 如果 Elasticsearch 域 TLSSecurityPolicy 不是 Policy-Min-TLS-1-2-2019-07,则该检查失败。 HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人或类似的攻击来窃听或操作网络流量。 应仅允许通过 HTTPS (TLS) 进行加密连接。 加密传输中的数据可能会影响性能。 你应利用此功能对应用程序进行测试,以了解性能配置文件和 TLS 的影响。 TLS 1.2 在以前的 TLS 版本上提供了多项安全增强功能。

严重性:中等

DynamoDB 表应启用时间点恢复

说明:此控制检查是否为 Amazon DynamoDB 表启用时间点恢复(PITR)。 备份有助于更快地从安全事件中恢复。 它们还可以增强系统的复原能力。 DynamoDB 时点恢复自动执行 DynamoDB 表的备份。 它可减少从意外删除或写入操作中恢复的时间。 启用了 PITR 的 DynamoDB 表可以还原到过去 35 天内的任何时间点。

严重性:中等

应启用 EBS 默认加密

说明:此控制检查是否为 Amazon Elastic Block Store(Amazon EBS)默认启用帐户级加密。 如果未启用帐户级别的加密,则此控件失败。 为帐户启用加密时,Amazon EBS 卷和快照副本将静态加密。 这会为数据添加另一层保护。 有关详细信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的默认加密。 请注意,以下实例类型不支持加密:R1、C1 和 M1。

严重性:中等

Elastic Beanstalk 环境应启用增强型运行状况报告

说明:此控制检查是否为 AWS Elastic Beanstalk 环境启用了增强的运行状况报告。 通过 Elastic Beanstalk 增强运行状况报告,可以更快地响应底层基础结构的运行状况更改。 这些更改可能导致应用程序的可用性不足。 Elastic Beanstalk 增强运行状况报告提供状态描述符来衡量已识别问题的严重性,并确定要调查的可能原因。 受支持的 Amazon Machine Image (AMI) 中包含的 Amazon Beanstalk 运行状况代理可评估 EC2 实例环境的日志和指标。

严重性:低

应启用 Elastic Beanstalk 托管平台更新

说明:此控制检查是否为 Elastic Beanstalk 环境启用托管平台更新。 启用托管平台更新可确保安装了适用于环境的最新可用平台修补程序、更新和功能。 使用修补程序安装保持最新版本是保护系统的一个重要步骤。

严重性:高

弹性负载均衡器不应具有已过期或在 90 天内过期的 ACM 证书。

说明:此检查标识使用 ACM 证书的弹性负载均衡器(ELB)在 90 天内过期或过期。 AWS 证书管理器 (ACM) 是预置、管理和部署服务器证书的首选工具。 使用 ACM,可以请求证书或将现有的 ACM 或外部证书部署到 AWS 资源。 作为最佳做法,建议重新导入即将过期/过期的证书,同时保留原始证书的 ELB 关联。

严重性:高

应启用 Elasticsearch 域错误日志记录到 CloudWatch Logs

说明:此控件检查 Elasticsearch 域是否配置为将错误日志发送到 CloudWatch 日志。 应为 Elasticsearch 域启用错误日志,并将这些日志发送到 CloudWatch Logs 以进行保留和响应。 域错误日志可帮助进行安全和访问审核,有助于诊断可用性问题。

严重性:中等

Elasticsearch 域应至少配置三个专用主节点

说明:此控制检查 Elasticsearch 域是否配置了至少三个专用主节点。 如果域不使用专用主节点,此控件将失败。 如果 Elasticsearch 域有五个专用主节点,则此控件通过。 但是,可能不需要使用三个以上主节点来缓解可用性风险,这会产生更高的成本。 Elasticsearch 域至少需要三个专用主节点,确保高可用性和容错能力。 在数据节点蓝/绿部署期间,专用主节点资源可能会受到压力,因为需要管理更多节点。 部署至少包含三个专用主节点的 Elasticsearch 域可确保在节点发生故障时有足够的主节点资源容量和群集操作。

严重性:中等

Elasticsearch 域应至少有三个数据节点

说明:此控制检查 Elasticsearch 域是否配置了至少三个数据节点,zoneAwarenessEnabled 是否为 true。 Elasticsearch 域至少需要三个数据节点,确保高可用性和容错能力。 部署至少包含三个数据节点的 Elasticsearch 域可确保在节点发生故障时执行群集操作。

严重性:中等

Elasticsearch 域应启用审核日志记录

说明:此控制检查 Elasticsearch 域是否启用了审核日志记录。 如果 Elasticsearch 域未启用审核日志记录,则此控件失败。 审核日志高度可自定义。 它们允许你跟踪 Elasticsearch 群集上的用户活动,包括身份验证成功和失败、请求OpenSearch、索引更改和传入搜索查询。

严重性:中等

应为 RDS DB 实例和群集配置增强监视

说明:此控制检查是否为 RDS DB 实例启用了增强型监视。 在 Amazon RDS 中,增强型监视可以更快速响应底层基础结构中的性能变化。 这些性能更改可能会导致数据可用性不足。 增强型监视提供运行 RDS DB 实例的操作系统的实时指标。 在实例上安装代理。 代理可以获取比虚拟机监控程序层中的指标更准确的指标。 当你想要了解 DB 实例上的不同进程或线程如何使用 CPU 时,增强型监视指标非常有用。 有关详细信息,请参阅 Amazon RDS 用户指南中的增强型监视

严重性:低

请确保为客户创建的 CMK 启用了轮换

说明:AWS 密钥管理服务(KMS)允许客户轮换后盾密钥,这是存储在 KMS 中的密钥材料,该密钥与客户创建的客户主密钥(CMK)的密钥 ID 相关联。 它是用于执行加密操作(如加密和解密)的后备密钥。 自动密钥轮换当前保留所有以前的后备密钥,因此可以透明方式解密加密数据。 建议启用 CMK 密钥轮换。 轮换加密密钥有助于降低已泄露密钥的潜在影响,因为使用新密钥加密的数据无法使用可能公开的前一个密钥进行访问。

严重性:中等

请确保在 CloudTrail S3 存储桶上启用了 S3 存储桶访问日志记录

说明:S3 存储桶访问日志记录生成一个日志,其中包含访问记录,确保针对向 S3 存储桶发出的每个请求在 CloudTrail S3 存储桶上启用 S3 存储桶访问日志记录。 访问日志记录包含有关请求的详细信息,例如请求类型、请求中指定的资源以及处理请求的时间和日期。 建议在 CloudTrail S3 存储桶上启用存储桶访问日志记录。 通过在目标 S3 存储桶上启用 S3 存储桶日志记录,可以捕获所有事件,这可能会影响目标存储桶中的对象。 将日志配置为放置在单独的存储桶中后,可以访问日志信息,这些信息在安全和事件响应工作流中非常有用。

严重性:低

确保用于存储 CloudTrail 日志的 S3 存储桶不可公开访问

说明:CloudTrail 记录 AWS 帐户中发出的每个 API 调用的记录。 这些日志文件存储在 S3 存储桶中。 建议将存储桶策略或访问控制列表(ACL)应用于 CloudTrail 日志的 S3 存储桶,以防止公共访问 CloudTrail 日志。 允许公共访问 CloudTrail 日志内容可能有助于攻击者识别受影响帐户使用或配置中的弱点。

严重性:高

IAM 不应具有过期的 SSL/TLS 证书

说明:此检查标识过期的 SSL/TLS 证书。 要在 AWS 中启用与你的网站或应用程序的 HTTPS 连接,需要 SSL/TLS 服务器证书。 可以使用 ACM 或 IAM 来存储和部署服务器证书。 删除过期的 SSL/TLS 证书可消除将无效证书意外部署到 AWS 弹性负载均衡器 (ELB) 等资源的风险,这可能会损害基于 ELB 的应用程序/网站的可信度。 如果 AWS IAM 中存储了任何过期的 SSL/TLS 证书,这项检查将生成警报。 作为最佳做法,建议删除过期的证书。

严重性:高

应在指定的时间段后续订导入的 ACM 证书

说明:此控制检查帐户中的 ACM 证书是否在 30 天内标记为过期。 它检查导入的证书和 AWS 证书管理器提供的证书。 ACM 可以自动续订使用 DNS 验证的证书。 对于使用电子邮件验证的证书,必须响应域验证电子邮件。 ACM 不会自动续订导入的证书。 必须手动续订导入的证书。 有关 ACM 证书托管续订的详细信息,请参阅 AWS 证书管理器用户指南中的 ACM 证书的托管续订

严重性:中等

应调查帐户中的过度预配标识,以减少权限蠕变索引 (PCI)

说明:应调查订阅中的过度预配标识,以减少权限蠕变指数 (PCI),并保护基础结构。 通过移除未使用的高风险权限分配来减少 PCI。 高 PCI 反映了与具有超出正常或所需使用权限的标识相关的风险。

严重性:中等

应启用 RDS 自动次要版本升级

说明:此控制检查是否为 RDS 数据库实例启用自动次要版本升级。 启用自动次要版本升级可确保已安装关系数据库管理系统 (RDBMS) 的最新次要版本更新。 这些升级可能包括安全修补程序和 bug 修复。 使用修补程序安装保持最新版本是保护系统的一个重要步骤。

严重性:高

应静态加密 RDS 群集快照和数据库快照

说明:此控件检查是否加密 RDS DB 快照。 此控件适用于 RDS DB 实例。 但是,它还可生成有关 Aurora DB 实例、Neptune DB 实例和 Amazon DocumentDB 群集的快照的发现结果。 如果这些发现没有用,可以禁止显示它们。 静态加密数据可以降低未经身份验证的用户访问存储在磁盘上的数据的风险。 RDS 快照中的数据应进行静态加密,以实现额外的安全层。

严重性:中等

RDS 群集应启用删除保护

说明:此控制检查 RDS 群集是否已启用删除保护。 此控件适用于 RDS DB 实例。 但是,它还可生成有关 Aurora DB 实例、Neptune DB 实例和 Amazon DocumentDB 群集的发现结果。 如果这些发现没有用,可以禁止显示它们。 启用群集删除保护是防止未经授权的实体意外删除或删除数据库的另一层保护。 启用删除保护后,无法删除 RDS 群集。 必须先禁用删除保护,然后才能成功执行删除请求。

严重性:低

应为多个可用性区域配置 RDS DB 群集

说明:应为存储的多个数据配置 RDS DB 群集。 部署到多个可用性区域,允许自动化可用性区域,以确保发生可用性区域可用性问题时和常规 RDS 维护事件期间进行故障转移的可用性。

严重性:中等

应将 RDS DB 群集配置为将标记复制到快照

说明:识别和库存 IT 资产是治理和安全的关键方面。 你需要了解所有 RDS DB 群集,以便评估其安全状况,并采取潜在漏洞措施。 快照的标记方式应与它们的父 RDS 数据库群集相同。 启用此设置可确保快照继承其父数据库群集的标记。

严重性:低

应配置 RDS DB 实例,将标记复制到快照

说明:此控件检查 RDS DB 实例是否配置为在创建快照时将所有标记复制到快照。 标识和盘存 IT 资产是治理和安全性的一个重要方面。 你需要了解所有 RDS DB 实例,以便评估其安全状况,并针对潜在的漏洞区域采取措施。 快照的标记方式应与它们的父 RDS 数据库实例相同。 启用此设置可确保快照继承其父数据库实例的标记。

严重性:低

RDS DB 实例应配置多个可用性区域

说明:此控制检查是否为 RDS DB 实例启用高可用性。 应为多个可用性区域 (AZ) 配置 RDS DB 实例。 这可确保存储数据的可用性。 如果可用性区域可用性和常规 RDS 维护期间出现问题,多 AZ 部署允许自动故障转移。

严重性:中等

RDS DB 实例应启用删除保护

说明:此控制检查是否启用了使用其中一个列出的数据库引擎的 RDS DB 实例已启用删除保护。 启用实例删除保护是防止未经授权的实体意外删除或删除数据库的另一层保护。 启用删除保护时,无法删除 RDS DB 实例。 必须先禁用删除保护,然后才能成功执行删除请求。

严重性:低

RDS DB 实例应启用静态加密

说明:此控制检查是否为 Amazon RDS DB 实例启用存储加密。 此控件适用于 RDS DB 实例。 但是,它还可生成有关 Aurora DB 实例、Neptune DB 实例和 Amazon DocumentDB 群集的发现结果。 如果这些发现没有用,可以禁止显示它们。 对于 RDS DB 实例中的敏感数据的额外安全层,应将 RDS DB 实例配置为静态加密。 若要静态加密 RDS DB 实例和快照,请为 RDS DB 实例启用加密选项。 静态加密的数据包括 DB 实例的基础存储、自动备份、只读副本和快照。 RDS 加密的 DB 实例使用开放标准 AES-256 加密算法来加密托管 RDS DB 实例的服务器上的数据。 加密数据后,Amazon RDS 会以透明方式处理对数据的访问和解密,同时对性能的影响最小。 无需修改数据库客户端应用程序就可以使用加密。 Amazon RDS 加密当前适用于所有数据库引擎和存储类型。 Amazon RDS 加密适用于大多数 DB 实例类。 若要了解不支持 Amazon RDS 加密的 DB 实例类,请参阅Amazon RDS 用户指南中的加密 Amazon RDS 资源

严重性:中等

RDS DB 实例应禁止公共访问

说明:建议还通过限制用户的 IAM 权限来修改 RDS 实例的设置和资源,确保仅对 RDS 实例配置的访问权限限制为已授权用户。

严重性:高

RDS 快照应禁止公共访问

说明:建议仅允许授权主体访问快照并更改 Amazon RDS 配置。

严重性:高

删除未使用的 Secrets Manager 机密

说明:此控件检查指定天数内是否访问了机密。 默认值为 90 天。 如果在定义的天数内未访问密钥,则此控件失败。 删除未使用的机密与轮换机密一样重要。 未使用的机密可能会被不再需要访问这些机密的前用户滥用。 此外,随着越来越多的用户获得对机密的访问权限,有人可能会处理不当,将其泄漏给未经授权的实体,这会增加滥用的风险。 删除未使用的机密有助于对不再需要密钥访问权限的用户撤销密钥的访问权限。 它还有助于降低使用 Secrets Manager 的成本。 因此,必须定期删除未使用的机密。

严重性:中等

S3 存储桶应启用跨区域复制

说明:启用 S3 跨区域副本 (replica)可确保不同区域提供多个版本的数据。 这使你可以针对 DDoS 攻击和数据损坏事件保护 S3 存储桶。

严重性:低

S3 存储桶应启用服务器端加密

说明:启用服务器端加密来保护 S3 存储桶中的数据。 如果数据被破坏,对数据进行加密可防止对敏感数据的访问。

严重性:中等

配置了自动轮换的机密管理器机密应能成功轮换

说明:此控件检查是否根据轮换计划成功轮换 AWS 机密管理器机密。 如果RotationOccurringAsScheduled 为 false,则此控件失败。 该控件不会评估未配置轮换的机密。 Secrets Manager 有助于提高组织的安全状况。 机密包含数据库凭据、密码和第三方 API 密钥。 你可以使用 Secrets Manager 集中存储机密、自动加密机密、控制对机密的访问,以及安全地自动轮换机密。 Secrets Manager 可以轮换机密。 可以使用轮换将长期机密替换为短期机密。 轮换机密会限制未经授权的用户可以使用已泄露机密的时间。 出于此原因,你应该经常轮换机密。 除了将机密配置为自动轮换,还应确保这些机密根据轮换计划成功轮换。 若要详细了解轮换,请参阅 AWS Secrets Manager 用户指南中的轮换 AWS Secrets Manager 机密

严重性:中等

Secrets Manager 机密应在指定天数内轮换

说明:此控件检查你的机密是否在 90 天内至少轮换一次。 轮换密钥可以帮助降低 AWS 帐户中未经授权使用机密的风险。 示例包括数据库凭据、密码、第三方 API 密钥,甚至任意文本。 如果你长时间未更改机密,则机密更有可能受到入侵。 当更多用户访问某个机密时,可能更可能有人将其处理不当并泄漏给未经授权的实体。 可以通过日志和缓存数据泄露机密。 它们可出于调试目的而共享,并且在调试完成后不会更改或撤消。 出于上述所有原因,机密应该经常轮换。 你可以在 AWS Secrets Manager 中配置机密以进行自动轮换。 通过自动轮换,你可以将长期机密替换为短期机密,从而大大降低泄露的风险。 Security Hub 建议为 Secrets Manager 机密启用轮换。 若要详细了解轮换,请参阅 AWS Secrets Manager 用户指南中的轮换 AWS Secrets Manager 机密

严重性:中等

应使用 AWS KMS 对 SNS 主题进行静态加密

说明:此控件检查是否使用 AWS KMS 对 SNS 主题进行静态加密。 静态加密数据可降低未通过 AWS 身份验证的用户访问磁盘上存储的数据的风险。 它还添加另一组访问控制,以限制未经授权的用户访问数据的能力。 例如,需要在读取数据之前使用 API 权限对数据进行解密。 应 对 SNS 主题进行静态 加密,以增加安全层。 有关详细信息,请参阅 Amazon Simple Notification Service 开发人员指南中的 静态加密。

严重性:中等

应在所有 VPC 中启用 VPC 流日志记录

说明:通过VP 传递的网络流量提供对网络流量的可见性,并可用于检测安全事件期间的异常流量或见解。

严重性:中等

AWS IdentityAndAccess 建议

Amazon Elasticsearch Service 域应在 VPC 中

说明:无法包含具有公共终结点的域。 注意:这不会评估用于确定公共可访问性的VP子网路由配置。

严重性:高

应限制向存储桶策略中其他 AWS 帐户授予 Amazon S3 权限

说明:实现最低特权访问是降低安全风险和错误或恶意意图影响的基础。 如果 S3 存储桶策略允许来自外部帐户的访问,则可能会导致内部威胁或攻击者引起的数据外泄。 “blacklistedactionpatterns”参数允许成功评估 S3 存储桶的规则。 该参数授予对未包含在“blacklistedactionpatterns”列表中的操作模式的外部帐户的访问权限。

严重性:高

请避免使用“根”帐户

说明:“根”帐户对 AWS 帐户中的所有资源具有无限制的访问权限。 强烈建议避免使用此帐户。 “根”帐户是特权最高的 AWS 帐户。 尽量减少使用此帐户并采用最低权限原则进行访问管理,可降低意外更改和意外泄露高特权凭据的风险。

严重性:高

AWS KMS 密钥不应被意外删除

说明:此控件检查是否计划删除 KMS 密钥。 如果计划删除 KMS 密钥,则此控件失败。 删除 KMS 密钥后无法恢复。 如果删除 KMS 密钥,KMS 密钥下的加密数据也永久不可恢复。 如果在计划删除的 KMS 密钥下加密了有意义的数据,请考虑解密数据或在新的 KMS 密钥下重新加密数据,除非有意执行加密擦除。 如果删除 KMS 密钥,则执行一个强制等待期,以便在计划有误的情况下留出时间来撤消删除。 默认等待期为 30 天,但在计划删除 KMS 密钥时,可以缩短为 7 天。 在等待期间,可以取消计划的删除,并且不会删除 KMS 密钥。 有关删除 KMS 密钥的详细信息,请参阅 AWS 密钥管理服务开发人员指南中的“删除 KMS 密钥”。

严重性:高

应启用 AWS WAF 经典全局 Web ACL 日志记录

说明:此控件检查是否为 AWS WAF 全局 Web ACL 启用日志记录。 如果未为 Web ACL 启用日志记录,则此控件将失败。 日志记录是在全局范围内维护 AWS WAF 的可靠性、可用性和性能的重要组成部分。 这是许多组织中的业务和合规性要求,可用于对应用程序行为进行故障排除。 它还提供有关附加到 AWS WAF 的 Web ACL 所分析流量的详细信息。

严重性:中等

CloudFront 分发应配置默认根对象

说明:此控件检查是否将 Amazon CloudFront 分发配置为返回默认根对象的特定对象。 如果 CloudFront 分发未配置默认根对象,则控件将失败。 用户有时可能会请求分发根 URL,而不是分发中的对象。 发生这种情况时,指定默认根对象可帮助避免公开 Web 分发的内容。

严重性:高

CloudFront 分发应启用源访问标识

说明:此控制检查是否配置了 Amazon S3 Origin 类型的 Amazon CloudFront 分发版(OAI)。 如果未配置 OAI,则控件将失败。 CloudFront OAI 会阻止用户直接访问 S3 存储桶内容。 当用户直接访问 S3 存储桶时,他们实际上会绕过 CloudFront 分发以及应用于基础 S3 存储桶内容的所有权限。

严重性:中等

应启用 CloudTrail 日志文件验证

说明:为了确保 CloudTrail 日志检查其他完整性,我们建议在所有 CloudTrails 上启用文件验证。

严重性:低

应启用 CloudTrail

说明:AWS CloudTrail 是一项 Web 服务,用于记录帐户的 AWS API 调用并将日志文件传送给你。 并非所有服务都默认启用所有 API 和事件的日志记录。 应实现 CloudTrail 外的其他审核线索,并查看 CloudTrail 支持的服务和集成中每个服务的文档。

严重性:高

CloudTrail 线索应与 Amazon CloudWatch 日志集成

说明:除了捕获指定 S3 存储桶中的 CloudTrail 日志以供长期分析外,还可以通过配置 CloudTrail 将日志发送到 CloudWatch 日志来执行实时分析。 对于在帐户的所有区域中启用的跟踪,CloudTrail 将日志文件从所有这些区域发送到 CloudWatch Logs 日志组。 建议将 CloudTrail 日志发送到 CloudWatch Logs,以确保捕获、监视 AWS 帐户活动,并适当发出警报。 将 CloudTrail 日志发送到 CloudWatch Logs 有助于基于用户、API、资源和 IP 地址进行实时和历史活动日志记录,并有机会为异常或敏感帐户活动建立警报和通知。

严重性:低

应启用数据库日志记录

说明:此控制检查是否启用以下 Amazon RDS 日志并将其发送到 CloudWatch 日志:

  • Oracle:(警报、审核、跟踪、侦听器)
  • PostgreSQL:(Postgresql,升级)
  • MySQL:(审核、错误、常规、SlowQuery)
  • MariaDB:(审核、错误、常规、慢查询)
  • SQL Server:(错误,代理)
  • 奥罗拉:(审核、错误、常规、慢查询)
  • Aurora-MySQL:(审核、错误、常规、SlowQuery)
  • 奥罗拉-PostgreSQL:(Postgresql,升级)。 RDS 数据库应启用相关日志。 数据库日志记录提供针对 RDS 的请求的详细记录。 数据库日志可帮助进行安全和访问审核,有助于诊断可用性问题。

严重性:中等

禁用 Amazon SageMaker 笔记本实例的直接 Internet 访问

说明:应为 SageMaker 笔记本实例禁用直接 Internet 访问。 这将检查是否对笔记本实例禁用了“DirectInternetAccess”字段。 实例应配置 VPC,默认设置应为“禁用 - 通过 VPC 访问 Internet”。 若要启用 Internet 访问从笔记本训练或托管模型,请确保 VPC 具有 NAT 网关,并且安全组允许出站连接。 确保仅授权用户访问 SageMaker 配置,并限制用户的 IAM 权限以修改 SageMaker 设置和资源。

严重性:高

在初始用户设置期间,不要为具有控制台密码的所有 IAM 用户设置访问密钥

说明:AWS 控制台默认检查框,用于创建要启用的访问密钥。 这导致不必要地生成许多访问密钥。 除了不必要的凭据,它还在审核和轮换这些密钥时生成不必要的管理工作。 要求用户在创建配置文件后采取其他步骤将更清楚地表明访问密钥是其工作所必需的[a],并在访问密钥在组织中某个位置使用的帐户上建立访问密钥后[b]。

严重性:中等

请确保创建了支持角色,以便通过 AWS 支持来管理事件

说明:AWS 提供了一个支持中心,可用于事件通知和响应,以及技术支持和客户服务。 创建 IAM 角色,以允许授权用户通过 AWS 支持管理事件。 通过实现访问控制的最低特权,IAM 角色需要适当的 IAM 策略才能允许支持中心访问,以便通过 AWS 支持管理事件。

严重性:低

请确保访问密钥每 90 天或更短时间轮换一次

说明:访问密钥由访问密钥 ID 和机密访问密钥组成,用于对 AWS 发出的编程请求进行签名。 AWS 用户需要自己的访问密钥,以便从 AWS Command Line Interface (AWS CLI)、适用于 Windows PowerShell 的工具、AWS SDK,或者使用单个 AWS 服务的 API 直接 HTTP 调用,对 AWS 进行编程化调用。 建议定期轮换所有访问密钥。 轮换访问密钥可减少与要使用的已泄露或终止帐户关联的访问密钥的机会窗口。 应轮换访问密钥,以确保无法使用旧密钥访问数据,该密钥可能已丢失、破解或被盗。

严重性:中等

请确保在所有区域中启用了 AWS Config

说明:AWS 配置是一项 Web 服务,用于对帐户中支持的 AWS 资源执行配置管理,并将日志文件传送给你。 记录的信息包括配置项目(AWS 资源)、配置项目(AWS 资源)之间的关系、资源之间的所有配置更改。 建议在所有区域中启用 AWS 配置。

AWS Config 捕获的 AWS 配置项目历史记录支持安全分析、资源更改跟踪和合规性审核。

严重性:中等

请确保在所有区域中启用了 CloudTrail

说明:AWS CloudTrail 是一项 Web 服务,用于记录帐户的 AWS API 调用并将日志文件传送给你。 记录的信息包括 API 调用方的标识、API 调用的时间、API 调用方的源 IP 地址、请求参数以及 AWS 服务返回的响应元素。 CloudTrail 提供帐户的 AWS API 调用历史记录,包括通过管理控制台、SDK、命令行工具和更高级别的 AWS 服务(如 CloudFormation)进行的 API 调用。 CloudTrail 生成的 AWS API 调用历史记录可实现安全分析、资源更改跟踪和合规性审核。 此外:

  • 确保存在多区域跟踪可确保检测到其他未使用区域中发生的意外活动
  • 确保存在多区域跟踪可确保默认为跟踪启用“全局服务日志记录”,以捕获 AWS 全局服务上生成的事件的记录
  • 对于多区域跟踪,确保为所有类型的读/写配置管理事件可确保记录在 AWS 帐户中的所有资源上执行的管理操作

严重性:高

请确保禁用了 90 天或更长时间未使用的凭据

说明:AWS IAM 用户可以使用不同类型的凭据(例如密码或访问密钥)访问 AWS 资源。 建议删除或停用在 90 或更高版本中未使用的所有凭据。 禁用或删除不必要的凭据可以减少与要使用的已泄露或已放弃帐户关联的凭据的机会窗口。

严重性:中等

请确保 IAM 密码策略让密码在 90 天或更短时间内到期

说明:IAM 密码策略可能需要在给定天数后轮换或过期密码。 建议密码策略在 90 天或更短后过期密码。 缩短密码生存期可提高帐户针对暴力破解登录尝试的复原能力。 此外,在以下情况中,定期更改密码也有所帮助:

  • 有时,密码可能会被盗或泄露,而无需了解。 这会通过系统泄露、软件漏洞或内部威胁发生。
  • 某些企业和政府 Web 筛选器或代理服务器能够拦截和记录流量,即使流量已加密也是如此。
  • 许多人对许多系统(如工作、电子邮件和个人)使用相同的密码。
  • 遭到入侵的最终用户工作站可能有击键记录器。

严重性:低

请确保 IAM 密码策略防止密码重用

说明:IAM 密码策略可以阻止同一用户重复使用给定的密码。 建议密码策略阻止重复使用密码。 防止密码重用可提高帐户对暴力破解登录尝试的复原能力。

严重性:低

请确保 IAM 密码策略要求至少必须有一个小写字母

说明:密码策略部分用于强制实施密码复杂性要求。 IAM 密码策略可用于确保密码由不同的字符集组成。 建议密码策略至少需要一个小写字母。 设置密码复杂性策略可提高帐户针对暴力登录尝试的复原能力。

严重性:中等

请确保 IAM 密码策略要求至少必须有一个数字

说明:密码策略部分用于强制实施密码复杂性要求。 IAM 密码策略可用于确保密码由不同的字符集组成。 建议密码策略至少需要一个数字。 设置密码复杂性策略可提高帐户针对暴力登录尝试的复原能力。

严重性:中等

请确保 IAM 密码策略要求至少必须有一个符号

说明:密码策略部分用于强制实施密码复杂性要求。 IAM 密码策略可用于确保密码由不同的字符集组成。 建议密码策略至少需要一个符号。 设置密码复杂性策略可提高帐户针对暴力登录尝试的复原能力。

严重性:中等

请确保 IAM 密码策略要求至少必须有一个大写字母

说明:密码策略部分用于强制实施密码复杂性要求。 IAM 密码策略可用于确保密码由不同的字符集组成。 建议密码策略至少需要一个大写字母。 设置密码复杂性策略可提高帐户针对暴力登录尝试的复原能力。

严重性:中等

请确保 IAM 密码策略要求最短长度不少于 14 个字符

说明:密码策略部分用于强制实施密码复杂性要求。 IAM 密码策略可用于确保密码长度至少为给定长度。 建议密码策略要求最短密码长度为“14”。 设置密码复杂性策略可提高帐户针对暴力登录尝试的复原能力。

严重性:中等

确保为具有控制台密码的所有 IAM 用户启用多重身份验证(MFA)

说明:多重身份验证(MFA)在用户名和密码的基础上增加了额外的保护层。 启用 MFA 后,当用户登录到 AWS 网站时,系统会提示他们输入用户名和密码,以及 AWS MFA 设备中的身份验证代码。 建议为所有具有控制台密码的帐户启用 MFA。 启用 MFA 可为控制台访问提供更高的安全性,因为它要求验证主体拥有发出时间敏感型密钥的设备且了解凭据。

严重性:中等

应启用 GuardDuty

说明:若要提供针对入侵的其他保护,应在 AWS 帐户和区域中启用 GuardDuty。 注意:GuardDuty 可能不是每个环境的完整解决方案。

严重性:中等

应为根用户启用硬件 MFA

说明:根帐户是帐户中特权最高的用户。 MFA 在用户名和密码之上提供了额外的保护层。 启用 MFA 后,当用户登录 AWS 网站时,系统会提示他们输入其用户名和密码,以及 AWS MFA 设备中的身份验证代码。 对于级别 2,建议使用硬件 MFA 保护根帐户。 硬件 MFA 的攻击面比虚拟 MFA 小。 例如,硬件 MFA 不会遭受虚拟 MFA 所在的移动智能手机所带来的攻击面。 对许多帐户使用硬件 MFA 可能导致设备管理问题。 如果发生这种情况,请考虑有选择地将此级别 2 建议实施到最高安全帐户。 然后,可以将级别 1 建议应用于剩余帐户。

严重性:低

应为 RDS 群集配置 IAM 身份验证

说明:此控制检查 RDS DB 群集是否启用了 IAM 数据库身份验证。 IAM 数据库身份验证允许对数据库实例进行无密码身份验证。 身份验证使用身份验证令牌。 与数据库之间的流量使用 SSL 进行加密。 有关详细信息,请参阅 Amazon Aurora 用户指南中的 IAM 数据库身份验证。

严重性:中等

应为 RDS 实例配置 IAM 身份验证

说明:此控制检查 RDS DB 实例是否已启用 IAM 数据库身份验证。 IAM 数据库身份验证允许使用身份验证令牌(而非密码)对数据库实例进行身份验证。 与数据库之间的流量使用 SSL 进行加密。 有关详细信息,请参阅 Amazon Aurora 用户指南中的 IAM 数据库身份验证。

严重性:中等

IAM 客户管理的策略不应允许对所有 KMS 密钥执行解密操作

说明:检查 IAM 客户托管策略的默认版本是否允许主体对所有资源使用 AWS KMS 解密操作。 此控件使用 自动推理引擎 Zelkova 来验证并警告你有关可能授予跨 AWS 帐户对机密的广泛访问权限的策略。 如果所有 KMS 密钥都允许“kms:Decrypt”或“kms:ReEncryptFrom”操作,则此控件将失败。 该控件评估附加和未附加的客户托管策略。 它不会检查内联策略或 AWS 托管策略。 使用 AWS KMS,可以控制谁可以使用你的 KMS 密钥并获取对加密数据的访问权限。 IAM 策略定义标识(用户、组或角色)可对哪些资源执行哪些操作。 遵循安全最佳实践,AWS 建议允许最小特权。 换句话说,你应该只授予标识“kms:Decrypt”或“kms:ReEncryptFrom”权限,并且仅对允许执行任务所需的密钥授予权限。 否则,用户可能会使用不适合数据的密钥。 不是为所有密钥授予权限,而是确定用户访问加密数据所需的最小密钥集。 然后设计允许用户仅使用这些密钥的策略。 例如,不允许对所有 KMS 密钥具有“kms:Decrypt”权限。 相反,只在帐户特定区域中的密钥上允许“kms:Decrypt”。 采用最小特权原则,可降低意外泄漏数据的风险。

严重性:中等

创建的 IAM 客户托管策略不应允许对服务执行通配符操作

说明:此控制检查你创建的基于 IAM 标识的策略是否具有 Allow 语句,这些语句使用 * wild卡授予对任何服务的所有操作的权限。 如果任何策略语句包含“Effect”:“Allow”和“Action”:“Service:*”,则控件将失败。 例如,策略中的以下语句导致找不到失败。

'Statement': [
{
  'Sid': 'EC2-Wildcard',
  'Effect': 'Allow',
  'Action': 'ec2:*',
  'Resource': '*'
}

如果将“Effect”:“Allow”与“NotAction”一起使用,则控件也会失败:“service:”。在这种情况下,NotAction 元素提供对 AWS 服务中的所有操作的访问权限,但 NotAction 中指定的操作除外。此控制仅适用于客户管理的 IAM 策略。它不适用于 AWS 管理的 IAM 策略。向 AWS 服务分配权限时,必须限定 IAM 策略中允许的 IAM 操作的范围。应将 IAM 操作限制为仅需要这些操作。这有助于预配最低特权权限。如果策略附加到可能不需要权限的 IAM 主体,过度宽松的策略可能会导致特权升级。在某些情况下,你可能希望允许具有类似前缀的 IAM 操作,例如 DescribeFlowLogs 和 DescribeAvailabilityZones。在这些授权情况下,可以将后缀野生卡添加到公共前缀。例如,ec2:Describe

如果使用带有后缀通配符的前缀 IAM 操作,则此控件通过。 例如,策略中的以下语句导致传递了一个查找。

 'Statement': [
{
  'Sid': 'EC2-Wildcard',
  'Effect': 'Allow',
  'Action': 'ec2:Describe*',
  'Resource': '*'
}

以这种方式对相关的 IAM 操作进行分组时,还可以避免超出 IAM 策略大小限制。

严重性:低

IAM 策略应仅附加到组或角色

说明:默认情况下,IAM 用户、组和角色无权访问 AWS 资源。 IAM 策略是向用户、组或角色授予权限的方式。 建议将 IAM 策略直接应用于组和角色,但不适用于用户。 随着用户数量的增加,在组或角色级别分配权限可降低访问管理的复杂性。 减少访问管理复杂性可能会反过来减少主体无意接收或保留过多特权的机会。

严重性:低

不应创建允许完全 ":" 管理权限的 IAM 策略

说明:IAM 策略是向用户、组或角色授予特权的方式。 建议并考虑使用标准安全建议来授予最低特权,即仅授予执行任务所需的权限。 确定用户需要执行的操作,然后为他们创建策略,以使用户只执行这些任务,而不是允许完全管理权限。 从最低的权限集开始,并根据需要授予额外的权限,这样做更安全;而不是以太宽松的权限开头,然后尝试收紧这些权限。 提供完全管理权限(而不是限制在用户所需的最低权限集上)的确会使资源暴露于潜在不需要的操作中。 应删除具有 "Effect": "Allow" 与 Action": ""(而非 "Resource": "")的语句的 IAM 策略。

严重性:高

IAM 主体不应具有允许对所有 KMS 密钥执行解密操作的 IAM 内联策略

说明:检查嵌入在 IAM 标识(角色、用户或组)中的内联策略是否允许对所有 KMS 密钥执行 AWS KMS 解密操作。 此控件使用 自动推理引擎 Zelkova 来验证并警告你有关可能授予跨 AWS 帐户对机密的广泛访问权限的策略。 如果允许对内联策略中的所有 KMS 密钥执行“kms:Decrypt”或“kms:ReEncryptFrom”操作,则此控件失败。 使用 AWS KMS,可以控制谁可以使用你的 KMS 密钥并获取对加密数据的访问权限。 IAM 策略定义标识(用户、组或角色)可对哪些资源执行哪些操作。 遵循安全最佳实践,AWS 建议允许最小特权。 换句话说,你应该只授予标识他们需要的权限,并且仅对允许执行任务所需的密钥授予权限。 否则,用户可能会使用不适合数据的密钥。 不是为所有密钥授予权限,而是确定用户访问加密数据所需的最小密钥集。 然后设计允许用户仅使用这些密钥的策略。 例如,不允许对所有 KMS 密钥具有“kms:Decrypt”权限。 相反,只在帐户特定区域中的密钥上允许这些权限。 采用最小特权原则,可降低意外泄漏数据的风险。

严重性:中等

Lambda 函数应限制公共访问

说明:Lambda 函数基于资源的策略应限制公共访问。 此建议不会检查内部主体的访问。 使用基于最低权限资源的策略确保对该函数的访问权限仅限于授权的主体。

严重性:高

应为所有 IAM 用户启用 MFA

说明:所有 IAM 用户都应启用多重身份验证(MFA)。

严重性:中等

应为根用户启用 MFA

说明:根帐户是帐户中特权最高的用户。 MFA 在用户名和密码之上提供了额外的保护层。 启用 MFA 后,当用户登录 AWS 网站时,系统会提示他们输入其用户名和密码,以及 AWS MFA 设备中的身份验证代码。 将虚拟 MFA 用于根帐户时,建议使用的设备不是个人设备。 相反,请使用专用的移动设备 (平板电脑或手机) ,你可以管理这些设备,使其独立于任何个人设备进行计费和保护。 这会降低由于设备丢失、设备置换或拥有设备的个人不再受雇于公司而导致失去 MFA 访问权限的风险。

严重性:低

IAM 用户的密码策略应有强配置

说明:检查 IAM 用户的帐户密码策略是否使用以下最低配置。

  • RequireUppercaseCharacters - 密码中至少需要一个大写字符。 (默认值 = true)
  • RequireLowercaseCharacters - 密码中至少需要一个小写字符。 (默认值 = true)
  • RequireNumbers - 密码中至少需要一个数字。 (默认值 = true)
  • MinimumPasswordLength - 密码最小长度。 (默认值 = 7 或更长)
  • PasswordReusePrevention - 允许重复使用之前的密码数。 (默认值 = 4)
  • MaxPasswordAge - 密码过期前的天数。 (默认值 = 90)

严重性:中等

根帐户访问密钥不存在

说明:根帐户是 AWS 帐户中特权最高的用户。 AWS 访问密钥提供对给定 AWS 帐户的编程式访问。 建议删除与根帐户关联的所有访问密钥。 删除与根帐户关联的访问密钥会限制帐户被入侵的攻击途径。 此外,删除根访问密钥会鼓励创建和使用基于角色的最小特权帐户。

严重性:高

应启用 S3“阻止公共访问”设置

说明:为 S3 存储桶启用“阻止公共访问”设置有助于防止敏感数据泄漏并防止存储桶遭受恶意操作。

严重性:中等

应在存储桶级别启用 S3 阻止公共访问设置

说明:此控制检查是否应用了 S3 存储桶级公共访问块。 如果以下任一设置设置为 false,则此控件将失败:

  • ignorePublicAcls
  • blockPublicPolicy
  • blockPublicAcls
  • restrictPublicBuckets 阻止 S3 存储桶级别的公共访问提供控件,以确保对象永远不会具有公共访问权限。 通过访问控制列表 (ACL) 和/或存储桶级策略授予存储桶和对象公共访问权限。 除非你打算公开访问 S3 存储桶,否则应配置存储桶级别 Amazon S3 阻止公共访问功能。

严重性:高

应删除 S3 存储桶公共读取访问

说明:删除对 S3 存储桶的公共读取访问权限有助于保护数据并防止数据泄露。

严重性:高

应删除 S3 存储桶公共写入访问

说明:允许对 S3 存储桶进行公共写入访问可能会使你容易受到恶意操作,例如以牺牲为代价存储数据、加密文件进行赎金,或使用存储桶操作恶意软件。

严重性:高

Secrets Manager 机密应启用自动轮换

说明:此控件检查 AWS 机密管理器中存储的机密是否配置为自动轮换。 Secrets Manager 有助于提高组织的安全状况。 机密包含数据库凭据、密码和第三方 API 密钥。 你可以使用 Secrets Manager 集中存储机密、自动加密机密、控制对机密的访问,以及安全地自动轮换机密。 Secrets Manager 可以轮换机密。 可以使用轮换将长期机密替换为短期机密。 轮换机密会限制未经授权的用户可以使用已泄露机密的时间。 出于此原因,你应该经常轮换机密。 若要详细了解轮换,请参阅 AWS Secrets Manager 用户指南中的轮换 AWS Secrets Manager 机密

严重性:中等

已停止的 EC2 实例应在指定的时间段后删除

说明:此控制检查是否已停止任何 EC2 实例超过允许的天数。 如果 EC2 实例的停止时间超过允许的最大时间段(默认为 30 天),则 EC2 实例将失败此检查。 失败的结果表示,EC2 实例已经有很长一段时间没有运行了。 这会产生安全风险,因为 EC2 实例未受到主动维护(已分析、修补、更新)。 如果稍后启动,则缺少适当的维护可能会导致 AWS 环境中出现意外问题。 若要安全地安全地保持 EC2 实例长期处于非运行状态,请定期启动以进行维护,并在维护后将其停止。 理想情况下,这是一个自动化过程。

严重性:中等

AWS 过度预配的标识应仅具有必要的权限(预览版)

说明:过度预配的活动标识是有权访问其未使用的特权的标识。 过度预配的活动标识,尤其是对于已定义操作和职责的非人工帐户,在用户、密钥或资源泄露时可能会增加爆炸半径。 删除不需要的权限并建立评审过程以实现最低特权权限。

严重性:中等

应在 AWS 环境中删除未使用的标识(预览版)

说明:非活动标识是过去 90 天内未对任何资源执行任何操作的人类和非人类实体。 AWS 帐户中具有高风险权限的非活动 IAM 标识可能会受到攻击,如果保持原样,并且让组织能够滥用或利用凭据。 主动检测和响应未使用的标识有助于防止未经授权的实体访问 AWS 资源。

严重性:中等

AWS 网络建议

Amazon EC2 应配置为使用 VPC 终结点

说明:此控制检查是否为每个VP 创建 Amazon EC2 的服务终结点。 如果一个VP没有为 Amazon EC2 服务创建一个VP终结点,该控件将失败。 若要改进 VPC 的安全状态,可以将 Amazon EC2 配置为使用接口 VPC 终结点。 接口终结点由 AWS PrivateLink 提供支持,这是一种能够让你专门访问 Amazon EC2 API 操作的技术。 它将 VPC 和 Amazon EC2 之间的所有流量限制为 Amazon 网络。 由于终结点仅在同一区域中受支持,因此不能在不同的区域中的一个VP和服务之间创建终结点。 这会阻止对其他区域的意外 Amazon EC2 API 调用。 若要了解有关为 Amazon EC2 创建 VPC 终结点的详细信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Amazon EC2 和接口 VPC 终结点

严重性:中等

Amazon ECS 服务不应自动分配到的公共 IP 地址

说明:公共 IP 地址是可从 Internet 访问的 IP 地址。 如果使用公共 IP 启动 Amazon ECS 实例,则可以从 Internet 访问 Amazon ECS 实例。 不应公开访问 Amazon ECS 服务,因为这可能会允许意外访问容器应用程序服务器。

严重性:高

Amazon EMR 群集主节点不应具有公共 IP 地址

说明:此控制检查 Amazon EMR 群集上的主节点是否具有公共 IP 地址。 如果主节点具有与其任何实例相关联的公共 IP,则此控件失败。 公共 IP 在实例的 NetworkInterfaces 配置的 PublicIp 字段中指定。 此控件仅检查处于 RUNNING 或 WAITING 状态的 Amazon EMR 群集。

严重性:高

Amazon Redshift 群集应使用增强型 VPC 路由

说明:此控制检查 Amazon Redshift 群集是否已启用 EnhancedVpcRouting。 增强型 VPC 路由强制执行群集和数据存储库之间的所有 COPY 和 UNLOAD 流量流过 VPC。 然后,你可以使用 VPC 功能(如安全组和网络访问控制列表)来保护流量。 你还可以使用 VPC Flow Logs 来监视流量。

严重性:高

应配置应用程序负载均衡器来将所有 HTTP 请求重定向到 HTTPS

说明:若要在传输中强制加密,应在应用程序负载均衡器中使用重定向操作,将客户端 HTTP 请求重定向到端口 443 上的 HTTPS 请求。

严重性:中等

应用程序负载均衡器应配置为删除 HTTP 标头

说明:此控件评估 AWS 应用程序负载均衡器(ALB),以确保它们配置为删除无效的 HTTP 标头。 如果 routing.http.drop_invalid_header_fields.enabled 的值设置为 false,则此控件失败。 默认情况下,ALB 未配置为删除无效的 HTTP 标头值。 删除这些标头值可防止 HTTP desync 攻击。

严重性:中等

将 Lambda 函数配置到 VPC

说明:此控件检查 Lambda 函数是否在VP 中。 它不会评估用于确定公共可访问性的大众网络子网路由配置。 请注意,如果在帐户中找到 Lambda@Edge,则此控件生成失败的结果。 若要避免这些结果,可以禁用此控件。

严重性:低

EC2 实例不应具有公共 IP

说明:此控制检查 EC2 实例是否具有公共 IP 地址。 如果“publicIp”字段存在于 EC2 实例配置项中,则此控件失败。 此控件仅适用于 IPv4 地址。 公用 IPv4 地址是可从 Internet 访问的 IP 地址。 如果使用公共 IP 启动实例,则可以从 Internet 访问 EC2 实例。 专用 IPv4 地址是无法从 Internet 访问的 IP 地址。 可以使用专用 IPv4 地址在同一 VPC 或连接的专用网络中的 EC2 实例之间通信。 IPv6 地址全局唯一,因此可从 Internet 访问。 但是,默认情况下,所有子网的 IPv6 寻址属性都设置为 false。 有关 IPv6 的详细信息,请参阅 Amazon VPC 用户指南中的 VPC 中的 IP 寻址。 如果你有使用公共 IP 维护 EC2 实例的合法用例,可以禁止显示此控件的结果。 有关前端体系结构选项的详细信息,请参阅 AWS 体系结构博客This Is My Architecture 系列

严重性:高

EC2 实例不应使用多个 ENI

说明:此控制检查 EC2 实例是使用多个弹性网络接口(ENIs)还是弹性结构适配器(EFA)。 如果使用单个网络适配器,则此控件将传递。 该控件包含一个可选参数列表,用于标识允许的 ENIS。 多个 ENIS 可能会导致双主实例,即具有多个子网的实例。 这会增加网络安全复杂性,并产生意外的网络路径和访问。

严重性:低

EC2 实例应使用 IMDSv2

说明:此控制检查是否使用实例元数据服务版本 2(IMDSv2)配置 EC2 实例元数据版本。 如果 IMDSv2 的“HttpTokens”设置为“必需”,则此控件通过。 如果“HttpTokens”设置为“可选”,则此控件失败。 使用实例元数据配置或管理正在运行的实例。 IMDS 提供对频繁轮换的临时凭据的访问权限。 这些凭据无需手动或以编程方式对实例进行硬编码或分发敏感凭据。 IMDS 在本地附加到每个 EC2 实例。 它在特殊的链接本地 IP 地址 169.254.169.254 上运行。 只有实例上运行的软件才能访问此 IP 地址。 IMDS 版本 2 为以下类型的漏洞添加了新的保护。 这些漏洞可用于尝试访问 IMDS。

  • 打开网站应用程序防火墙
  • 打开反向代理
  • 服务器端请求伪造(SSRF)漏洞
  • 打开第 3 层防火墙和网络地址转换(NAT)安全中心建议使用 IMDSv2 配置 EC2 实例。

严重性:高

EC2 子网不应自动分配公共 IP

说明:此控制检查是否将 Amazon 虚拟私有云(Amazon VR)子网中的公共 IP 分配设置为“FAL标准版”。 如果标志设置为“FALSE”,则此控件通过。 所有子网都有一个属性,该属性确定子网中创建的网络接口是否自动接收公共 IPv4 地址。 启动到启用了此属性的子网中的实例具有分配给其主网络接口的公共 IP。

严重性:中等

请确保存在关于 AWS Config 配置更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议建立指标筛选器和警报,用于检测 CloudTrail 配置更改。 监视 AWS 配置配置的更改有助于确保 AWS 帐户中配置项的持续可见性。

严重性:低

请确保存在关于 AWS 管理控制台身份验证失败的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议为失败的控制台身份验证尝试建立指标筛选器和警报。 监视失败的控制台登录可能会缩短检测尝试暴力破解凭据的尝试,这可能提供可用于其他事件相关性的指示器(例如源 IP)。

严重性:低

对于网络访问控制列表 (NACL) 的更改,请确保存在日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 NACL 用作无状态数据包筛选器,用于控制 VPC 中子网的入口和出口流量。 建议对 NACL 的更改建立指标筛选器和警报。 监视对 NACL 的更改有助于确保不会无意中公开 AWS 资源和服务。

严重性:低

请确保存在关于网络网关更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 网关需要向 VPC 外部的目标发送/接收流量。 建议为网络网关的更改建立指标筛选器和警报。 监视对网络网关的更改有助于确保所有入口/出口流量都通过受控路径遍历了VP边界。

严重性:低

请确保存在关于 CloudTrail 配置更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议建立指标筛选器和警报,用于检测 CloudTrail 配置更改。

监视 CloudTrail 配置更改有助于确保持续查看 AWS 帐户中执行的活动。

严重性:低

请确保存在关于禁用或计划内删除客户创建的 CMK 的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议为客户创建的 CMK 建立指标筛选器和警报,这些 CMK 已将状态更改为已禁用或计划删除。 使用已禁用或已删除密钥加密的数据将不再可访问。

严重性:低

请确保存在关于 IAM 策略更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议对标识和访问管理(IAM)策略进行指标筛选器和警报的更改。 监视 IAM 策略的更改有助于确保身份验证和授权控制保持不变。

严重性:低

对于未经 MFA 而进行的管理控制台登录,请确保存在日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议为不受多重身份验证(MFA)保护的控制台登录建立指标筛选器和警报。 监视单因素控制台登录可以提高对不受 MFA 保护的帐户的可见性。

严重性:低

请确保存在关于路由表更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 路由表用于将子网之间的流量路由到网关。 建议为路由表的更改建立指标筛选器和警报。 监视路由表的更改有助于确保所有 VPN 流量都流经预期路径。

严重性:低

请确保存在关于 S3 桶策略更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议针对 S3 存储桶策略的更改建立指标筛选器和警报。 监视对 S3 存储桶策略的更改可能会缩短检测和更正敏感 S3 存储桶上的宽松策略的时间。

严重性:低

请确保存在关于安全组更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 安全组是一种监控状态的数据包筛选器,用于控制 VPC 中的入口和出口流量。 建议对安全组建立指标筛选器和警报更改。 监视对安全组的更改有助于确保不会无意中公开资源和服务。

严重性:低

请确保存在关于未授权的 API 调用的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议为未经授权的 API 调用建立指标筛选器和警报。 监视未经授权的 API 调用有助于揭示应用程序错误,并可能缩短检测恶意活动的时间。

严重性:低

对于根帐户的使用,请确保存在日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 建议为根登录尝试建立指标筛选器和警报。

监视根帐户登录名可查看使用完全特权帐户的机会,并有机会减少其使用。

严重性:低

请确保存在关于 VPC 更改的日志指标筛选器和警报

说明:可以通过将 CloudTrail 日志定向到 CloudWatch 日志并建立相应的指标筛选器和警报来实现 API 调用的实时监视。 帐户中可以有多个一个VP,此外,还可以在 2 个 VPN 之间创建对等连接,使网络流量能够在 VPN 之间路由。 建议为对 VPC 所做的更改建立指标筛选器和警报。 监视 IAM 策略的更改有助于确保身份验证和授权控制保持不变。

严重性:低

请确保没有安全组允许从 0.0.0.0/0 流入端口 3389

说明:安全组提供流出/流出网络流量到 AWS 资源的有状态筛选。 建议没有安全组允许对端口 3389 进行不受限制的入口访问。 删除与远程控制台服务(如 RDP)的不受约束的连接,可以降低服务器暴露的风险。

严重性:高

RDS 数据库和群集不应使用数据库引擎默认端口

说明:此控制检查 RDS 群集或实例是否使用数据库引擎的默认端口以外的端口。 如果使用已知端口来部署 RDS 群集或实例,攻击者可能会猜测有关群集或实例的信息。 攻击者可以将此信息与其他信息结合使用,以连接到 RDS 群集或实例,或获取有关应用程序的其他信息。 更改端口时,还必须更新用于连接到旧端口的现有连接字符串。 还应检查 DB 实例的安全组,以确保它包含允许新端口上连接性的入口规则。

严重性:低

应在 VPC 中部署 RDS 实例

说明:VPN 提供了许多网络控制,以保护对 RDS 资源的访问。 这些控件包括 VPC 终结点、网络 ACL 和安全组。 若要利用这些控件,建议将 EC2-Classic RDS 实例移动到 EC2-VPC。

严重性:低

S3 桶应要求请求必须使用安全套接字层

说明:建议要求请求在所有 Amazon S3 存储桶上使用安全套接字层(SSL)。 S3 存储桶应具有要求所有请求 ('Action: S3:*') 的策略,在 S3 资源策略中仅接受通过 HTTPS 传输的数据,由条件键 'aws:SecureTransport' 表示。

严重性:中等

安全组不应允许从 0.0.0.0/0 流入端口 22

说明:为了减少服务器的曝光率,建议不要允许对端口“22”进行不受限制的入口访问。

严重性:高

安全组不应允许对具有高风险的端口进行不受限制的访问

说明:此控制检查安全组的不受限制的传入流量是否可供具有最高风险的指定端口访问。 当安全组中的规则都不允许入口流量从 0.0.0.0/0 流入这些端口时,此控件通过。 不受限制的访问 (0.0.0.0/0) 可增加恶意活动(例如黑客攻击、拒绝服务攻击和数据丢失)的机会。 安全组提供对 AWS 资源的入口和出口流量的监控状态筛选。 任何安全组都不应允许不受限制地流入以下端口:

  • 3389 (RDP)
  • 20, 21 (FTP)
  • 22 (SSH)
  • 23 (Telnet)
  • 110 (POP3)
  • 143 (IMAP)
  • 3306 (MySQL)
  • 8080 (代理)
  • 1433、1434 (MSSQL)
  • 9200 或 9300 (Elasticsearch)
  • 5601 (基巴纳)
  • 25 (SMTP)
  • 445 (CIFS)
  • 135 (RPC)
  • 4333 (ahsp)
  • 5432 (postgresql)
  • 5500 (fcp-addr-srvr1)

严重性:中等

安全组应仅允许针对授权端口的无限制传入流量

说明:此控制检查正在使用的安全组是否允许不受限制的传入流量。 (可选)此规则检查端口号是否在“authorizedTcpPorts”参数中列出。

  • 如果安全组规则端口号允许不受限制的传入流量,但端口号是在“authorizedTcpPorts”中指定的,则控制将传递。 “authorizedTcpPorts”的默认值为“80, 443”
  • 如果安全组规则端口号允许不受限制的传入流量,但端口号未在 authorizedTcpPorts 输入参数中指定,则控制将失败。
  • 如果未使用此参数,则任何具有不受限制入站规则的安全组的控件将失败。 安全组提供对 AWS 的入口和出口流量的监控状态筛选。 安全组规则应遵循最低特权访问原则。 无限制访问(后缀为 /0 的 IP 地址)会增加恶意活动(例如黑客攻击、拒绝服务攻击和数据丢失)的机会。 除非特定允许某个端口,否则该端口应拒绝不受限制的访问。

严重性:高

应删除未使用的 EC2 EIP

说明:分配给某个VP 的弹性 IP 地址应附加到 Amazon EC2 实例或正在使用的弹性网络接口(ENIs)。

严重性:低

应删除未使用的网络访问控制列表

说明:此控制检查是否存在任何未使用的网络访问控制列表(ACL)。 该控件检查资源“AWS::EC2::NetworkAcl”的项配置,并确定网络 ACL 的关系。 如果唯一的关系是网络 ACL 的 VPC,则此控件失败。 如果列出了其他关系,则此控件通过。

严重性:低

VPC 的默认安全组应限制所有流量

说明:安全组应限制所有流量以减少资源泄露。

严重性:低