Amazon 基础安全最佳实践控件 - Amazon Security Hub
[ACM.1] 导入的 ACM 证书应在指定时间段后续订[APigateWay.1] 应启用 API Gateway REST 和 WebSocket API 日志记录[APigateWay.2] API Gateway REST API 阶段应配置为使用 SSL 证书进行后端身份验证[APigateWay.3] API Gateway REST API 阶段应该有Amazon X-Ray启用跟踪[APigateWay.4] API Gateway 应与Amazon WAFWeb ACL[APigateWay.5] API Gateway REST API 缓存数据应进行静态加密[AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用负载均衡器运行状况检查[AutoScaling.5] 使用 Auto Scaling 组启动配置启动的 Amazon EC2 实例不应具有公有 IP 地址[CloudFront .1] CloudFront 分配应配置默认的根对象[CloudFront .2] CloudFront 分配应启用源访问身份[CloudFront .3] CloudFront 发行版应在传输过程中需要加[CloudFront .4] CloudFront 分配应配置源故障转移[CloudFront .5] CloudFront 分配应启用日志记录[CloudFront.6] CloudFront 发行版应该有Amazon WAF已启用[CloudFront.7] CloudFront 发行版应使用自定义 SSL/TLS 证书[CloudTrail.1] CloudTrail 应启用并配置至少一个包含读取和写入管理事件的多区域跟踪。[CloudTrail.2] CloudTrail 应启用静态加密[CloudTrail.4] 确保启用 CloudTrail 日志文件验证[CloudTrail .5] 确保 CloudTrail 跟踪与 Amazon CloudWatch Logs 集成[CodeBuild.1] CodeBuild GitHub 或 Bitbucket 源存储库 URL 应使用 OAuth[CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证[Config.1] 应启用 Amazon Config[DMS.1]Amazon Database Migration Service复制实例不应该是公共实例[DynamoDB.1] DynamoDB 表应根据需求自动扩展容量[DynamoDB .2] DynamoDB 表应启用时间点恢复[DynamoDB .3] DynamoDB 加速器 (DAX) 集群应在静态加密[EC2.1] Amazon EBS 快照不应公开,这取决于所有人都可恢复的能力[EC2.2] VPC 默认安全组不应允许入站和出站流量 [EC2.3] 连接的 EBS 卷应进行静态加密[EC2.4] 应在指定时间段后删除已停止的 EC2 实例[EC2.6] 应在所有 VPC 中启用 VPC 流日志记录 [EC2.7] 应启用 EBS 默认加密[EC2.8] EC2 实例应使用 imdsv2[EC2.9] EC2 实例不应具有公有 IP 地址[EC2.10] 应将 Amazon EC2 配置为使用为 Amazon EC2 服务创建的 VPC 终端节点[EC2.15] EC2 子网不应自动分配公有 IP 地址[EC2.16] 应删除未使用的网络访问控制列表[EC2.17] EC2 实例不应使用多个 ENI[EC2.18] 安全组应该只允许授权端口不受限制的传入流量[EC2.19] 安全组不应允许不受限制地访问高风险端口[EC2.20] 两个 VPN 隧道都用于Amazon应该启用 Site-to-Site VPN 连接[ECS.1] Amazon ECS 任务定义应具有安全的联网模式和用户定义[ECS.2] Amazon ECS 服务不应自动为其分配公有 IP 地址[EFS.1] Amazon EFS 应配置为使用以下方式对文件数据静态加密Amazon KMS[EFS.2] Amazon EFS 卷应该在备份计划中[ElasticBeanstalk.1] Elastic Beanstalk 环境应启用增强型运行状况报告[ElasticBeanstalk.2] 应启用 Elastic Beanstalk 托管平台更新[ELB.2] 具有 SSL/HTTPS 侦听器的经典负载均衡器应使用Amazon Certificate Manager[ELB.3] Classic Load Balancer 侦听器应配置 HTTPS 或 TLS 终止[ELB.4] 应将应用程序负载均衡器配置为删除 HTTP 标头[ELB.5] 应启用应用程序和经典负载均衡器日志记录[ELB.6] 应启用应用 Application Load Balancer 删除保护[ELB.7] 经典负载均衡器应启用连接耗尽[ELB.8] 带有 HTTPS/SSL 侦听器的经典负载均衡器应使用具有强配置的预定义安全策略[ELB.9] 经典负载均衡器应启用跨区域负载均衡[ELBV2.1] 应将应 Application Load Balancer 配置为将所有 HTTP 请求重定向到 HTTPS[EMR.1] Amazon EMR 群集主节点不应具有公有 IP 地址[ES.1] Elasticsearch 域应启用静态加密[ES.2] Elasticsearch 域应位于 VPC 中[ES.3] Elasticsearch 域应加密节点之间发送的数据[ES.4] 应启用 Elasticsearch 域错误日志记录到 CloudWatch Logs[ES.5] Elasticsearch 域应启用审计日志记录[ES.6] Elasticsearch 域应至少有三个数据节点[ES.7] Elasticsearch 域应配置至少三个专用主节点[ES.8] 应使用 TLS 1.2 加密到 Elasticsearch 域的连接[GuardDuty.1] 应启用 GuardDuty[IAM.1] IAM 策略不应允许完全 “*” 管理权限[IAM.2] IAM 用户不应附加 IAM 策略[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次[IAM.4] IAM 根用户访问密钥不应存在[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA[IAM.6] 应该为根用户启用硬件 MFA[IAM.7] IAM 用户的密码策略应具有可靠的配置[IAM.8] 应删除未使用的 IAM 用户凭证[IAM.21] 您创建的 IAM 客户托管策略不应允许对服务进行通配符操作[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥进行解密和重新加密操作[KMS.2] IAM 委托人不应具有允许对所有 KMS 密钥进行解密和重新加密操作的 IAM 内联策略 [KMS.3]Amazon KMS密钥不应该被无意中删除[Lambda.1] Lambda 函数策略应禁止公开访问[Lambda.2] Lambda 函数应使用支持的运行时[Lambda.4] Lambda 函数应配置死信队列(已停用)[OpenSearch .1] OpenSearch 域应启用静态加密[OpenSearch.2] OpenSearch 应该在 VPC 中[OpenSearch.3] OpenSearch 域应加密节点之间发送的数据[OpenSearch.4] 应启用 OpenSearch 域错误日志记录到 CloudWatch Logs[OpenSearch.5] OpenSearch 域应启用审计日志记录[OpenSearch.6] OpenSearch 域应至少有三个数据节点[OpenSearch.8] 应使用 TLS 1.2 加密与 OpenSearch 域的连接[RDS.1] RDS 快照应为私有快照[RDS.2] RDS 数据库实例应禁止公有访问,这取决于 PubliclyAccessible 配置[RDS.3] RDS 数据库实例应启用静态加密[RDS.4] RDS 集群快照和数据库快照应进行静态加密[RDS.5] RDS 数据库实例应配置多个可用区[RDS.6] 应为 RDS 数据库实例和集群配置增强型监控[RDS.7] RDS 集群应启用删除保护[RDS.8] RDS 数据库实例应启用删除保护[RDS.9] 应启用数据库日志记录[RDS.10] 应为 RDS 实例配置 IAM 身份验证[RDS.11] Amazon RDS 实例应启用自动备份[RDS.12] 应为 RDS 集群配置 IAM 身份验证[RDS.13] 应启用 RDS 自动次要版本升级[RDS.14] Amazon Aurora 群集应启用回溯追踪[RDS.15] 应为多个可用区配置 RDS 数据库集群[RDS.16] 应将 RDS 数据库集群配置为将标签复制到快照[RDS.17] RDS 数据库实例应配置为将标签复制到快照[RDS.18] RDS 实例应部署在 VPC 中[RDS.19] 应为关键群集事件配置 RDS 事件通知订阅[RDS.20] 应为关键数据库实例事件配置 RDS 事件通知订阅[RDS.21] 应为关键数据库参数组事件配置 RDS 事件通知订阅[RDS.22] 应为关键数据库安全组事件配置 RDS 事件通知订阅[RDS.23] RDS 数据库和集群不应使用数据库引擎默认端口[Redshift .1] Amazon Redshift 集群应禁止公开访问[Redshift .2] 与 Amazon Redshift 集群的连接应在传输过程中进行加密[Redshift .3] Amazon Redshift 群集应启用自动快照[Redshift .4] Amazon Redshift 群集应启用审核日志记录[redshift.6] 亚马逊 Redshift 应该启用主要版本的自动升级[Redshift .7] Amazon Redshift 群集应使用增强型 VPC 路由[S3.1] 应启用 S3 阻止公有访问设置[S3.2] S3 存储桶应禁止公开读取访问[S3.3] S3 存储桶应禁止公开写入访问[S3.4] S3 存储桶应启用服务器端加密[S3.5] S3 存储桶应要求请求才能使用安全套接字层[S3.6] 向其他人授予 Amazon S3 权限Amazon存储桶策略中的账户应受到限制[S3.8] 应在存储桶级别启用 S3 阻止公有访问设置[S3.9] 应启用 S3 存储桶服务器访问日志记录[SageMaker.1] SageMaker 笔记本实例不应直接访问互联网[SecretsManager.1] Secrets Manager 密钥应启用自动轮换[SecretsManager.2] 配置了自动轮换的密钥管理 Secrets Manager 密钥应成功旋转[SecretsManager.3] 删除未使用的 Secrets Manager 密钥[SecretsManager.4] Secrets Manager 密钥应在指定的天数内轮换[SNS.1] SNS 主题应使用Amazon KMS[SQS.1] Amazon SQS 队列应进行静态加密[SSM.1] EC2 实例应由Amazon Systems Manager[SSM.2] 由 Systems Manager 托管的所有 EC2 实例都应符合修补要求[SSM.3] 由系统管理器管理的实例应具有关联合规性状态COMPLIANT[SSM.4] SSM 文档不应公开[WA.1]Amazon WAF应该启用传统的全局 Web ACL 日志记录
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon 基础安全最佳实践控件

Amazon 基础安全最佳实践标准包含以下控件。对于每个控件,介绍内容包括以下信息。

  • 控件适用于的类别。有关类别的说明,请参阅控件类别.

  • 严重程度

  • 适用资源

  • 必需的 Amazon Config 规则以及由 Amazon Security Hub 设置的任意特定参数值

  • 补救步骤

请注意,控制编号中的空白表示尚未发布的控件。

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

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::ACM::Certificate

Amazon Config 规则:acm-certificate-expiration-check

类型:Schedule 已触发更改

参数:

  • daysToExpiration: 30

该控制检查您账户中的 ACM 证书是否标记为在 30 天内过期。它会检查导入的证书和 Amazon Certificate Manager 提供的证书。

ACM 可以自动续订使用 DNS 验证的证书。对于使用电子邮件验证的证书,您必须回复域验证电子邮件。ACM 也不会自动续订您导入的证书。您必须手动续订导入的证书。

有关 ACM 证书托管续订的详细信息,请参阅ACM 证书的托管续订中的Amazon Certificate Manager用户指南.

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国(宁夏)

  • 欧洲(米兰)

修复

针对您的由 Amazon 颁发的 SSL/TLS 证书,ACM 提供了托管续订。这意味着 ACM 要么自动续订您的证书(如果您使用 DNS 验证),或者在证书过期接近时向您发送电子邮件通知。对于公有和私有 ACM 证书,都提供这些服务。

通过电子邮件验证的域

当证书到期 45 天时,ACM 会向域拥有者发送一封针对每个域名的电子邮件。要验证域名并完成续订,您必须回复电子邮件通知。

有关更多信息,请参阅 。续订通过电子邮件验证的域中的Amazon Certificate Manager用户指南.

对于通过 DNS 验证的域

ACM 会自动续订使用 DNS 验证的证书。到期前 60 天,ACM 会验证证书是否可以续订。

如果 ACM 无法验证域名,则 ACM 会发送通知,说明需要手动验证。它会在过期前 45 天、30 天、7 天和 1 天前发送这些通知。

有关更多信息,请参阅 。续订通过 DNS 验证的域中的Amazon Certificate Manager用户指南.

[APigateWay.1] 应启用 API Gateway REST 和 WebSocket API 日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::ApiGateway::StageAWS::ApiGatewayV2::Stage

Amazon Config 规则:api-gw-execution-logging-enabled

类型:Schedule 已触发更改

参数:

此控件检查 Amazon API Gateway REST 或 WebSocket API 的所有阶段是否已启用日志记录。如果没有为某个阶段的所有方法启用日志记录,或者如果loggingLevel也不是ERROR也不INFO.

API Gateway REST 或 WebSocket API 阶段应启用相关日志。API Gateway REST 和 WebSocket API 执行日志记录提供了向 API Gateway REST 和 WebSocket API 阶段发出的请求的详细记录。这些阶段包括 API 集成后端响应、Lambda 授权者响应和requestId为了Amazon集成端点。

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 欧洲(米兰)

修复

要为 REST 和 WebSocket API 操作启用日志记录,请参阅使用 API Gateway 控制台设置 CloudWatch API 日志记录中的API Gateway 开发人员指南.

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

类别:保护 > 数据保护

严重性:

资源类型: AWS::ApiGateway::Stage

Amazon Config 规则:api-gw-ssl-enabled

类型:Schedule 已触发更改

参数:

此控件检查 Amazon API Gateway REST API 阶段是否配置了 SSL 证书。后端系统使用这些证书来验证传入的请求是否来自 API Gateway。

API Gateway REST API 阶段应配置 SSL 证书,以允许后端系统对来自 API Gateway 的请求进行身份验证。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何生成和配置 API Gateway REST API SSL 证书的详细说明,请参阅生成和配置 SSL 证书用于后端身份验证中的API Gateway 开发人员指南.

[APigateWay.3] API Gateway REST API 阶段应该有Amazon X-Ray启用跟踪

类别:检测 > 检测服务

严重性:

资源类型: AWS::ApiGateway::Stage

Amazon Config 规则:api-gw-xray-enabled

类型:Schedule 已触发更改

参数:

该控制检查是否Amazon X-Ray已为您的 Amazon API Gateway REST API 阶段启用活动跟踪。

X-Ray 主动跟踪可以更快地响应底层基础架构的性能变化。性能的变化可能会导致 API 缺乏可用性。X-Ray 活动跟踪提供了通过 API Gateway REST API 操作和连接服务流的用户请求的实时指标。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何为 API Gateway REST API 操作启用 X-Ray 活动跟踪的详细说明,请参阅Amazon API Gateway 主动跟踪支持Amazon X-Ray中的Amazon X-Ray开发人员指南.

[APigateWay.4] API Gateway 应与Amazon WAFWeb ACL

类别:保护 > 保护性服务

严重性:

资源类型: AWS::ApiGateway::Stage

Amazon Config 规则:api-gw-associated-with-waf

类型:计划 已触发更改

参数:

此控件检查 API Gateway 阶段是否使用Amazon WAFWeb 访问控制列表 (ACL)。如果Amazon WAFWeb ACL 未附加到 REST API Gateway 阶段。

Amazon WAF 是一个 Web 应用程序防火墙,可帮助保护 Web 应用程序和 API 免受攻击。通过它,您可以配置 ACL,ACL 是一组允许、阻止或计数基于您定义的可自定义 Web 安全规则和条件的规则,允许、阻止或计数 Web 请求。确保您的 API Gateway 阶段与Amazon WAFWeb ACL 以帮助保护它免受恶意攻击。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何使用 API Gateway 控制台关联的信息Amazon WAF具有现有 API Gateway API 阶段的区域性 Web ACL,请参阅使用Amazon WAF保护 API中的API Gateway 开发人员指南.

[APigateWay.5] API Gateway REST API 缓存数据应进行静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::ApiGateway::Stage

Amazon Config 规则:api-gw-cache-encrypted(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 API Gateway REST API 阶段中启用缓存的所有方法是否都已加密。如果 API Gateway REST API 阶段中的任何方法均配置为缓存并且缓存未加密,则控制失败。

对静态数据进行加密可降低存储在磁盘上的数据被未经过身份验证的用户访问的风险Amazon. 它添加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,在读取数据之前,需要 API 权限才能解密数据。

API Gateway REST API 缓存应进行静态加密,以增加安全层。

修复

要修复此控制,请将阶段配置为加密缓存数据。

为指定阶段配置 API 缓存

  1. 通过以下网址打开 API Gateway 控制台:https://console.aws.amazon.com/apigateway/

  2. 选择 API。

  3. 选择 Stages (阶段)

  4. 阶段对于 API 的列表,选择要添加缓存到的阶段。

  5. 选择 Settings

  6. 选择 启用 API 缓存

  7. 更新所需的设置,然后选择加密缓存数据.

  8. 选择 Save Changes (保存更改)

[AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用负载均衡器运行状况检查

类别:识别 > 清单

严重性:

资源类型: AWS::AutoScaling::AutoScalingGroup

Amazon Config 规则:autoscaling-group-elb-healthcheck-required

类型:Schedule 已触发更改

参数:

该控制检查与负载均衡器关联的 Auto Scaling 组是否使用弹性负载均衡运行状况检查。

这可确保该组可以根据负载均衡器提供的其他测试确定实例的运行状况。使用 Elastic Load Balancing 运行状况检查有助于支持使用 EC2 Auto Scaling 组的应用程序的可用性。

修复

要修复此问题,请更新 Auto Scaling 组以使用 Elastic Load Balancing 运行状况检查。

要启用 Elastic Load Balancing 运行状

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的下Auto Scaling,选择Auto Scaling 组.

  3. 选中您的 组对应的复选框。

  4. 选择编辑

  5. UCET运行状况检查,对于运行状况检查类型,选择ELB.

  6. 对于 Health check grace period (运行状况检查宽限期),输入 300

  7. 选择页面底部的更新

有关将负载均衡器与 Auto Scaling 组一起使用的更多信息,请参阅Amazon Auto Scaling用户指南.

[AutoScaling.5] 使用 Auto Scaling 组启动配置启动的 Amazon EC2 实例不应具有公有 IP 地址

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

严重性:

资源类型: AWS::AutoScaling::LaunchConfiguration

Amazon Config 规则:autoscaling-launch-config-public-ip-disabled

类型:Schedule 已触发更改

参数:

此控件检查 Auto Scaling 组关联的启动配置是否分配公有 IP 地址到组的实例。

自动扩缩组启动配置中的 Amazon EC2 实例不应具有关联的公有 IP 地址,但有限的边缘情况除外。Amazon EC2 实例只能从负载均衡器后面访问,而不是直接暴露在互联网上。

如果将关联的启动配置配置为分配公有 IP 地址,则该控制将通过。如果关联的启动配置未配置为分配公有 IP 地址,则该控制将失败。

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 亚太地区(雅加达)

  • 亚太地区(大阪)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

Auto Scaling 组一次与一个启动配置关联。创建启动配置后,无法修改启动配置。要更改 Auto Scaling 组的启动配置,请将现有的启动配置作为新启动配置的基础。然后,按照以下步骤中所述,更新 Auto Scaling 组以使用新的启动配置。

更改 Auto Scaling 组的启动配置后,将使用新的配置选项启动所有新实例。现有实例不会受到影响。要更新现有实例,请终止这些实例,以便 Auto Scaling 组替换这些实例,或者根据您的终止策略.

要启用 Elastic Load Balancing 运行状

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的下Auto Scaling,选择启动配置.

  3. 选择启动配置,然后选择操作,那么复制启动配置. 这将设置与原启动配置选项相同的新启动配置,但在名称中会增加“Copy”文本。

  4. 在存储库的创建启动配置展开页面高级详细信息其他配置-可选.

  5. UCETIP 地址类型,选择请勿向任何实例分配公有 IP 地址.

  6. 完成后,选择。创建启动配置.

  7. 在导航窗格的 Auto Scaling 下,选择 Auto Scaling 组

  8. 选中 Auto Scaling 组旁边的复选框。

  9. 将在页面底部打开一个拆分窗格,其中显示有关所选组的信息。

  10. 详细信息选项卡上,选择启动配置编辑

  11. 对于启动配置,选择新的启动配置。

  12. 完成启动配置的更改后,选择更新.

[CloudFront .1] CloudFront 分配应配置默认的根对象

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

严重性:重大

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

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

类型:计划 已触发更改

参数:

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

用户有时可能会请求分配的根 URL,而不是分配中的对象。如果出现这种情况,指定默认根对象可以帮助您避免公开 Web 分配的内容。

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何为分配指定默认根对象的详细说明,请参阅。如何指定默认根对象中的Amazon CloudFront 开发人员指南.

[CloudFront .2] CloudFront 分配应启用源访问身份

类别:保护 > 安全访问管理 > 资源策略配置

严重性:

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

Amazon Config 规则:cloudfront-origin-access-identity-enabled

类型:计划 已触发更改

参数:

此控件检查具有 Amazon S3 源类型的 Amazon CloudFront 分配是否配置了源访问身份 (OAI)。如果未配置 OAI,则控件将失败。

CloudFront OAI 阻止用户直接访问 S3 存储桶内容。当用户直接访问 S3 存储桶时,他们有效地绕过 CloudFront 分配以及应用于底层 S3 存储桶内容的任何权限。

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关详细补救说明,请参阅创建 CloudFront OAI 并将其添加到您的分配中的Amazon CloudFront 开发人员指南.

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

类别:保护 > 传输中数据加密

严重性:

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

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

类型:Schedule 已触发更改

参数:

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

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

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关详细补救说明,请参阅要求在查看器和 CloudFront 之间使用 HTTPS 进行通信中的Amazon CloudFront 开发人员指南.

[CloudFront .4] CloudFront 分配应配置源故障转移

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

严重性:

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

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

类型:Schedule 已触发更改

参数:

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

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

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关详细补救说明,请参阅创建源组中的Amazon CloudFront 开发人员指南.

[CloudFront .5] CloudFront 分配应启用日志记录

类别:识别 > 日志记录

严重性:

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

Amazon Config 规则:cloudfront-accesslogs-enabled

类型:Schedule 已触发更改

参数:

  • S3BucketName(可选)— 要向其发送日志的 S3 存储桶

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

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

这些日志对于安全和访问审计以及取证调查等应用程序很有用。有关如何分析访问日志的其他指导,请参阅查询 Amazon CloudFront 日志中的Amazon Athena 用户指南.

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何为 CloudFront 分配配配置访问日志记录的信息,请参阅。配置和使用标准日志(访问日志)中的Amazon CloudFront 开发人员指南.

[CloudFront.6] CloudFront 发行版应该有Amazon WAF已启用

类别:保护 > 保护性服务

严重性:

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

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

类型:Schedule 已触发更改

参数:

  • wafWebAclIds(可选)-以逗号分隔的 Web ACL ID 列表(Amazon WAF) 或 Web ACL ARN(用于Amazon WAFv2)。

此控件检查 CloudFront 分配是否与Amazon WAF要么Amazon WAFv2 网络 ACL。如果分配与 Web ACL 没有关联,则控件将失败。

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

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何将 Web ACL 与 CloudFront 分配关联的信息,请参阅使用Amazon WAF控制对您的内容的访问中的Amazon CloudFront 开发人员指南.

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

类别:保护 > 传输中数据加密

严重性:

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

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

类型:Schedule 已触发更改

参数:

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

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

注意

此控制仅适用于美国东部(弗吉尼亚北部)。以下区域不支持此选项:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要为您的 CloudFront 分配使用自定义 SSL/TLS 证书添加备用域名,请参阅添加备用域名CloudFront 开发人员指南中的。

修复

有关如何将 Web ACL 与 CloudFront 分配关联的信息,请参阅使用Amazon WAF控制对您的内容的访问中的Amazon CloudFront 开发人员指南.

[CloudTrail.1] CloudTrail 应启用并配置至少一个包含读取和写入管理事件的多区域跟踪。

类别:识别 > 日志记录

严重性:

资源类型: Amazon帐户

Amazon Config 规则:multi-region-cloudtrail-enabled

类型:Schedule 定期

参数:

  • readWriteType: ALL

该控制检查是否至少有一个多区域 CloudTrail 跟踪。它还会检查ExcludeManagementEventSources对于其中至少一条跟踪,参数为空。

Amazon CloudTrail 记录您账户的 Amazon API 调用并向您发送日志文件。记录的内容包括以下信息。

  • API 调用方的身份

  • API 调用的时间

  • API 调用方的源 IP 地址

  • 请求参数

  • Amazon 服务返回的响应元素

CloudTrail 提供了Amazon对账户进行的 API 调用,包括从Amazon Web Services Management Console、AmazonSDK,命令行工具。历史记录还包括来自更高级别 Amazon 服务(如 Amazon CloudFormation)的 API 调用。

这些区域有:Amazon由 CloudTrail 生成的 API 调用历史记录可用于安全分析、资源变更跟踪以及合规性审计。多区域跟踪还提供以下好处。

  • 多区域跟踪有助于检测在其他本不应使用的区域中发生的意外活动。

  • 多区域跟踪可确保默认情况下为跟踪启用全局服务事件日志记录。全局服务事件日志记录将记录 Amazon 全局服务生成的事件。

  • 对于多区域跟踪,所有读取和写入操作的管理事件将确保 CloudTrail 记录在所有Amazon账户的资源。

默认 CloudTrail 下,使用Amazon Web Services Management Console是多区域步道。

修复

要修复此问题,请在 CloudTrail 中创建新的多区域跟踪。

在 CloudTrail 中创建新跟踪

  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 如果以前未使用过 CloudTrail,请选择立即开始.

  3. 选择 Trails (跟踪),然后选择 Create trail (创建跟踪)

  4. 输入跟踪的名称。

  5. Storage location (存储位置) 下,执行下列操作之一:

    1. 要为 CloudTrail 日志创建新 S3 存储桶,请执行以下操作:创建新 S3 存储桶,选择,然后输入新 S3 存储桶的名称。

    2. 要使用现有 S3 存储桶,对于 Create a new S3 bucket (创建新 S3 存储桶),请选择 No (否),然后选择要使用的 S3 存储桶。

  6. UDET其他设置,选择Advanced. 适用于启用日志文件验证,选择Enabled (已启用).

  7. 选择创建

要更新 CloudTrail 中的现有跟踪

  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. Name (名称) 列中选择跟踪的名称。

  4. 对于 Management events(管理事件),选择 Edit(编辑)。

  5. 适用于读/写事件,选择管理事件.

  6. UDETAPI 活动,选择Read写入.

[CloudTrail.2] CloudTrail 应启用静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::CloudTrail::Trail

Amazon Config 规则:cloud-trail-encryption-enabled

类型:Schedule 定期

参数:

该控制检查 CloudTrail 是否配置为使用服务器端加密 (SSE)Amazon KMS key加密进行存储。如果定义了 KmsKeyId,则检查通过。

要增加敏感 CloudTrail 日志文件的安全性,您应使用使用服务器端加密Amazon KMS— 托管密钥 (SSE-KMS)用于用于静态加密的 CloudTrail 日志文件。请注意,默认情况下,CloudTrail 提交到您存储桶的日志文件是用使用 Amazon S3 托管加密密钥进行亚马逊服务器端加密 (SSE-S3).

修复

要修复此问题,请更新您的跟踪以便为日志文件启用 SSE-KMS 加密。

为 CloudTrail 日志启用加密

  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. 选择要更新的跟踪。

  4. UDET一般细节,选择编辑.

  5. 适用于日志文件 SSE-KMS 加密,选择Enabled (已启用).

  6. 对于 Create a new KMS key (创建新的 KMS 密钥),执行以下操作之一:

    • 要创建密钥,请选择New. 然后在Amazon KMS化名,输入密钥的别名。密钥是在与 S3 存储桶相同的区域中创建的。

    • 要使用现有的密钥,请选择已存在,然后从Amazon KMS化名,选择密钥。

      Amazon KMS 密钥和 S3 存储桶必须位于同一区域。

  7. 选择保存

    您可能需要修改 CloudTrail 的策略才能成功与 KMS 密钥进行交互。有关更多信息,请参阅 。使用加密 CloudTrail 日志文件Amazon KMS— 托管密钥 (SSE-KMS)中的Amazon CloudTrail用户指南.

[CloudTrail.4] 确保启用 CloudTrail 日志文件验证

类别:数据保护 > 数据完整性

严重性:

资源类型: AWS::CloudTrail::Trail

Amazon Config 规则:cloud-trail-log-file-validation-enabled

类型:Schedule 定期

参数:

该控制检查 CloudTrail 跟踪是否启用了日志文件完整性验证。

CloudTrail 日志文件验证会创建一个数字签名摘要文件,其中包含 CloudTrail 写入 Amazon S3 的每个日志的哈希值。您可以使用这些摘要文件来确定在 CloudTrail 传送日志后,日志文件是已更改、删除还是未更改。

Security Hub 建议您对所有跟踪启用文件验证。日志文件验证为 CloudTrail 日志提供额外的完整性检查。

有关更多信息,请参阅 。启用验证并验证文件中的Amazon CloudTrail用户指南.

修复

要修复此问题,请更新 CloudTrail 跟踪以启用日志文件验证。

启用 CloudTrail 日志文件验证

  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. UDET名称中,选择要编辑的跟踪的名称。

  4. UDET一般细节,选择编辑.

  5. UDET其他设置,对于验证日志文件,选择Enabled (已启用).

  6. 选择保存更改

有关更多信息,请参阅 。验证 CloudTrail 日志文件完整性中的Amazon CloudTrail用户指南.

[CloudTrail .5] 确保 CloudTrail 跟踪与 Amazon CloudWatch Logs 集成

类别:识别 > 日志记录

严重性:

资源类型: AWS::CloudTrail::Trail

Amazon Config 规则:cloud-trail-cloud-watch-logs-enabled

类型:Schedule 定期

参数:

该控制检查是否配置了 CloudTrail 跟踪以将日志发送到 CloudWatch Logs。如果CloudWatchLogsLogGroupArn该跟踪的属性为空。

CloudTrail 记录Amazon在指定账户中进行的 API 调用。记录的内容包括以下内容:

  • API 调用方的身份

  • API 调用的时间

  • API 调用方的源 IP 地址

  • 请求参数

  • 返回的响应元素Amazon服务

CloudTrail 使用 Amazon S3 进行日志文件存储和传送。您可以在指定的 S3 存储桶中捕获 CloudTrail 日志以进行长期分析。要执行实时分析,您可以将 CloudTrail 配置为将日志发送到 CloudWatch Logs。

对于在账户中的所有区域启用的跟踪,CloudTrail 将所有这些区域的日志文件发送到 CloudWatch Logs 日志组。

Security Hub 建议您将 CloudTrail 日志发送到 CloudWatch Logs。请注意,此建议旨在确保捕获、监控账户活动并具有适当的警报。您可以使用 CloudWatch Logs 将其设置为Amazon服务。这项建议并不排除使用不同的解决办法。

将 CloudTrail 日志发送到 CloudWatch Logs 有利于基于用户、API、资源和 IP 地址的实时和历史活动。您可以使用此方法为异常或敏感账户活动建立警报和通知。

修复

您可以使用控制台启用 CloudTrail 与 CloudWatch Logs 集成。

启用 CloudTrail 与 CloudWatch Logs 的集成

  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. 选择没有价值的跟踪CloudWatch Logs 日志组.

  4. UDETCloudWatch Logs (CloudWatch 日志),选择编辑.

  5. 选择 Enabled (已启用)

  6. 适用于日志组,执行以下操作之一:

    • 要使用默认日志组,请保持名称不变。

    • 要使用现有日志组,请选择Severity然后,输入要使用的日志组的名称。

    • 要创建新的日志组,请选择New然后为要创建的日志组输入一个名称。

  7. 对于 IAM role (IAM 角色),执行以下操作之一:

    • 要使用现有的角色,请选择Severity然后从下拉列表中选择角色。

    • 要创建新角色,请选择New然后为要创建的角色输入一个名称。将为新角色分配一个策略以授予所需的权限。

    要查看授予角色的权限,请展开策略文档.

  8. 选择保存更改

有关更多信息,请参阅 。通过控制台配置 CloudWatch Logs 监控中的Amazon CloudTrail用户指南.

[CodeBuild.1] CodeBuild GitHub 或 Bitbucket 源存储库 URL 应使用 OAuth

类别:保护 > 安全开发

严重性:重大

资源类型: AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-source-repo-url-check

类型:Schedule 已触发更改

参数:

该控制检查 GitHub 或 Bitbucket 源存储库 URL 是否包含个人访问令牌或用户名和密码。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

身份验证凭证绝不应以明文方式存储或传输,也不应显示在存储库 URL 中。您应该使用 OAuth 授予权限以访问 GitHub 或 Bitbucket 存储库,而不是使用个人访问令牌或用户名和密码。使用个人访问令牌或用户名和密码可能会导致您的凭证遭受意外的数据暴露和未经授权的访问。

修复

你可以更新你的 CodeBuild 项目以使用 OAuth。

从 CodeBuild 项目源中删除基本身份验证/(GitHub) 个人访问令牌

  1. 打开 https://console.aws.amazon.com/codebuild/ 上的 CodeBuild 控制台。

  2. 选择包含个人访问令牌或用户名和密码的构建项目。

  3. Edit (编辑) 中,选择 Source (源)

  4. 选择 Disconnect from GitHub / Bitbucket (从 GitHub/Bitbucket 断开连接)

  5. 选择 Connect using OAuth (使用 OAuth 连接),然后选择 Connect to GitHub / Bitbucket (连接到 GitHub/Bitbucket)

  6. 出现提示时,选择 authorize as appropriate (相应授权)

  7. 根据需要,重新配置存储库 URL 和其他配置设置。

  8. 选择 Update source (更新源)

有关更多信息,请参阅CodeBuild 基于使用案例的示例中的Amazon CodeBuild用户指南.

[CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证

类别:保护 > 安全开发

严重性:重大

资源类型: AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-envvar-awscred-check

类型:Schedule 已触发更改

参数:

该控制检查项目是否包含环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

身份验证凭证 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 决不能以明文方式存储,因为这可能会导致意外的数据暴露和未经授权的访问。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要修复此问题,请更新 CodeBuild 项目以删除环境变量。

从 CodeBuild 项目中删除环境变量

  1. 打开 https://console.aws.amazon.com/codebuild/ 上的 CodeBuild 控制台。

  2. 展开 Build (构建)

  3. 选择 Build project (构建项目),然后选择包含明文凭证的构建项目。

  4. Edit (编辑) 中,选择 Environment (环境)

  5. 展开 Additional configuration (其他配置)

  6. 选择环境变量旁边的 Remove (删除)

  7. 选择 Update environment (更新环境)

要将敏感值存储在 Amazon EC2 Systems Manager 参数存储区中,然后从您的生成规范中检索它们

  1. 打开 https://console.aws.amazon.com/codebuild/ 上的 CodeBuild 控制台。

  2. 展开 Build (构建)

  3. 选择 Build project (构建项目),然后选择包含明文凭证的构建项目。

  4. Edit (编辑) 中,选择 Environment (环境)

  5. 展开 Additional configuration (其他配置),然后滚动到 Environment variables (环境变量)

  6. 跟随本教程创建包含敏感数据的 Systems Manager 参数。

  7. 在创建参数后,复制参数名称。

  8. 返回到 CodeBuild 控制台,请选择创建环境变量.

  9. 输入在构建规范中显示的变量名称。

  10. 对于 Value (值),粘贴参数名称。

  11. 对于 Type (类型),选择 Parameter (参数)

  12. 要删除包含明文凭证的不合规环境变量,请选择 Remove (删除)

  13. 选择 Update environment (更新环境)

有关更多信息,请参阅 。构建环境中的环境变量中的Amazon CodeBuild用户指南.

[Config.1] 应启用 Amazon Config

类别:识别 > 清单

严重性:

资源类型: Amazon帐户

Amazon Config规则:

类型:Schedule 定期

参数:

该控制检查是否已在账户中为本地区域启用了 Amazon Config,并记录所有资源。

Amazon Config 服务对您账户中支持的 Amazon 资源执行配置管理,并向您提供日志文件。记录的信息包括配置项(Amazon 资源)、配置项之间的关系以及资源之间的任何配置更改。

Security Hub 建议您启用Amazon Config在所有区域。Amazon Config 捕获的 Amazon 配置项历史记录可用于安全分析、资源更改跟踪和合规性审计。

注意

由于 Security Hub 是一项区域性服务,因此,针对此控制执行的检查仅检查账户的当前区域。它不会检查所有区域。

要允许针对每个区域中的全局资源进行安全检查,您还必须记录全局资源。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

要了解更多信息,请参阅开始使用Amazon Config中的Amazon Config开发人员指南.

修复

启用之后Amazon Config中,将其配置为记录所有资源。

配置 Amazon Config 设置

  1. 通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/

  2. 选择要在其中配置 Amazon Config 的区域。

  3. 如果您以前未使用过 Amazon Config,请选择 Get started (开始使用)

  4. Settings (设置) 页面上,执行以下操作:

    1. UDET要记录的资源类型,选择记录该地区支持的所有资源包括全球资源(例如Amazon为 IAM 资源).

    2. UDETAmazon Config角色,要么选择CreateAmazon Config服务相关角色要么从您的账户中选择一个角色然后选择要使用的角色。

    3. Amazon S3 bucket (Amazon S3 存储桶) 下面,指定要使用的存储桶,或者创建存储桶并包括前缀(可选)。

    4. UDETAmazon SNS 主题,从您的账户中选择 Amazon SNS 主题,或者创建一个主题。有关 Amazon SNS 的更多信息,请参阅Amazon Simple Notification Service 入门指南.

  5. 选择 Next(下一步)。

  6. 在存储库的Amazon Config规则页面,选择下一步.

  7. 选择 Confirm(确认)。

有关如何使用的更多信息Amazon Config来自 的Amazon CLI请参阅启用Amazon Config中的Amazon Config开发人员指南.

您还可以使用 Amazon CloudFormation 模板自动执行这一过程。有关更多信息,请参阅 。Amazon CloudFormationStackSets 示例模板中的Amazon CloudFormation用户指南.

[DMS.1]Amazon Database Migration Service复制实例不应该是公共实例

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

严重性:重大

资源类型: AWS::DMS::ReplicationInstance

Amazon Config 规则:dms-replication-not-public

类型:Schedule 定期

参数:

该控制检查是否Amazon DMS复制实例是公有实例。为此,它检查了PubliclyAccessible字段中返回的子位置类型。

私有复制实例具有无法从复制网络之外访问的私有 IP 地址。当源数据库和目标数据库位于相同的网络中时,复制实例应具有私有 IP 地址。还必须使用 VPN 将网络连接到复制实例的 VPC,Amazon Direct Connect,或 VPC 对等连接。要详细了解公有和私有复制实例,请参阅公有和私有复制实例中的Amazon Database Migration Service用户指南.

你还应该确保访问Amazon DMS实例配置仅限于授权用户。为此,请限制用户的 IAM 修改权限Amazon DMS设置和资源。

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

请注意,创建复制实例后,您无法更改公共访问设置。必须删除并重新创建它。

配置Amazon DMS复制实例设置为阻止公共访问

  1. 打开 Amazon Database Migration Service 控制台 (https://console.aws.amazon.com/dms/)。

  2. 导航到复制实例,然后删除公共实例。选择实例,选择操作选择,然后选择删除.

  3. 选择创建复制实例。提供配置详细信息。

  4. 要禁用公有访问,请确保公开访问未选中。

  5. 选择创建

有关更多信息,请参阅创建复制实例中的Amazon Database Migration Service用户指南.

[DynamoDB.1] DynamoDB 表应根据需求自动扩展容量

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

严重性:

资源类型: AWS::DynamoDB::Table

Amazon Config 规则:dynamodb-autoscaling-enabled

类型:Schedule 定期

参数:

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

按需容量模式下的 DynamoDB 表仅受 DynamoDB 吞吐量默认表配额限制。要提高这些配额,您可以通过以下方式提交支持票Amazon Web Services Support.

使用自动扩展的预配置模式下的 DynamoDB 表可以根据流量模式动态调整预配置的吞吐量容量。有关 DynamoDB 请求限制的其他信息,请参阅请求限制和突发容量中的Amazon DynamoDB 开发人员指南.

注意

中不支持该控制AmazonGovCloud(美国东部)或AmazonGovCloud(美国西部)。

修复

有关在容量模式下对现有表启用 DynamoDB 自动扩展的详细说明,请参阅在现有表上启用 DynamoDB 自动扩展中的Amazon DynamoDB 开发人员指南.

[DynamoDB .2] DynamoDB 表应启用时间点恢复

类别:恢复 > 弹性 > 已启用备份

严重性:

资源类型: AWS::DynamoDB::Table

Amazon Config 规则:dynamodb-pitr-enabled

类型:Schedule 已触发更改

参数:

该控制检查是否为 Amazon DynamoDB 表启用了时间点恢复 (PITR)。

备份可帮助您更快地从安全事件中恢复。它们还可以加强系统的弹性。DynamoDB 时间点恢复可自动执行 DynamoDB 表的备份。它减少了从意外删除或写入操作中恢复的时间。启用了 PITR 的 DynamoDB 表可以还原到最近 35 天中的任何时间点。

修复

要修复此问题,请将时间点恢复添加到 DynamoDB 表。

为现有表启用 DynamoDB 时间点恢复

  1. https://console.aws.amazon.com/dynamodb/ 打开 DynamoDB 控制台。

  2. 选择要处理的表,然后选择备份.

  3. 时间点恢复部分,下状态,选择启用.

  4. 选择启用再次确认更改。

[DynamoDB .3] DynamoDB 加速器 (DAX) 集群应在静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::DAX::Cluster

Amazon Config 规则:dax-encryption-enabled

类型:Schedule 定期

参数:

该控制检查 DAX 集群是否进行静态加密。

对静态数据进行加密可降低存储在磁盘上的数据被未经过身份验证的用户访问的风险Amazon. 加密添加了另一组访问控制措施,以限制未经授权的用户访问数据的能力。例如,在读取数据之前,需要 API 权限才能解密数据。

修复

创建集群集群后,无法启用或禁用静态加密。为启用静态加密,必须重新创建集群。有关如何创建启用静态加密的 DAX 集群的详细说明,请参阅使用启用静态加密Amazon Web Services Management Console中的Amazon DynamoDB 开发人员指南.

[EC2.1] Amazon EBS 快照不应公开,这取决于所有人都可恢复的能力

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

严重性:重大

资源类型: Amazon帐户

Amazon Config 规则:ebs-snapshot-public-restorable-check

类型:Schedule 定期

参数:

该控制检查 Amazon Elastic Block Store 快照是否未公开,这取决于所有人都可进行还原的能力。

EBS 快照用于在特定时间点将 EBS 卷上的数据备份到 Amazon S3。您可以使用快照还原 EBS 卷的先前状态。与公众共享快照几乎是不允许的。通常,公开共享快照的决定要么是决策错误,要么是没有完全理解其含义。此检查有助于确保所有此类共享都是完全经过规划并且是有意进行的。

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

要修复此问题,请更新 EBS 快照以将其设为私有而不是公开。

将公有 EBS 快照变为私有快照

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的下Elastic Block Store,选择快照菜单,然后选择公有快照。

  3. Actions (操作) 中,选择 Modify permissions (修改权限)

  4. 选择 Private (私有)

  5. (可选)添加Amazon要与其共享快照的授权账户的账号,然后选择添加权限.

  6. 选择保存

[EC2.2] VPC 默认安全组不应允许入站和出站流量

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

严重性:

资源类型: AWS::EC2::SecurityGroup

Amazon Config 规则:vpc-default-security-group-closed

类型:Schedule 已触发更改

参数:

该控制检查 VPC 的默认安全组是否不允许入站或出站流量。

默认安全组的规则允许来自分配给相同安全组的网络接口(及其关联实例)的所有出站和入站流量。

我们不建议使用默认安全组。由于无法删除默认安全组,因此您应更改默认安全组规则设置以限制入站和出站流量。如果意外为 EC2 实例等资源配置了默认安全组,这可以防止意外的流量。

修复

要修复此问题,请创建新的安全组并将这些安全组分配给您的资源。要防止使用默认安全组,请删除其入站和出站规则。

创建新的安全组并将其分配给您的资源

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Security groups (安全组)。查看默认安全组详细信息以了解分配给它们的资源。

  3. 为资源创建一组最小权限安全组。有关如何创建安全组的详细信息,请参阅创建安全组中的Amazon VPC User Guide.

  4. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  5. 在 Amazon EC2 控制台上,将使用默认安全组的资源的安全组更改为您创建的最小权限安全组。请参阅更改实例的安全组中的Amazon VPC User Guide.

将新安全组分配给资源后,请从默认安全组中删除入站和出站规则。这可确保不使用默认安全组。

要从默认安全组中删除规则

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Security groups (安全组)

  3. 选择默认安全组,然后选择入站规则“选项卡” 选择编辑入站规则. 然后删除所有入站规则。选择 Save rules (保存规则)

  4. 对每个默认安全组重复上一步骤。

  5. 选择默认安全组,然后选择出站规则“选项卡” 选择编辑出站规则. 然后删除所有出站规则。选择 Save rules (保存规则)

  6. 对每个默认安全组重复上一步骤。

有关更多信息,请参阅 。使用安全组中的Amazon VPC User Guide.

[EC2.3] 连接的 EBS 卷应进行静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::EC2::Volume

Amazon Config 规则:encrypted-volumes

类型:Schedule 已触发更改

参数:

该控制检查处于连接状态的 EBS 卷是否已加密。要通过此检查,EBS 卷必须处于使用中并加密。如果 EBS 卷未挂载,则不需要接受此检查。

为了增加 EBS 卷中敏感数据的安全性,您应该启用静态 EBS 加密。Amazon EBS 加密提供了直接用于 EBS 资源的加密解决方案,无需您构建、维护和保护自己的密钥管理基础设施。它在创建加密卷和快照时使用 KMS 密钥。

要了解有关 Amazon EBS 加密的更多信息,请参阅Amazon EBS 加密中的适用于 Linux 实例的 Amazon EC2 用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

没有直接对现有未加密卷或快照进行加密的方法。您只能在新的卷或快照创建时对其进行加密。

如果您启用了默认加密,Amazon EBS 使用您用于 Amazon EBS 加密的默认密钥对生成的新卷或快照实施加密。即使您未启用默认加密,也可以在创建单个卷或快照时启用加密。在这两种情况下,您可以覆盖 Amazon EBS 加密的默认密钥并选择对称客户托管密钥。

有关更多信息,请参阅 。创建 Amazon EBS 卷复制 Amazon EBS 快照中的适用于 Linux 实例的 Amazon EC2 用户指南.

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

类别:识别 > 清单

严重性:

资源类型: AWS::EC2::Instance

Amazon Config 规则:ec2-stopped-instance

类型:Schedule 定期

参数:

  • allowedDays: 30

该控制检查是否有 EC2 实例的停止时间超过了允许的天数。如果 EC2 实例的停止时间超过允许的最长时间(默认情况下为 30 天),则 EC2 实例将失败此检查。

失败的发现表明 EC2 实例在很长一段时间内没有运行。这会产生安全风险,因为 EC2 实例没有被主动维护(分析、修补、更新)。如果稍后启动,缺乏适当的维护可能会导致您的意外问题Amazon环境。要在一段时间内安全地维护 EC2 实例处于非运行状态,请定期启动它进行维护,然后在维护后停止它。理想情况下这是一个自动化过程

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

您可以使用控制台或命令行终止 EC2 实例。

在终止 EC2 实例之前,请确认您不会丢失任何数据:

  • 检查终止时是否不会删除您的 Amazon EBS 卷。

  • 将您需要的所有数据从 EC2 实例存储卷复制到 Amazon EBS 或 Amazon S3。

终止 EC2 实例(控制台)

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的 Instances 下,选择 Instances

  3. 选择实例,然后选择操作实例状态终止.

  4. 当系统提示您确认时,选择 Yes, Terminate(是,终止)。

终止 EC2 实例 (Amazon CLI, Tools for Windows PowerShell)

使用以下命令之一。有关命令行界面的更多信息,请参阅访问 Amazon EC2中的适用于 Linux 实例的 Amazon EC2 用户指南.

要了解有关终止实例的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的终止实例

[EC2.6] 应在所有 VPC 中启用 VPC 流日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::EC2::VPC

Amazon Config 规则:vpc-flow-logs-enabled

类型:Schedule 定期

参数:

  • trafficType: REJECT

此控件检查是否为 VPC 找到并启用了 Amazon VPC 流日志。流量类型设置为Reject.

借助 VPC Flow Logs 功能,您可以捕获有关在您的 VPC 中传入和传出网络接口的 IP 地址流量的信息。创建流日志后,您可以在 CloudWatch Logs 中查看和检索其数据。为了降低成本,您还可以将流日志发送到 Amazon S3。

Security Hub 建议您为 VPC 拒绝启用流日志记录。流日志提供对穿过 VPC 的网络流量的可见性,并可在安全工作流程中检测异常流量或提供见解。

默认情况下,记录包括 IP 地址流的不同组件的值,包括源、目标和协议。有关日志字段的更多信息和说明,请参阅VPC 流日志中的Amazon VPC User Guide.

修复

要修复此问题,请启用 VPC 流日志记录。

启用 VPC 流日志记录

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. UDETVirtual Private Cloud,选择您的 VPC.

  3. 选择要更新的 VPC。

  4. 在页面底部,选择流日志.

  5. 选择 Create flow log (创建流日志)

  6. 对于 Filter (筛选条件),选择 Reject (拒绝)

  7. 适用于目标日志组中,选择要使用的日志组。

  8. 适用于IAM 角色中,选择要使用的 IAM 角色。

  9. 选择创建

[EC2.7] 应启用 EBS 默认加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: Amazon帐户

Amazon Config 规则:ec2-ebs-encryption-by-default

类型:Schedule 定期

参数:

默认情况下,Amazon Elastic Block Store (Amazon EBS) 账户级加密。如果未启用账户级别加密,则控件将失败。

为您的账户启用加密后,Amazon EBS 卷和快照副本将进行静态加密。这为您的数据添加了额外的保护。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的默认加密

请注意,以下实例类型不支持加密:R1、C1 和 M1。

修复

您可以使用 Amazon EC2 控制台为 Amazon EBS 卷启用默认加密。

要为某个区域配置 Amazon EBS 加密的默认加密

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航窗格中,选择 EC2 控制面板

  3. 在页面右上角,选择账户属性、EBS 加密.

  4. 选择管理

  5. 选择 Enable (启用)。你可以保留Amazon 托管式密钥用别名alias/aws/ebs您可以将默认加密密钥以您的名义创建,或者选择对称的客户托管密钥。

  6. 选择更新 EBS 加密

[EC2.8] EC2 实例应使用 imdsv2

类别:保护 > 网络安全

严重性:

资源类型: AWS::EC2::Instance

Amazon Config 规则:ec2-imdsv2-check

类型:Schedule 已触发更改

参数:

该控制检查是否使用实例元数据版本 2 (IMDSv2) 配置了 EC2 实例元数据服务版本。如果控制通过HttpTokens对于 imdsv2,设置为必填项。如果控件失败HttpTokens设置为optional.

您可以使用实例元数据来配置或管理正在运行的实例。IMDS 提供了对临时、经常轮换的证书的访问权限。这些凭证无需手动或编程方式对实例进行硬编码或将敏感凭据分发给实例。IMDS 在本地附加到每个 EC2 实例。它在 169.254.169.254 的特殊的 “本地链接” IP 地址上运行。只有在实例上运行的软件才能访问此 IP 地址。

IMDS 的第 2 版为以下类型的漏洞添加了新的保护措施。这些漏洞可用于尝试访问 IMDS。

  • 打开网站应用程序防火墙

  • 打开反向代理

  • 服务器端请求伪造 (SSRF) 漏洞

  • 开放式第 3 层防火墙和网络地址转换 (NAT)

Security Hub 建议您使用 IMDSv2 配置 EC2 实例。

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

要修复未配置 imdsv2 的 EC2 实例,您可以要求使用 imdsv2。

要在现有实例上要求 IMDSv2,请求实例元数据时,请修改 Amazon EC2 元数据选项。按照中的说明进行操作为现有实例配置实例元数据选项中的适用于 Linux 实例的 Amazon EC2 用户指南.

要使在启动新实例时要求在 IMDSv2 上使用 IMDSv2,请按照中的说明进行操作。为新实例配置实例元数据选项中的适用于 Linux 实例的 Amazon EC2 用户指南.

从控制台使用 imdsv2 配置新的 EC2 实例

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择启动实例然后选择启动实例.

  3. 配置实例详细信息步骤,下高级细节,对于元数据版本,选择V2(令牌必填).

  4. 选择 Review and Launch

如果您的软件使用 IMDSv1,您可以重新配置软件,以使用 IMDSv2。有关详细信息,请参阅。转换为使用实例元数据服务版本 2中的适用于 Linux 实例的 Amazon EC2 用户指南.

[EC2.9] EC2 实例不应具有公有 IP 地址

类别:保护 > 安全网络配置 > 公有 IP 地址

严重性:

资源类型: AWS::EC2::Instance

Amazon Config 规则:ec2-instance-no-public-ip

类型:Schedule 已触发更改

参数:

该控制检查 EC2 实例是否具有公有 IP 地址。如果publicIpEC2 实例配置项中显示字段。此控制仅适用于 IPv4 地址。

公有 IPv4 地址是指可通过 Internet 访问的 IP 地址。如果您使用公有 IP 地址启动实例,则可从 Internet 访问 EC2 实例。私有 IPv4 地址是指无法通过 Internet 访问的 IP 地址。您可以使用私有 IPv4 地址在同一 VPC 或已连接的私有网络中的 EC2 实例之间进行通信。

IPv6 地址具有全局唯一性,因此可从 Internet 访问。但是,默认情况下,所有子网的 IPv6 寻址属性都设置为 false。有关 IPv6 的更多信息,请参阅VPC 中的 IP 寻址中的Amazon VPC User Guide.

如果您有合法的使用案例来维护带有公有 IP 地址的 EC2 实例,那么您可以禁止此控件中的调查结果。有关前端架构选项的更多信息,请参阅Amazon建筑博客或者这是我的架构系列.

修复

请使用非默认 VPC,以便默认情况下不会为实例分配公有 IP 地址。

在默认 VPC 中启动 EC2 实例时,系统会分配公有 IP 地址。当您在非默认 VPC 中启动 EC2 实例时,子网配置将确定它是否接收公有 IP 地址。该子网具有一个用于确定子网中的新 EC2 实例是否从公有 IPv4 地址池接收公有 IP 地址的属性。

您不能从 EC2 实例手动关联或取消关联自动分配的公有 IP 地址。要控制 EC2 实例是否接收公有 IP 地址,请执行以下操作之一:

有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的公有 IPv4 地址和外部 DNS 主机名

如果 EC2 实例与弹性 IP 地址关联,则可从 Internet 访问 EC2 实例。您可以随时取消弹性 IP 地址与实例或网络接口的关联。

撤销弹性 IP 地址的关联

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Elastic IPs

  3. 选择要取消关联的弹性 IP 地址。

  4. 操作,选择取消弹性 IP 地址的关联.

  5. 选择取消关联

[EC2.10] 应将 Amazon EC2 配置为使用为 Amazon EC2 服务创建的 VPC 终端节点

类别:保护-安全网络配置 > API 私有访问

严重性:

资源类型: AWS::EC2::VPC

Amazon Config 规则:service-vpc-endpoint-enabled

类型:Schedule 定期

参数:

  • serviceName: ec2

此控制检查是否为每个 VPC 创建了 Amazon EC2 的服务终端节点。如果 VPC 没有为 Amazon EC2 服务创建 VPC 终端节点,则该控制将失败。

此控件评估单个账户中的资源。它无法描述账户之外的资源。由于Amazon Config而且 Security Hub 不进行跨账户检查,你会看到FAILED跨账户共享的 VPC 的调查结果。Security Hub 建议你禁止这些FAILED结果。

要改善 VPC 的安全状况,您可以将 Amazon EC2 配置为使用接口 VPC 终端节点。接口终端节点由以下公司提供提供支持Amazon PrivateLink,该技术使您能够私下访问 Amazon EC2 API 操作。它将 VPC 和 Amazon EC2 之间的所有网络流量限制在 Amazon 网络以内。由于终端节点仅在同一区域内受支持,因此无法在 VPC 和其他区域内的服务之间创建终端节点。这可以防止意外的 Amazon EC2 API 调用其他区域。

要了解有关为 Amazon EC2 创建 VPC 终端节点的更多信息,请参阅Amazon EC2 和接口 VPC 终端节点中的适用于 Linux 实例的 Amazon EC2 用户指南.

修复

要修复此问题,您可以为 Amazon EC2 创建接口 VPC 终端节点。

从 Amazon VPC 控制台创建指向 Amazon EC2 的接口终端节点

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)

  3. 选择 Create Endpoint(创建终端节点)。

  4. 对于服务类别,选择 Amazon 服务

  5. 适用于服务名称,选择com.amazonaws. <region>.ec2.

  6. 适用于类型,选择接口.

  7. 完成以下信息。

    1. 对于 VPC,选择要在其中创建端点的 VPC。

    2. 对于 Subnets(子网),选择要在其中创建端点网络接口的子网(可用区)。并非所有可用区都支持所有可用区Amazon服务。

    3. 要为接口终端节点启用私有 DNS,请选中启用 DNS 名称. 默认情况下,此选项处于启用状态。

      要使用私有 DNS 选项,您的 VPC 的以下属性必须设置为 true:

      • enableDnsHostnames

      • enableDnsSupport

      有关更多信息,请参阅 Amazon VPC 用户指南中的查看和更新 VPC 的 DNS 支持

    4. 对于 Security group(安全组),选择要与端点网络接口关联的安全组。

    5. (可选)添加或删除标签。要添加标签,请选择添加标签然后执行以下操作:

      • 适用于密钥中,输入标签名称。

      • 对于 Value(值),输入键值。

    6. 要删除标签,请选择删除按钮 (x) 在标签的右侧密钥.

  8. 选择Create endpoint

创建接口 VPC 终端节点策略

您可以向 VPC 终端节点附加策略来控制对 Amazon EC2 API 的访问。此策略指定以下内容:

  • 可执行操作的委托人

  • 可执行的操作

  • 可对其执行操作的资源

有关创建 VPC 终端节点策略的更多详细信息,请参阅Amazon EC2 和接口 VPC 终端节点适用于 Linux 实例的 Amazon EC2 用户指南.

[EC2.15] EC2 子网不应自动分配公有 IP 地址

类别:保护 > 网络安全

严重性:

资源类型: AWS::EC2::Subnet

Amazon Config 规则:subnet-auto-assign-public-ip-disabled

类型:Schedule 已触发更改

参数:

该控制检查 Amazon Virtual Private Cloud (Amazon VPC) 子网中的公有 IP 分配是否具有MapPublicIpOnLaunch设置FALSE. 如果标记设置为,控件将通过FALSE.

所有子网都有一个用于确定在子网中创建的网络接口是否自动接收公有 IPv4 地址的属性。启动到启用了此属性的子网中的实例将为其主网络接口分配一个公有 IP 地址。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以从 Amazon VPC 控制台配置子网。

将子网配置为不分配公有 IP 地址

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets (子网)

  3. 选择您的子网,然后选择子网操作修改自动分配 IP 设置.

  4. 清除启用自动分配公有 IPv4 地址复选框然后选择Save(保存).

[EC2.16] 应删除未使用的网络访问控制列表

类别:防止 > 网络安全

严重性:

资源类型: AWS::EC2::NetworkAcl

Amazon Config 规则:vpc-network-acl-unused-check

类型:Schedule 已触发更改

参数:

该控制检查是否有未使用的网络访问控制列表 (ACL)。

该控件检查资源的物料配置AWS::EC2::NetworkAcl并确定网络 ACL 的关系。

如果唯一的关系是网络 ACL 的 VPC,那么控件将失败。

如果列出了其他关系,那么控件就会通过。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何删除未使用的网络 ACL 的说明,请参阅删除网络 ACL中的Amazon VPC User Guide.

[EC2.17] EC2 实例不应使用多个 ENI

类别:网络安全

严重性:

资源类型: AWS::EC2::Instance

Amazon Config 规则:ec2-instance-multiple-eni-check

类型:Schedule 已触发更改

参数:

  • Adapterids(可选)— 附加到 EC2 实例的网络接口 ID 列表

此控件检查 EC2 实例是使用多个弹性网络接口 (ENI) 还是弹性结构适配器 (EFA)。如果使用单个网络适配器,则此控制通过。该控件包括一个可选的参数列表,用于标识允许的 ENI。

多个 ENI 可能会导致双宿主实例,这意味着具有多个子网的实例。这可能会增加网络安全复杂性,并引入意外的网络路径和访问。

如果属于 Amazon EKS 群集的 Amazon EKS 集群具有多个 ENI,则此控制也会失败。如果您需要使用具有多个 ENI 的 EC2 实例作为 Amazon EKS 集群的一部分,则可以禁止这些发现。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要修复此问题,请分离其他 ENI。

要分离网络接口

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 网络与安全下,选择网络接口

  3. 按不合规的实例 ID 筛选列表以查看关联的 ENI。

  4. 选择要删除的 ENI。

  5. 操作菜单,选择Detach.

  6. 如果你看到提示确定要分离以下网络接口吗?,选择Detach.

[EC2.18] 安全组应该只允许授权端口不受限制的传入流量

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

严重性:

资源类型: AWS::EC2::SecurityGroup

Amazon Config 规则:vpc-sg-open-only-to-authorized-ports

类型:Schedule 已触发更改

参数:

  • authorizedTcpPorts(可选)— 允许不受限制访问的端口的逗号分隔列表。例如:'80, 443'. 对于此规则,authorizedTcpPorts分别为 80 和 443。

此控件检查正在使用的安全组是否允许不受限制的传入流量。或者,规则检查端口号是否列在authorizedTcpPorts参数。

  • 如果安全组规则端口号允许不受限制的传入流量,但是在authorizedTcpPorts,然后控制通过。authorizedTcpPorts 的默认值为 80, 443

  • 如果安全组规则端口号允许不受限制的传入流量,但是在中未指定端口号authorizedTcpPorts输入参数,那么控件将失败。

  • 如果未使用参数,则对于具有不受限制入站规则的任何安全组,控件将失败。

安全组提供对传入和传出网络流量的有状态筛选Amazon. 安全组规则应遵循最低特权访问权限的原则。无限制访问(带 /0 后缀的 IP 地址)增加了黑客攻击、拒绝服务攻击和数据丢失等恶意活动的机会。

除非特别允许端口,否则该端口应拒绝不受限制的访问。

注意

亚太地区(大阪)不支持此控制。

修复

有关如何修改安全组的信息,请参阅添加、删除或更新规则中的Amazon VPC User Guide.

[EC2.19] 安全组不应允许不受限制地访问高风险端口

类别:保护 > 受限网络访问

严重性:重大

资源类型: AWS::EC2::SecurityGroup

Amazon Config 规则:vpc-sg-restricted-common-ports(由 Security Hub 开发的自定义规则)

类型:Schedule 已触发更改

参数:

该控制检查安全组的不受限制的传入流量对于风险最高的指定端口是否可访问。当安全组中的任何规则均不允许这些端口从 0.0.0.0.0/0 的传入流量时,此控制通过。

无限制访问 (0.0.0/0) 增加了恶意活动的机会,包括黑客攻击、拒绝服务攻击和数据丢失。

安全组为 Amazon 资源提供传入和传出网络流量的有状态筛选。任何安全组都不应允许对以下端口进行不受限制的传入访问:

  • 20,121 (FTP)

  • 22 (SSH)

  • 23(远程登录)

  • 25 (SMTP)

  • 110 (POP3)

  • 135 (RPC)

  • 143 (IMAP)

  • 445 (CIFS)

  • 1433、1434(MSSQL)

  • 3000(Go、Node.js 和 Ruby Web 开发框架)

  • 3306 (MySQL)

  • 3389 (RDP)

  • 4333 (啊)

  • 5000(Python 网络开发框架)

  • 5432 (postgreSQL)

  • 5500(fcp-地址-srvr1)

  • 5601(打开搜索仪表板)

  • 8080(代理)

  • 8088(旧版 HTTP 端口)

  • 8888(替代 HTTP 端口)

  • 9200 或 9300 (OpenSearch)

修复

有关如何从安全组中删除规则的信息,请参阅从安全组中删除规则中的适用于 Linux 实例的 Amazon EC2 用户指南.

[EC2.20] 两个 VPN 隧道都用于Amazon应该启用 Site-to-Site VPN 连接

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

严重性:

资源类型:AWS::EC2::VPNConnection

Amazon Config 规则:vpc-vpn-2-tunnels-up

类型:计划 定期

参数:

VPN 隧道是加密链接,数据可以从客户网络传输到或从客户网络传输。Amazon内部AmazonSite-to-Site VPN 连接。每个 VPN 连接均包括两条 VPN 隧道,可以同时使用这两条隧道来实现高可用性。确保两个 VPN 隧道都可用于 VPN 连接对于确认一个安全且高度可用的连接至关重要AmazonVPC 和您的远程网络。

此控件检查是否提供了两个 VPN 隧道AmazonSite-to-Site VPN 处于 UP 状态。如果一个或两个隧道处于 DOWN 状态,则控制失败。

注意

以下区域不支持此控制:

  • 亚太地区(雅加达)

  • 亚太地区(大阪)

  • 中国(北京)

  • 中国(宁夏)

  • Middle East (Bahrain)

修复

要修改 VPN 隧道选项,请参阅修改站点到站点 VPN 隧道选项中的AmazonSite-to-Site VPN 用户指南。

[ECS.1] Amazon ECS 任务定义应具有安全的联网模式和用户定义

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::ECS::TaskDefinition

Amazon Config 规则:ecs-task-definition-user-for-host-mode-check

类型:计划 已触发更改

参数:

  • SkipInactiveTaskDefinitions: true

此控件检查具有主机联网模式的活动 Amazon ECS 任务定义是否也具有privileged要么user容器定义。对于具有主机网络模式和容器定义的任务定义,该控件失败privileged=false或者为空user=root或者为空。

如果任务定义具有提升的权限,那是因为客户特别选择了该配置。当任务定义启用了主机网络但客户尚未选择加入提升的权限时,此控制检查是否意外的权限提升。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何更新任务定义的信息,请参阅更新任务定义中的Amazon Elastic Container Service 开发人员.

请注意,更新任务定义时,它不会更新从之前的任务定义启动的正在运行的任务。要更新正在运行的任务,必须使用新的任务定义重新部署任务。

[ECS.2] Amazon ECS 服务不应自动为其分配公有 IP 地址

类别:保护 > 安全网络配置 > 不可公开访问的资源

严重性:

资源类型: AWS::ECS::Service

Amazon Config 规则:ecs-service-assign-public-ip-disabled(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

  • exemptEcsServiceArns (可选). Security Hub 不填充此参数。该规则免除的 Amazon ECS 服务 ARN 的逗号分隔列表。

    这条规则是COMPLIANT如果 Amazon ECS 服务AssignPublicIP设置ENABLED并在此参数列表中指定。

    这条规则是NON_COMPLIANT如果 Amazon ECS 服务AssignPublicIP设置ENABLED并且未在此参数列表中指定。

该控制检查 Amazon ECS 服务是否配置为自动分配公有 IP 地址。如果此控件失败AssignPublicIPENABLED. 如果这个控制通过AssignPublicIPDISABLED.

公有 IP 地址是指可通过 Internet 访问的 IP 地址。如果您使用公有 IP 地址启动 Amazon ECS 实例,则可从 Internet 访问 Amazon ECS 实例。Amazon ECS 服务不应可公开访问,因为这可能允许意外访问容器应用程序服务器。

注意

亚太地区(大阪)区域不支持此控制。

修复

要禁用自动公有 IP 分配,请参阅要为您的服务配置 VPC 和安全组设置,请执行以下操作:中的Amazon Elastic Container Service 开发人员.

[EFS.1] Amazon EFS 应配置为使用以下方式对文件数据静态加密Amazon KMS

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::EFS::FileSystem

Amazon Config 规则:efs-encrypted-check

类型:计划 定期

参数:

该控制检查 Amazon Elastic File System 是否配置为使用加密文件数据。Amazon KMS. 在以下情况下,检查失败。

请注意,此控件不使用KmsKeyId参数为efs-encrypted-check. 它只检查 Encrypted 的值。

要增加 Amazon EFS 中敏感数据的安全性,您应创建加密的文件系统。Amazon EFS 支持对静态文件系统进行加密。您可以在创建 Amazon EFS 文件系统时启用静态数据加密。要了解有关 Amazon EFS 加密的更多信息,请参Amazon EFS 中的数据加密中的Amazon Elastic File System 用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

有关如何加密新 Amazon EFS 文件系统的详细信息,请参阅对静态数据进行加密中的Amazon Elastic File System 用户指南.

[EFS.2] Amazon EFS 卷应该在备份计划中

类别:恢复 > 弹性 > Backup

严重性:

资源类型: AWS::EFS::FileSystem

Amazon Config 规则:efs-in-backup-plan

类型:计划 定期

参数:

该控制检查是否将 Amazon Elastic File System (Amazon EFS) 文件系统添加到中的备份计划。Amazon Backup. 如果备份计划中未包括 Amazon EFS 文件系统,则控制将失败。

在备份计划中包括 EFS 文件系统有助于保护数据免遭删除和数据丢失。

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要修复此问题,请更新文件系统以启用自动备份。

为现有文件系统启用自动备份

  1. 访问 https://console.aws.amazon.com/efs/,打开 Amazon Elastic File System 控制台。

  2. 在存储库的文件系统页面中,选择要启用自动备份的文件系统。

    这些区域有:文件系统详情此时将显示页面。

  3. UDET普通的,选择编辑.

  4. 要启用自动备份,请选择启用自动备份.

  5. 选择保存更改

要了解更多信息,请访问使用Amazon Backup使用 Amazon EFS中的Amazon Elastic File System 用户指南.

[ElasticBeanstalk.1] Elastic Beanstalk 环境应启用增强型运行状况报告

类别:检测服务 > 应用程序监控

严重性:

资源类型: AWS::ElasticBeanstalk::Environment

Amazon Config 规则:beanstalk-enhanced-health-reporting-enabled

类型:计划 已触发更改

参数:

该控制检查是否为您的Amazon Elastic Beanstalk环境。

Elastic Beanstalk 增强型运行状况报告可以更快地响应底层基础设施运行状况的变化。这些更改可能会导致应用程序缺乏可用性。

Elastic Beanstalk 增强型运行状况报告提供了一个状态描述符,用于衡量已确定问题的严重性并确定可能需要调查的 受支持的 Amazon 系统映像 (AMI) 中包含的 Elastic Beanstalk 运行状况代理可以评估环境 EC2 实例的日志和指标。

有关更多信息,请参阅增强型运行状况报告和监控中的Amazon Elastic Beanstalk开发人员指南.

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何启用增强型运行状况报告的说明,请参阅使用 Elastic Beanstalk 控制台启用增强型运行状况报告中的Amazon Elastic Beanstalk开发人员指南.

[ElasticBeanstalk.2] 应启用 Elastic Beanstalk 托管平台更新

类别:检测 > 漏洞、修补程序和版本管理

严重性:

资源类型: AWS::ElasticBeanstalk::Environment

Amazon Config 规则:elastic-beanstalk-managed-updates-enabled

类型:计划 已触发更改

参数:

此控件检查是否为 Elastic Beanstalk 环境启用托管平台更新。

启用托管平台更新可确保安装适用于环境的最新可用平台修复程序、更新和功能。及时了解补丁安装是保护系统安全的一个重要步骤。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何启用托管式平台更新的说明,请参阅在托管平台更新下配置托管平台更新中的Amazon Elastic Beanstalk开发人员指南.

[ELB.2] 具有 SSL/HTTPS 侦听器的经典负载均衡器应使用Amazon Certificate Manager

类别:传输中数据保护 > 加密

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-acm-certificate-required

类型:计划 已触发更改

参数:

该控制检查 Classic Load Balancer 是否使用提供的 HTTPS/SSL 证书。Amazon Certificate Manager(ACM)。如果配置了 HTTPS/SSL 侦听器的 Classic Load Balancer 不使用 ACM 提供的证书,则控件将失败。

要创建证书,您可以使用 ACM 或支持 SSL 和 TLS 协议的工具(如 OpenSSL)。Security Hub 建议您使用 ACM 为负载均衡器创建或导入证书。

ACM 与传统负载均衡器集成,以便您可以在负载均衡器上部署证书。您还应该自动续订这些证书。

注意

以下区域不支持这些控制:

  • 非洲(开普敦)

  • 亚太地区(大阪)

  • 中国(北京)

  • 中国(宁夏)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

修复

有关如何将 ACM SSL/TLS 证书与 Classic Load Balancer 关联的信息,请参阅知识中心文章如何将 ACM SSL/TLS 证书与传统、应用程序或 Network Load Balancer 关联?

[ELB.3] Classic Load Balancer 侦听器应配置 HTTPS 或 TLS 终止

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-tls-https-listeners-only

类型:计划 已触发更改

参数:

该控制检查 Classic Load Balancer 侦听器是否配置了 HTTPS 或 TLS 协议,用于前端(客户端到负载均衡器)连接。如果 Classic Load Balancer 有监听器,则该控制适用。如果您的 Classic Load Balancer 没有配置侦听器,则控件不会报告任何调查结果。

如果为前端连接配置了 TLS 或 HTTPS,则控制通过。

如果监听器没有为前端连接配置 TLS 或 HTTPS,则控件将失败。

在开始使用负载均衡器之前,您必须添加一个或多个侦听器。侦听器是使用配置的协议和端口检查连接请求的进程。侦听器可以支持 HTTP 和 HTTPS/TLS 协议。您应始终使用 HTTPS 或 TLS 侦听器,以便负载均衡器在传输过程中执行加密和解密工作。

修复

要修复此问题,请更新监听器以使用 TLS 或 HTTPS 协议。

将所有不合规的侦听器更改为 TLS/HTTPS 侦听器

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Load Balancers (负载均衡器)。然后选择 Classic Load Balancer。

  3. 选择侦听器选择选项卡,然后选择编辑.

  4. 对于所有在哪里的听众Load Balancer 协议未设置为 HTTPS 或 SSL,请将设置更改为 HTTPS 或 SSL。

  5. 对于所有修改过的监听器,请在SSL 证书,选择变更.

  6. 对于所有修改过的监听器,选择从 ACM 中选择证书.

  7. 从中选择证书证书下拉列表中)。然后选择 Save (保存)

  8. 更新所有监听器之后,选择Save(保存).

[ELB.4] 应将应用程序负载均衡器配置为删除 HTTP 标头

类别:保护 > 网络安全

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:alb-http-drop-invalid-header-enabled

类型:计划 已触发更改

参数:

此控件进行评估Amazon应用程序负载均衡器,以确保它们被配置为删除无效的 HTTP 标头。如果的值,则控件失败routing.http.drop_invalid_header_fields.enabled设置为false.

默认情况下,未将应用程序负载均衡器配置为删除无效的 HTTP 标头值。删除这些标头值可防止 HTTP dessync 攻击。

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 亚太地区(大阪)

  • 欧洲(米兰)

修复

要修复此问题,请将负载均衡器配置为删除无效的标头字段。

将负载均衡器配置为删除无效的标头字段

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Load Balancers (负载均衡器)

  3. 选择 Application Load Balancer。

  4. 操作,选择编辑属性.

  5. UDET删除无效的标头字段,选择启用.

  6. 选择保存

[ELB.5] 应启用应用程序和经典负载均衡器日志记录

类别:日志记录

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-logging-enabled

类型:计划 已触发更改

参数:

此控件检查应用程 Application Load Balancer 和传统负载均衡器是否启用了日志记录。如果控件失败access_logs.s3.enabledfalse.

Elastic Load Balancing 提供了访问日志,该访问日志可捕获有关发送到负载均衡器的请求的详细信息。每个日志都包含信息 (例如,收到请求的时间、客户端的 IP 地址、延迟、请求路径和服务器响应)。您可以使用这些访问日志分析流量模式并解决问题。

要了解更多信息,请参阅Classic Load Balancer 的访问日志Classic Load Balancer 用户指南.

修复

要修复此问题,请更新负载均衡器以启用日志记录。

启用访问日志

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Load Balancers (负载均衡器)

  3. 选择 Application Load Balancer。

  4. 操作,选择编辑属性.

  5. UDET访问日志,选择启用.

  6. 输入 S3 位置。这个位置可以存在,也可以为你创建它。如果不指定前缀,则访问日志将存储在 S3 存储桶的根目录中。

  7. 选择保存

[ELB.6] 应启用应用 Application Load Balancer 删除保护

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

严重性:

资源类型: AWS::ElasticLoadBalancingV2::LoadBalancer

Amazon Config 规则:elb-deletion-protection-enabled

类型:计划 已触发更改

参数:

该控制检查应用 Application Load Balancer 是否启用了删除保护。如果未配置删除保护,则控件将失败。

启用删除保护以保护应用程序负载均衡器免遭删除。

修复

为了防止您的负载均衡器被意外删除,您可以启用删除保护。默认情况下,已为负载均衡器禁用删除保护。

如果您为负载均衡器启用删除保护,则必须先禁用删除保护,然后才能删除负载均衡器。

从控制台启用删除保护

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 LOAD BALANCING(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择负载均衡器。

  4. Description (说明) 选项卡上,选择 Edit attributes (编辑属性)

  5. 在存储库的编辑负载均衡器属性页面中,选择启用删除保护,然后选择Save(保存).

  6. 选择保存

要了解更多信息,请参阅删除保护适用于应用程序负载均衡器的用户指南.

[ELB.7] 经典负载均衡器应启用连接耗尽

类别:恢复 > 弹性

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-connection-draining-enabled(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

该控制检查是否启用了传统负载均衡器。

在 Classic Load Balancers 上启用连接耗尽,可确保负载均衡器停止向正在取消注册或运行状况不佳的实例发送请求。它使现有的连接保持开放状态。这对于 Auto Scaling 组中的实例特别有用,以确保连接不会突然断开。

修复

要在传统负载均衡器上启用连接耗尽,请按照配置 Classic Load Balancer 的 Connection DrainingClassic Load Balancer 用户指南.

[ELB.8] 带有 HTTPS/SSL 侦听器的经典负载均衡器应使用具有强配置的预定义安全策略

类别:传输中数据保护 > 加密

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-predefined-security-policy-ssl-check

类型:计划 已触发更改

参数:

  • predefinedPolicyName: ELBSecurityPolicy-TLS-1-2-2017-01

此控件将检查您的 Classic Load Balancer HTTPS/SSL 侦听器是否使用预定义的策略ELBSecurityPolicy-TLS-1-2-2017-01. 如果 Classic Load Balancer HTTPS/SSL 侦听器不使用,则控件将失败ELBSecurityPolicy-TLS-1-2-2017-01.

安全策略是 SSL 协议、密码和服务器顺序首选项选项的组合。在客户端与负载均衡器之间进行 SSL 协商期间,预定义策略控制密码、协议和首选项顺序。

使用ELBSecurityPolicy-TLS-1-2-2017-01它可以帮助您满足要求禁用 SSL 和 TLS 的特定版本的合规性和安全标准。有关更多信息,请参阅 。Classic Load Balancer 的预定义 SSL 安全策略Classic Load Balancer 用户指南.

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 亚太地区(大阪)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

修复

有关如何使用预定义安全策略的信息ELBSecurityPolicy-TLS-1-2-2017-01使用 Classic Load Balancer,请参阅配置安全设置Classic Load Balancer 用户指南.

[ELB.9] 经典负载均衡器应启用跨区域负载均衡

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

严重性:

资源类型: AWS::ElasticLoadBalancing::LoadBalancer

Amazon Config 规则:elb-cross-zone-load-balancing-enabled

类型:计划 已触发更改

参数:

  • predefinedPolicyName: ELBSecurityPolicy-TLS-1-2-2017-01

该控制检查是否为传统负载均衡器 (CLB) 启用跨区域负载均衡。如果未为 CLB 启用跨区域负载均衡,则此控制失败。

负载均衡器节点仅在其可用区中的注册目标之间分配流量。禁用了跨区域负载均衡后,每个负载均衡器节点会仅在其可用区中的已注册目标之间分配流量。如果在可用区域中注册的目标数量不相同,则流量将不平均分配,并且与另一个区域中的实例相比,一个区域中的实例最终可能会过度利用率。启用跨区域负载均衡后,Classic Load Balancer 的每个负载均衡器节点会跨所有启用的可用区中的已注册实例平均分配请求。有关详细信息,请参阅跨区域负载均衡在 Elastic Load Balancing 用户指南中。

注意

以下区域不支持此控制:

  • 非洲(开普敦)

修复

要在传统负载均衡器中启用跨区域负载均衡,请参阅启用跨区域负载均衡在 Elastic Load Balancing 用户指南中。

[ELBV2.1] 应将应 Application Load Balancer 配置为将所有 HTTP 请求重定向到 HTTPS

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::ElasticLoadBalancingV2::LoadBalancer

Amazon Config 规则:alb-http-to-https-redirection-check

类型:计划 定期

参数:

该控制检查是否在应用程序负载均衡器的所有 HTTP 侦听器上都配置了 HTTP 到 HTTPS 重定向。如果应用程序负载均衡器的一个或多个 HTTP 侦听器未配置 HTTP 到 HTTPS 重定向,检查失败。

在开始使用应用 Application Load Balancer 之前,您必须添加一个或多个侦听器。侦听器是使用配置的协议和端口检查连接请求的进程。侦听器支持 HTTP 和 HTTPS 协议。您可以使用 HTTPS 侦听器将加密和解密工作分载到应用 Application Load Balancer。您应将与应用 Application Load Balancer 结合使用重定向操作,将客户端 HTTP 请求重定向到端口 443 上的 HTTPS 请求,以实施传输中加密。

要了解更多信息,请参阅Application Load Balancer 的侦听器适用于应用程序负载均衡器的用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

要修复此问题,请更新负载均衡器以重定向 HTTP 请求。

将 HTTP 请求重定向到 Application Load Balancer 上的 HTTPS

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Load Balancers (负载均衡器)

  3. 选择 Application Load Balancer。

  4. 选择 Listeners (侦听器) 选项卡。

  5. 选择一个 HTTP 侦听器(端口 80 TCP),然后选择 Edit (编辑)

  6. 如果存在现有规则,则必须将其删除。否则,选择 Add action (添加操作),然后选择 Redirect to... (重定向到...)

  7. 选择 HTTPS,然后输入 443

  8. 选择圆形符号中的复选标记,然后选择 Update (更新)

[EMR.1] Amazon EMR 群集主节点不应具有公有 IP 地址

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

严重性:

资源类型: AWS::EMR::Cluster

Amazon Config 规则:emr-master-no-public-ip

类型:计划 定期

参数:

此控制检查 Amazon EMR 群集上的主节点是否具有公有 IP 地址。

如果主节点具有与其任何实例关联的公有 IP 地址,则控制将失败。公有 IP 地址在PublicIp字段中的NetworkInterfaces实例的配置。此控 EMR 仅检查位于RUNNING要么WAITING状态。

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

在启动过程中,您可以控制是否为默认子网或非默认子网中的实例分配公有 IPv4 地址。

默认情况下,默认子网的此属性设置为true. 非默认子网的 IPv4 公有寻址属性设置为false,除非它是由 Amazon EC2 启动实例向导创建的。在这种情况下,向导将属性设置为true.

您需要在 VPC 中启动集群,其私有子网的 IPv4 公有寻址属性设置为false.

启动后,您无法手动将公有 IPv4 地址与实例取消关联。

要修复此发现,您需要在 VPC 私有子网中创建新集群。有关如何在 VPC 私有子网中启动集群的信息,请参阅在 VPC 中启动集群中的Amazon EMR 管理指南.

[ES.1] Elasticsearch 域应启用静态加密

类别:保护 > 数据保护 > 静态数据加密

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-encrypted-at-rest

类型:计划 定期

参数:

该控制检查 Elasticsearch 域是否启用了静态加密配置。如果未启用静态加密,检查将失败。

为了增加敏感数据的安全层OpenSearch,你应该配置你的OpenSearch将进行静态加密。Elasticsearch 域提供静态数据加密。该功能使用 Amazon KMS 存储和管理您的加密密钥。为执行加密,它使用具有 256 位密钥 (AES-256) 的高级加密标准算法。

了解相关更多信息OpenSearch请参阅静态加密为静态数据加密Amazon OpenSearch Service中的Amazon OpenSearch Service开发人员指南.

注意

某些实例类型,例如t.smallt.medium,不支持静态数据加密。有关详细信息,请参阅。支持的实例类型中的Amazon OpenSearch Service开发人员指南.

修复

默认情况下,域不对数据进行静态加密,并且您无法配置现有的域以使用该功能。

要启用该功能,您必须创建另一个域并迁移数据。有关创建域的信息,请参阅Amazon OpenSearch Service开发人员指南.

数据静态加密需要使用 OpenSearch Service 5.1 或更高版本。有关为静态数据加密的更多信息OpenSearch Service,请参阅Amazon OpenSearch Service开发人员指南.

[ES.2] Elasticsearch 域应位于 VPC 中

类别:保护 > 安全网络配置 > VPC 中的资源

严重性:重大

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-in-vpc-only

类型:计划 定期

参数:

该控制检查 Elasticsearch 域是否位于 VPC 中。它不会评估 VPC 子网路由配置以确定公有访问。您应该确保 Elasticsearch 域未连接到公有子网。请参阅基于资源的策略中的Amazon OpenSearch Service开发人员指南. 您还应该确保根据建议的最佳实践配置了 VPC。请参阅VPC 的安全最佳实践中的Amazon VPC User Guide.

在 VPC 中部署的 Elasticsearch 域可以通过私有方式与 VPC 资源进行通信Amazon网络,无需穿越公共互联网。此配置通过限制对传输中数据的访问来提高安全状况。VPC 提供了许多网络控制来保护对 Elasticsearch 域的访问,包括网络 ACL 和安全组。Security Hub 建议您将公共 Elasticsearch 域迁移到 VPC,以便利用这些控件。

修复

如果您创建一个具有公有终端节点的域,则以后无法将其放置在 VPC 中。您必须创建一个新的域,然后迁移数据。反之亦然。如果在 VPC 中创建一个域,则该域不能具有公有终端节点。您必须创建另一个域或禁用该控制。

请参阅启动Amazon OpenSearch ServiceVPC 内的域中的Amazon OpenSearch Service开发人员指南.

[ES.3] Elasticsearch 域应加密节点之间发送的数据

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-node-to-node-encryption-check

类型:计划 已触发更改

参数:

该控制检查 Elasticsearch 域是否启用节点到节点加密。

HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人攻击或类似攻击来窃听或操纵网络流量。只能允许通过 HTTPS (TLS) 进行加密连接。为 Elasticsearch 域启用节点到节点加密可确保集群内通信在传输过程中加密。

此配置可能会造成性能损失。在启用此选项之前,您应该注意并测试性能权衡。

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 中国(北京)

  • 中国(宁夏)

  • 欧洲(米兰)

修复

只能在新域上启用节点到节点加密。为了补救这个发现,首先创建新域使用节点到节点加密复选框已选中。然后跟随使用快照迁移数据将数据迁移到新域。

[ES.4] 应启用 Elasticsearch 域错误日志记录到 CloudWatch Logs

类别:识别-日志记录

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-logs-to-cloudwatch

类型:计划 已触发更改

参数:

  • logtype = 'error'

该控制检查 Elasticsearch 域是否配置为将错误日志发送到 CloudWatch Logs。

您应该为 Elasticsearch 域启用错误日志,然后将这些日志发送到 CloudWatch Logs 以便保留和响应。域错误日志可以帮助进行安全和访问审计,并可以帮助诊断可用性问题。

注意

以下区域不支持此控制:

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何启用日志发布的信息,请参阅启用日志发布(控制台)中的Amazon OpenSearch Service开发人员指南.

[ES.5] Elasticsearch 域应启用审计日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-audit-logging-enabled(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

  • cloudWatchLogsLogGroupArnList (可选). Security Hub 不填充此参数。应为审计日志配置的 CloudWatch Logs 日志组的逗号分隔列表。

    这条规则为NON_COMPLIANT如果此参数列表中未指定 Elasticsearch 域的 CloudWatch Logs 日志组。

此控件检查 Elasticsearch 域是否启用了审计日志记录。如果 Elasticsearch 域未启用审计日志记录,则此控件将失败。

审核日志高度可自定义。它们允许您跟踪 Elasticsearch 集群上的用户活动,包括身份验证成功和失败,以及OpenSearch、索引更改和传入的搜索查询。

修复

有关启用审核日志的详细说明,请参阅启用审核日志中的Amazon OpenSearch Service开发人员指南.

[ES.6] Elasticsearch 域应至少有三个数据节点

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

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-data-node-fault-tolerance(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 Elasticsearch 域是否配置至少有三个数据节点,以及zoneAwarenessEnabledtrue.

Elasticsearch 域至少需要三个数据节点来实现高可用性和容错能力。部署包含至少三个数据节点的 Elasticsearch 域可确保节点出现故障时的集群运行。

修复

修改 Elasticsearch 域中的数据节点数

  1. 打开Amazon OpenSearch Service控制台https://console.aws.amazon.com/es/.

  2. UDET我的域名中,选择要编辑的域的名称。

  3. 选择 Edit domain (编辑域)

  4. UDET数据节点设置节点数到大于或等于 3 的数字。

    对于三个可用区部署,设置为三个的倍数,以确保在可用区之间均匀分配。

  5. 选择 Submit (提交)

[ES.7] Elasticsearch 域应配置至少三个专用主节点

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

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-primary-node-fault-tolerance(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 Elasticsearch 域是否配置至少有三个专用主节点。如果域不使用专用主节点,此控制将失败。如果 Elasticsearch 域有五个专用主节点,则此控制通过。但是,为了降低可用性风险,可能没有必要使用三个以上的主节点,并将导致额外的成本。

Elasticsearch 域至少需要三个专用主节点来实现高可用性和容错能力。由于还需要管理其他节点,在数据节点蓝/绿部署期间,专用主节点资源可能会受到紧张。部署包含至少三个专用主节点的 Elasticsearch 域可确保在节点出现故障时有足够的主节点资源容量和群集操作。

修复

要修改中专用主节点的数量,请执行以下操作OpenSearch域

  1. 打开Amazon OpenSearch Service控制台https://console.aws.amazon.com/es/.

  2. UDET我的域名中,选择要编辑的域的名称。

  3. 选择 Edit domain (编辑域)

  4. UDET专用主节点设置实例类型转到所需的实例类型。

  5. Set主节点的数量等于三个或更大。

  6. 选择 Submit (提交)

[ES.8] 应使用 TLS 1.2 加密到 Elasticsearch 域的连接

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::Elasticsearch::Domain

Amazon Config 规则:elasticsearch-https-required(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查是否需要与 Elasticsearch 域的连接才能使用 TLS 1.2。如果 Elasticsearch 域名,检查失败TLSSecurityPolicy不是 Policy min-TLS-1-2-2019-07。

HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人攻击或类似攻击来窃听或操纵网络流量。只能允许通过 HTTPS (TLS) 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试应用程序,以了解性能配置文件和 TLS 的影响。与之前版本的 TLS 相比,TLS 1.2 提供了几项安全性增强

修复

要启用 TLS 加密,请使用UpdateDomainConfig用于配置DomainEndpointOptions为了设置TLSSecurityPolicy. 有关更多信息,请参见《Amazon OpenSearch Service 开发人员指南》。

[GuardDuty.1] 应启用 GuardDuty

类别:检测 > 检测服务

严重性:

资源类型: Amazon帐户

Amazon Config 规则:guardduty-enabled-centralized

类型:计划 定期

参数:

该控制检查是否在您的 GuardDuty 账户和区域中启用了 Amazon GuardDuty。

强烈建议您在所有受支持的情况下启用 GuardDutyAmazon地区。这样做将使 GuardDuty 能够生成有关未授权或异常活动的结果,甚至在您未主动使用的区域中也可以。这还允许 GuardDuty 监控全球性的 CloudTrail 事件Amazon服务,例如 IAM。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国(宁夏)

  • Europe (Milan)

  • Middle East (Bahrain)

  • Amazon GovCloud(美国东部)

修复

要修复此问题,请启用 GuardDuty。

有关如何启用 GuardDuty 的详细信息,包括如何使用Amazon Organizations要管理多个账户,请参阅开始使用 GuardDuty中的Amazon GuardDuty 用户指南.

[IAM.1] IAM 策略不应允许完全 “*” 管理权限

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::Policy

Amazon Config 规则:iam-policy-no-statements-with-admin-access

类型:Schedule 已触发更改

参数:

该控制检查 IAM 策略(也称为客户托管策略)的默认版本是否具有管理员访问权限,并且包含带有 “Effect” 的语句:“Allow" 与 “Action”: “Allow"(其中在 “资源” 上方包含 “Action”: “Allow":“Allow

该控制仅检查您创建的客户托管策略。它不会检查内联Amazon托管策略。

IAM 策略定义了授予用户、组或角色的一组权限。按照标准安全建议,Amazon 建议您授予最低特权,这意味着仅授予执行任务所需的权限。当您提供完全管理权限而不是用户所需的最低权限集时,您会将资源暴给可能有害的操作。

首先确定用户需要执行的任务,然后拟定仅限用户执行这些任务的策略,而不是允许完全管理权限。最开始只授予最低权限,然后根据需要授予其他权限,则样会更加安全。请不要一开始就授予过于宽松的权限而后再尝试收紧权限。

您应删除语句中包含的 IAM 策略"Effect": "Allow" "Action": "*"结束了"Resource": "*".

修复

要修复此问题,请更新 IAM 策略,以便它们不允许完全 “*” 管理权限。

修改 IAM 策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择策略

  3. 选择要删除的策略旁边的按钮。

  4. Policy actions (策略操作) 中,选择 Detach (分离)

  5. 对于要分离策略的每个用户,选择用户旁边的按钮,然后选择 Detach policy (分离策略)

确认分离策略后,用户仍可按预期访问 Amazon 服务和资源。

[IAM.2] IAM 用户不应附加 IAM 策略

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::User

Amazon Config 规则:iam-user-no-policies-check

类型:Schedule 已触发更改

参数:

该控制检查您的所有 IAM 用户都没有附加策略。相反,IAM 用户必须继承来自 IAM 组或角色的权限。

默认情况下,IAM 用户、组和角色无权访问Amazon资源的费用。策略向用户、组或角色授予权限。我们建议您将 IAM 策略直接应用到组和角色,而不是用户。随着用户数量的增长,在组或角色级别分配权限可降低访问管理的复杂性。降低访问管理的复杂性有助于减少委托人意外收到或保留过多权限的机会。

修复

要解决此问题,请创建一个 IAM 组,向该组分配策略,然后将用户添加到该组。策略将应用于组中的每一位用户。

创建 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Groups (组),然后选择 Create New Group (创建新组)

  3. 输入要创建的组的名称,然后选择 Next Step (下一步)

  4. 选择要分配给该组的每个策略,然后选择 Next Step (下一步)。选择的策略应包括当前直接附加到用户账户的任何策略。

  5. 将用户添加到组,然后将策略分配给该组。然后,分配给组的策略将分配给组中的每一位用户。

  6. 确认 Review (审核) 页面上的详细信息,然后选择 Create Group (创建组)

有关创建组的更多信息,请参阅创建 IAM 组中的IAM 用户指南.

将用户添加到 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Groups(组)

  3. 选择组操作,然后选择 Add Users to Group (向组添加多个用户)

  4. 选择要添加到组的用户,然后选择 Add Users (添加用户)

有关向组中添加用户的更多信息,请参阅在 IAM 组中添加和删除用户中的IAM 用户指南.

删除直接附加到用户的策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Users(用户)。

  3. 对于要分离其策略的用户,在 User name (用户名)列中选择其名称。

  4. 对于 Attached directly (直接附加的策略) 下列出的每个策略,选择页面右侧的 X(从用户删除该策略),然后选择删除

  5. 确认用户仍可按预期使用 Amazon 服务。

[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::User

Amazon Config 规则:access-keys-rotated

类型:Schedule 定期

参数:

  • maxAccessKeyAge:90

该控制检查是否在 90 天内轮换了活动访问密钥。

我们强烈建议您不要在账户中生成和删除所有访问密钥。建议的最佳做法是创建一个或多个 IAM 角色或使用联合身份验证. 您可以使用这些方法允许用户使用其现有的公司凭证登录 Amazon Web Services Management Console 和 Amazon CLI。

每种方法都有其使用案例。对于现在已有中心目录或计划需要超过当前 IAM 用户限额的企业,联合身份通常更好。在以外运行的应用程序Amazon环境需要访问密钥才能对Amazon资源的费用。

但是,如果需要提供编程访问的资源在 Amazon 内部运行,则最佳做法是使用 IAM 角色。通过角色,您可以授予资源访问权限,而无需在配置中硬编码访问密钥 ID 和私有访问密钥。

要了解有关保护访问密钥和帐户的更多信息,请参阅管理的最佳实践Amazon访问密钥中的Amazon一般参考. 另请参阅博客文章在使用编程访问时保护 Amazon 账户的指南

如果您已有访问密钥,Security Hub 建议您每 90 天轮换一次访问密钥。轮换访问密钥可减少他人使用遭盗用账户或已终止账户关联的访问密钥的风险。这还可以确保无法使用可能已丢失、遭破解或被盗用的旧密钥访问数据。轮换访问密钥后,始终更新您的应用程序。

访问密钥包含一个访问密钥 ID 和一个私有访问密钥。它们用于签署您向发出的编程请求Amazon.Amazon用户需要自己的访问密钥以编程方式调用Amazon来自 的Amazon CLI,适用于 Windows PowerShell 的工具AmazonSDK,或者使用 API 操作对个人直接 HTTP 调用Amazon服务。

如果您的组织使用 Amazon Web Services Single Sign On (Amazon Web Services SSO),则用户可以登录到 Active Directory、内置 Amazon Web Services SSO 目录或连接到 Amazon Web Services SSO 的其他身份提供商 (IdP)。然后,它们可以映射到 IAM 角色,以使它们能够运行。Amazon CLI命令或调用Amazon无需 IAM 用户访问密钥的 API 操作。要了解更多信息,请参阅配置Amazon CLI使用Amazon Web Services Single Sign On中的Amazon Command Line Interface用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

要修复此问题,请更换任何超过 90 天的密钥。

确保访问密钥的使用时长不超过 90 天

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Users(用户)。

  3. 对于显示 Access key age (访问密钥使用期限) 超出 90 天的每个用户,选择用户名来打开该用户的设置。

  4. 选择 Security credentials (安全凭证)

  5. 为用户创建新的密钥:

    1. 选择创建访问密钥

    2. 要保存密钥内容,请下载秘密访问密钥,或者选择 Show (显示),然后从页面中复制该密钥。

    3. 将密钥存储在安全位置以提供给用户。

    4. 选择关闭

  6. 更新使用上一个密钥的所有应用程序以使用新密钥。

  7. 对于上一个密钥,请选择 Make inactive (转为非活跃) 来使访问密钥转为非活动状态。用户现在无法使用该密钥发出请求。

  8. 确认使用新密钥的所有应用程序都能按预期工作。

  9. 确认所有应用程序都使用新密钥后,删除以前的密钥。访问密钥一经删除,就无法恢复。

    要删除上一个密钥,请在行末尾选择 X,然后选择 Delete (删除)

[IAM.4] IAM 根用户访问密钥不应存在

类别:保护 > 安全访问管理

严重性:重大

资源类型: Amazon帐户

Amazon Config 规则:iam-root-access-key-check

类型:Schedule 定期

参数:

该控制检查 root 用户访问密钥是否存在。

根账户是 Amazon 账户中权限最高的用户。Amazon 访问密钥提供对特定账户的编程访问。

Security Hub 建议您删除与根账户关联的所有访问密钥。这会限制可用于破坏账户的向量。它还鼓励创建和使用最小权限的基于角色的账户。

注意

非洲(开普敦)不支持此控制。

修复

要修复此问题,请删除 root 用户访问密钥。

删除访问密钥

  1. 使用登录您的账户Amazon Web Services 账户根用户凭证。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Access keys (access key ID and secret access key) (访问密钥 (访问密钥 ID 和秘密访问密钥))

  5. 要永久删除密钥,请选择 Delete (删除),然后选择 Yes (是)。您无法恢复已删除的密钥。

  6. 如果有多个 root 用户访问密钥,则为每个密钥重复步骤 4 和 5。

[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::User

Amazon Config 规则:mfa-enabled-for-iam-console-access

类型:Schedule 定期

参数:

该控制检查是否Amazon为使用控制台密码的所有 IAM 用户启用多重验证 (MFA)。

多重身份验证 (MFA) 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 Amazon 网站时,系统会提示输入用户名和密码。此外,系统还会提示用户从他们 Amazon MFA 设备输入身份验证代码。

我们建议为拥有控制台密码的所有账户启用 MFA。MFA 旨在为控制台访问提供更高的安全性。身份验证委托人必须拥有发放具有时效性的密钥的设备,并且必须知道凭证。

修复

要修复此问题,请向尚未拥有 MFA 的用户添加 MFA。

为用户配置 MFA

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Users(用户)。

  3. 选择要为其配置 MFA 的用户的User name (用户名)

  4. 选择 Security credentials (安全凭证)

  5. Assigned MFA device (已分配 MFA 设备) 旁边,选择 Manage (管理)

  6. 跟随管理 MFA 设备向导指定适合您环境的设备类型。

要了解如何将 MFA 设置委派给用户,请参阅博客文章如何将多因素身份验证的管理委托给AmazonIAM 用户.

[IAM.6] 应该为根用户启用硬件 MFA

类别:保护 > 安全访问管理

严重性:重大

资源类型: Amazon帐户

Amazon Config 规则:root-account-hardware-mfa-enabled

类型:Schedule 定期

参数:

该控制检查是否Amazon账户已启用,以使用硬件多重验证 (MFA) 设备通过根用户凭证登录。

虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息,请参阅启用虚拟 Multi-Factor Authentication (MFA) 设备(控制台)中的IAM 用户指南.

基于时间的一次性密码 (TOTP) 和通用第二因素 (U2F) 令牌作为硬件 MFA 选项可行。

注意

以下区域不支持此控制。

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • AmazonGovCloud(美国西部)。

修复

要修复此问题,请将基于硬件的 MFA 添加到根账户。

为根账户启用基于硬件的 MFA

  1. 使用根用户凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Multi-Factor Authentication (MFA)

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的基于硬件(非虚拟)的设备,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

[IAM.7] IAM 用户的密码策略应具有可靠的配置

类别:保护 > 安全访问管理

严重性:

资源类型: Amazon帐户

Amazon Config 规则:iam-password-policy

类型:Schedule 定期

参数:

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 8

该控制检查 IAM 用户的账户密码策略是否使用以下推荐的配置。

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 8

访问Amazon Web Services Management Console,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合身份验证,而不是创建 IAM 用户。联合允许用户使用其现有的公司凭证登录Amazon Web Services Management Console. 使用Amazon Web Services Single Sign On(Amazon Web Services SSO) 来创建或联合用户,然后在账户中担任 IAM 角色。

要了解有关身份提供商和联合体的更多信息,身份提供程序和联合身份验证中的IAM 用户指南. 要了解有关 Amazon Web Services SSO 的更多信息,请参阅 Amazon Web Services Single Sign On 用户指南

如果您需要使用 IAM 用户,Security Hub 建议您强用户密码创建。您可以在上面设置密码策略Amazon账户以便指定密码的复杂性要求和强制轮换期。创建或更改密码策略时,大多数密码策略设置会在用户下次更改其密码时实施。立即实施一些设置。要了解更多信息,请参阅为 IAM 用户设置账户密码策略中的IAM 用户指南.

修复

要修复此问题,请更新密码策略以使用推荐的配置。

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Account settings (账户设置)

  3. 选择 Requires at least one uppercase letter (至少必须包含一个大写字母)

  4. 选择 Requires at least one lowercase letter (至少必须包含一个小写字母)

  5. 选择 Requires at least one non-alphanumeric character (至少需要一个非字母数字字符)

  6. 选择 Requires at least one number (至少需要一个数字)

  7. 对于 Minimum password length (最短密码长度),请输入 8

  8. 选择 Apply password policy (应用密码策略)

[IAM.8] 应删除未使用的 IAM 用户凭证

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::User

Amazon Config 规则:iam-user-unused-credentials-check

类型:Schedule 定期

参数:

  • maxCredentialUsageAge:90

该控制检查您的 IAM 用户是否拥有 90 天未使用的密码或活动访问密钥。

IAM 用户可以访问Amazon资源使用不同类型的凭证(例如密码或访问密钥)。

Security Hub 建议您删除或停用 90 天或更长时间未使用的所有凭证。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。

修复

要获取监控账户过期凭证所需的一些信息,请使用 IAM 控制台。例如,当您查看账户中的用户时,会显示 Access key age (访问密钥使用期限)Password age (密码使用期限)Last activity (上次活动时间)。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户账户和识别 90 天或更长时间没有活动的账户。您可以在.csv从 IAM 控制台中进行格式。有关凭证报告的更多信息,请参阅获取您的凭证报告Amazon帐户中的IAM 用户指南.

确定非活动账户或未使用的凭证后,请使用以下步骤禁用它们。

禁用非活动账户的凭据

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Users(用户)。

  3. 选择凭证超过 90 天的用户的名称。

  4. 选择 Security credentials (安全凭证)

  5. 对于至少 90 天内未使用的每个登录凭据和访问密钥,请选择设为非活动.

[IAM.21] 您创建的 IAM 客户托管策略不应允许对服务进行通配符操作

类别:检测 > 安全访问管理

严重性:

资源类型: AWS::IAM::Policy

Amazon Config 规则:iam-policy-no-statements-with-full-access

类型:Schedule 已触发更改

参数:

此控件将检查您创建的基于 IAM 身份的策略是否具有使用 * 通配符授予对任何服务执行所有操作的权限的允许语句。如果任何策略声明包括,控件将失败"Effect": "Allow""Action": "Service:*".

例如,策略中的以下语句导致查找失败。

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

如果你使用该控件也会失败"Effect": "Allow""NotAction": "service:*". 在这种情况下,NotAction元素提供对中所有操作的访问权限Amazon服务,但中指定的操作除外NotAction.

此控制仅适用于客户托管的 IAM 策略。它不适用于由管理的 IAM 策略Amazon.

当你将权限分配给Amazon服务,重要的是在 IAM 策略中限定允许的 IAM 操作范围。您应将 IAM 操作限制为仅限于那些需要的操作。这有助于您配置最低权限。如果策略附加到可能不需要许可的 IAM 委托人,那么过于宽容的策略可能会导致权限提升。

在某些情况下,您可能希望允许具有类似前缀的 IAM 操作,例如DescribeFlowLogsDescribeAvailabilityZones. 在这些授权情况下,您可以在常用前缀中添加后缀的通配符。例如:ec2:Describe*

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

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

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

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要修复此问题,请更新 IAM 策略,以便它们不允许完全 “*” 管理权限。

有关如何编辑 IAM 策略的详细信息,请参阅编辑 IAM 策略中的IAM 用户指南.

[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥进行解密和重新加密操作

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::IAM::Policy

Amazon Config 规则:iam-customer-policy-blocked-kms-actions

类型:Schedule 已触发更改

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查 IAM 客户托管策略的默认版本是否允许委托人使用Amazon KMS对所有资源的解密操作。此控件使用Zelkova,一个自动推理引擎,用于验证并警告您有关可能允许广泛访问秘密的策略Amazon账户。

此控件失败,并将策略标记为FAILED,如果该策略足够开放以允许kms:Decrypt要么kms:ReEncryptFrom对任何任意 KMS 密钥的操作。

该控制将评估附加和分离的客户托管策略。它不会检查内联策略或Amazon托管策略。

与Amazon KMS,您可以控制哪些人可以使用您的 KMS 密钥并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵守安全最佳实践,Amazon建议你允许最少的权限。换而言之,您应仅向身份授予kms:Decrypt要么kms:ReEncryptFrom权限以及仅针对执行任务所需的密钥。否则,用户可能会使用不适合您的数据的密钥。

确定用户访问加密数据所需的最低密钥集,而不是授予所有密钥的权限。然后设计允许用户仅使用这些密钥的策略。例如,不允许kms:Decrypt对所有 KMS 密钥的权限。相反,允许kms:Decrypt仅适用于您账户的特定区域内的钥匙。通过采用最小权限的原则,您可以降低意外披露数据的风险。

修复

要修复此问题,您可以修改 IAM 客户托管策略以限制对密钥的访问。

修改 IAM 客户托管策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在 IAM 导航窗格中,选择策略.

  3. 选择要修改的策略旁的箭头。

  4. 选择编辑策略

  5. 选择 JSON 选项卡。

  6. 将更改为“Resource”值到要允许的特定密钥。

  7. 在修改策略后,选择查看策略.

  8. 选择保存更改

有关更多信息,请参阅 。将 IAM 策略用于Amazon KMS中的Amazon Key Management Service开发人员指南.

[KMS.2] IAM 委托人不应具有允许对所有 KMS 密钥进行解密和重新加密操作的 IAM 内联策略

类别:保护 > 安全访问管理

严重性:

资源类型:

  • AWS::IAM::Role

  • AWS::IAM::User

  • AWS::IAM::Group

Amazon Config 规则:iam-inline-policy-blocked-kms-actions

类型:Schedule 已触发更改

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查嵌入在 IAM 身份(角色、用户或组)中的内联策略是否允许Amazon KMS对所有 KMS 密钥进行解密和重新加密操作。此控件使用Zelkova,一个自动推理引擎,用于验证并警告您有关可能允许广泛访问秘密的策略Amazon账户。

如果策略足够开放以允许,则此控制将失败kms:Decrypt要么kms:ReEncryptFrom对任何任意 KMS 密钥的操作。

与Amazon KMS,您可以控制哪些人可以使用您的 KMS 密钥并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵守安全最佳实践,Amazon建议你允许最少的权限。换句话说,您应仅向身份授予身份所需的权限,并仅授予执行任务所需的密钥的权限。否则,用户可能会使用不适合您的数据的密钥。

确定用户访问加密数据所需的最低密钥集,而不是授予所有密钥的权限。然后设计允许用户仅使用这些密钥的策略。例如,不允许kms:Decrypt对所有 KMS 密钥的权限。相反,只允许对账户的特定区域中的特定密钥进行权限。通过采用最小权限的原则,您可以降低意外披露数据的风险。

修复

要修复此问题,请修改内联策略以限制对密钥的访问。

修改 IAM 内联策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在 IAM 导航窗格中,选择用户Groups,或者角色.

  3. 选择要修改 IAM 内联策略的用户、组或角色的名称。

  4. 选择要修改的策略旁边的箭头。

  5. 选择编辑策略

  6. 选择 JSON 选项卡。

  7. 将更改为"Resource"值为您想要允许的特定密钥。

  8. 在修改策略后,选择查看策略.

  9. 选择保存更改

有关更多信息,请参阅 。将 IAM 策略用于Amazon KMS中的Amazon Key Management Service开发人员指南.

[KMS.3]Amazon KMS密钥不应该被无意中删除

类别:保护 > 数据保护 > 数据删除保护

严重性:重大

资源类型: AWS::KMS::Key

Amazon Config 规则:kms-cmk-not-scheduled-for-deletion

类型:Schedule 定期

参数:

此控件检查是否计划删除 KMS 密钥。如果计划删除 KMS 密钥,则控件将失败。

删除 KMS 密钥后无法恢复。如果删除 KMS 密钥,则在 KMS 密钥下加密的数据也将永久无法恢复。如果在计划删除的 KMS 密钥下加密了有意义的数据,请考虑解密数据或在新的 KMS 密钥下重新加密数据,除非您有意执行加密擦除.

当计划删除 KMS 密钥时,如果计划错误删除,则强制执行强制等待期,以便有时间撤消删除。默认等待时间为 30 天,但计划删除 KMS 密钥的时间可以缩短至 7 天。在等待期限内,可以取消计划的删除,并且不会删除 KMS 密钥。

有关删除 KMS 密钥的其他信息,请参阅删除 KMS 密钥中的Amazon Key Management Service开发人员指南.

注意

亚太(大阪)和欧洲(米兰)区域不支持该控制。

修复

有关取消计划的 KMS 密钥删除的详细补救说明,请参阅取消密钥删除计划和取消密钥删除(控制台)中的Amazon Key Management Service开发人员指南 的第一个版本。

[Lambda.1] Lambda 函数策略应禁止公开访问

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

严重性:重大

资源类型: AWS::Lambda::Function

Amazon Config 规则:lambda-function-public-access-prohibited

类型:Schedule 已触发更改

参数:

该控制检查 Lambda 函数基于资源的策略是否禁止您账户之外的公开访问。

如果从 Amazon S3 调用 Lambda 函数并且策略不包含AWS:SourceAccount.

Lambda 函数不应可公开访问,因为这可能允许意外访问存储在函数中的代码。

注意

中国(北京)或中国(宁夏)区域不支持此控制。

修复

如果 Lambda 函数失败此控制,则表明 Lambda 函数的基于资源的策略声明允许公开访问。

要修复此问题,必须更新策略以删除权限或添加AWS:SourceAccount条件。您只能从 Lambda API 更新基于资源的策略。

以下说明使用控制台查看策略和Amazon Command Line Interface以删除权限。

查看 Lambda 函数基于资源的策略

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Functions(函数)。

  3. 选择函数。

  4. 选择权限。基于资源的策略显示了在其他账户或 Amazon 服务尝试访问该函数时应用的权限。

  5. 检查基于资源的策略。确定具有的政策声明Principal使政策公开的字段值。例如,允许"*"要么{ "AWS": "*" }.

    您无法从控制台编辑策略。要从函数中删除权限,您可以使用remove-permission从命令Amazon CLI.

    记下对账单 ID 的值 (Sid)对于要删除的语句。

使用Amazon CLI要从 Lambda 函数中删除权限,请发出remove-permission命令。

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

Replace<function-name>使用 Lambda 函数的名称,以及<statement-id>同时要删除语句的对账单 ID。

验证是否已更新权限

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Functions(函数)。

  3. 选择您更新的函数。

  4. 选择权限

    基于资源的策略应更新。如果策略中只有一条声明,则该策略为空。

有关更多信息,请参阅 。使用 的基于资源的策略Amazon Lambda中的Amazon Lambda开发人员指南.

[Lambda.2] Lambda 函数应使用支持的运行时

类别:保护 > 安全开发

严重性:

资源类型: AWS::Lambda::Function

Amazon Config 规则:lambda-function-settings-check

类型:Schedule 已触发更改

参数:

  • runtime: nodejs14.x, nodejs12.x, python3.9, python3.8, python3.7, python3.6, ruby2.7, java11, java8, java8.al2, go1.x, dotnetcore3.1

该控制检查运行时的 Lambda 函数设置是否匹配为每种语言支持的运行时设置的预期值。该控制检查以下运行时:nodejs14.xnodejs12.xpython3.9python3.8python3.7python3.6ruby2.7java11java8java8.al2go1.xdotnetcore3.1

这些区域有:Amazon Config规则忽略包类型为Image.

Lambda 运行时是围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建的。当安全更新不再支持某个运行时组件时,Lambda 将弃用该运行时。虽然您无法创建使用已弃用运行时的函数,但函数仍可用于处理调用事件。确保您的 Lambda 函数是最新的,并且不使用过时的运行时环境。

要了解有关此控件检查受支持语言的支持运行时的更多信息,请参阅Amazon Lambda运行时中的Amazon Lambda开发人员指南.

注意

中国(北京)或中国(宁夏)区域不支持此控制。

修复

有关受支持的运行时和弃用时间表的更多信息,请参阅运行时支持策略的 部分Amazon Lambda开发人员指南. 将运行时迁移到最新版本时,请遵循语言发布者的语法和指导。

[Lambda.4] Lambda 函数应配置死信队列(已停用)

此控制权已停用。

[OpenSearch .1] OpenSearch 域应启用静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-encrypted-at-rest

类型:计划 已触发更改

参数:

该控制检查 OpenSearch 域是否启用了静态加密配置。如果未启用静态加密,检查将失败。

为了增加 OpenSearch 中敏感数据的安全性,您应将 OpenSearch 域配置为静态加密。OpenSearch 域提供静态数据加密。该功能使用 Amazon KMS 存储和管理您的加密密钥。为执行加密,它使用具有 256 位密钥 (AES-256) 的高级加密标准算法。

要了解有关 OpenSearch 静态加密的更多信息,请参阅Amazon OpenSearch Service 中的静态数据加密中的Amazon OpenSearch Service开发人员指南 的第一个版本。

修复

默认情况下,域不对数据进行静态加密,并且您无法配置现有的域以使用该功能。要启用该功能,您必须创建另一个域并迁移数据。

有关创建域的信息,请参阅创建和管理 Amazon OpenSearch Service 服务域中的Amazon OpenSearch Service开发人员指南 的第一个版本。

对静态数据进行加密需要 Amazon OpenSearch 1.0 或更高版本。有关为 Amazon OpenSearch 加密静态数据的更多信息,请参阅Amazon OpenSearch Service 中的静态数据加密中的Amazon OpenSearch Service开发人员指南 的第一个版本。

[OpenSearch.2] OpenSearch 应该在 VPC 中

类别:保护 > 安全网络配置 > VPC 中的资源

严重性:重大

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-in-vpc-only

类型:计划 已触发更改

参数:

该控制检查 OpenSearch 域是否位于 VPC 中。它不会评估 VPC 子网路由配置以确定公有访问。

您应该确保 OpenSearch 域未连接到公有子网。请参阅基于资源的策略中的Amazon OpenSearch Service开发人员指南 的第一个版本。您还应该确保根据建议的最佳实践配置了 VPC。请参阅VPC 的安全最佳实践(在 Amazon VPC 用户指南 中)。

VPC 内部署的 OpenSearch 域可以通过私有方式与 VPC 资源进行通信Amazon网络,无需穿越公共互联网。此配置通过限制对传输中数据的访问来提高安全状况。VPC 提供了许多网络控制来保护对 OpenSearch 域的访问,包括网络 ACL 和安全组。Security Hub 建议您将公共 OpenSearch 域迁移到 VPC 以利用这些控件。

修复

如果您创建一个具有公有终端节点的域,则以后无法将其放置在 VPC 中。您必须创建一个新的域,然后迁移数据。反之亦然。如果在 VPC 中创建一个域,则该域不能具有公有终端节点。

您必须创建另一个域或禁用该控制。

请参阅启动Amazon OpenSearch ServiceVPC 内的域中的Amazon OpenSearch Service开发人员指南 的第一个版本。

[OpenSearch.3] OpenSearch 域应加密节点之间发送的数据

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-node-to-node-encryption-check

类型:计划 已触发更改

参数:

该控制检查 OpenSearch 域是否启用节点到节点加密。如果域中禁用节点到节点加密,则此控制失败。

HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人攻击或类似攻击来窃听或操纵网络流量。只能允许通过 HTTPS (TLS) 进行加密连接。为 OpenSearch 域启用节点到节点加密可确保集群内通信在传输过程中加密。

此配置可能会造成性能损失。在启用此选项之前,您应该注意并测试性能权衡。

修复

只能在新域上启用节点到节点加密。要修复此发现,请使用创建一个新域名节点到节点加密已启用并将数据迁移到新域。按照说明进行操作创建新域中的Amazon OpenSearch Service开发人员指南并确保你选择节点到节点加密创建新域时的选项。然后跟随使用快照迁移数据将数据迁移到新域。

[OpenSearch.4] 应启用 OpenSearch 域错误日志记录到 CloudWatch Logs

类别:识别 > 日志记录

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-logs-to-cloudwatch

类型:计划 已触发更改

参数:

  • logtype = 'error'

该控制检查 OpenSearch 域是否配置为将错误日志发送到 CloudWatch Logs。如果未为域启用 CloudWatch 的错误日志记录,此控制将失败。

您应该为 OpenSearch 域启用错误日志,然后将这些日志发送到 CloudWatch Logs 以便保留和响应。域错误日志可以帮助进行安全和访问审计,并可以帮助诊断可用性问题。

修复

有关如何启用日志发布的信息,请参阅启用日志发布(控制台)中的Amazon OpenSearch Service开发人员指南 的第一个版本。

[OpenSearch.5] OpenSearch 域应启用审计日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-audit-logging-enabled

类型:计划 已触发更改

参数:

  • cloudWatchLogsLogGroupArnList (可选). Security Hub 不填充此参数。应为审计日志配置的 CloudWatch Logs 日志组的逗号分隔列表。

这条规则是NON_COMPLIANT如果此参数列表中未指定 OpenSearch 域的 CloudWatch Logs 日志组。

此控件检查 OpenSearch 域是否启用了审计日志记录。如果 OpenSearch 域没有启用审核日志记录,此控件将失败。

审核日志高度可自定义。它们允许您跟踪 OpenSearch 集群上的用户活动,包括身份验证成功和失败、对 OpenSearch 的请求、索引更改以及传入的搜索查询。

修复

有关启用审核日志的详细说明,请参阅启用审核日志中的Amazon OpenSearch Service开发人员指南 的第一个版本。

[OpenSearch.6] OpenSearch 域应至少有三个数据节点

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

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-data-node-fault-tolerance

类型:计划 已触发更改

参数:

此控件检查 OpenSearch 域是否配置至少有三个数据节点,以及zoneAwarenessEnabledtrue. 如果 OpenSearch 域名,此控件将失败instanceCount小于 3 或zoneAwarenessEnabledfalse.

OpenSearch 域至少需要三个数据节点来实现高可用性和容错能力。部署至少包含三个数据节点的 OpenSearch 域可确保节点出现故障时的集群运行。

修复

修改 OpenSearch 域中数据节点数

  1. 登录到Amazon控制台然后打开Amazon OpenSearch Service控制台https://console.aws.amazon.com/es/.

  2. UCET我的域名选择要编辑的域的名称,然后选择编辑.

  3. UCET数据节点设置节点数到三个以上的数字。如果要部署到三个可用区,请将该数字设置为三个的倍数,以确保在可用区之间均匀分配。

  4. 选择 Submit (提交)

[OpenSearch.8] 应使用 TLS 1.2 加密与 OpenSearch 域的连接

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::OpenSearch::Domain

Amazon Config 规则:opensearch-https-required

类型:计划 已触发更改

参数:

这个控件检查是否需要与 OpenSearch 域的连接才能使用 TLS 1.2。如果 OpenSearch 域名,检查失败TLSSecurityPolicy不是Policy-Min-TLS-1-2-2019-07.

HTTPS (TLS) 可用于帮助防止潜在攻击者使用中间人攻击或类似攻击来窃听或操纵网络流量。只能允许通过 HTTPS (TLS) 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试应用程序,以了解性能配置文件和 TLS 的影响。与之前版本的 TLS 相比,TLS 1.2 提供了几项安全性增强

修复

要启用 TLS 加密,请使用UpdateDomainConfig用于配置DomainEndpointOptions为了设置TLSSecurityPolicy. 有关更多信息,请参阅 。节点到节点加密中的Amazon OpenSearch Service开发人员指南 的第一个版本。

[RDS.1] RDS 快照应为私有快照

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

严重性:重大

资源类型: AWS::RDS::DBSnapshot

Amazon Config 规则:rds-snapshots-public-prohibited

类型:计划 已触发更改

参数:

该控制检查 Amazon RDS 快照是否公有。

此控件适用于 RDS 实例。它还可以返回 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群快照的查找结果,即使它们没有对公共可访问性进行评估。如果这些发现没有用处,你可以抑制它们。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

除非有意这样做,否则 RDS 快照不得为公有快照。如果您将未加密的手动快照作为公有快照进行共享,这会使所有人都可以使用此Amazon账户。这可能会导致 RDS 实例意外的数据泄露。

请注意,如果将配置更改为允许公有访问,则 Amazon Config 规则可能在长达 12 小时内无法检测到更改。在 Amazon Config 规则检测到更改之前,即使配置违反了规则,检查也会通过。

要了解有关共享 DB 快照的更多信息,请参阅共享数据库快照中的Amazon RDS 用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

要修复此问题,请更新 RDS 快照以删除公共访问权限。

删除 RDS 快照的公有访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 导航到 Snapshots (快照),然后选择要修改的公有快照

  3. Actions (操作) 中,选择 Share Snapshots (共享快照)

  4. DB snapshot visibility (数据库快照可见性) 中,选择 Private (私有)

  5. DB snapshot visibility (数据库快照可见性) 下,选择 all (全部)

  6. 选择保存

[RDS.2] RDS 数据库实例应禁止公有访问,这取决于 PubliclyAccessible 配置

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

严重性:重大

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-instance-public-access-check

类型:计划 已触发更改

参数:

该控制通过评估 Amazon RDS 实例是否可以公开访问PubliclyAccessible实例配置项目中的字段。

Neptune 数据库实例和 Amazon DocumentDB 集群没有PubliclyAccessible标记且无法进行评估。但是,这种控制仍然可以为这些资源生成结果。你可以抑制这些发现。

RDS 实例配置中的 PubliclyAccessible 值指示是否可以公开访问数据库实例。如果使用 PubliclyAccessible 配置了数据库实例,则它是一个面向 Internet 的实例并具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。如果无法公开访问数据库实例,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。

除非您打算使 RDS 实例可公开访问,否则不应使用PubliclyAccessible值。这样做可能会允许不必要的流量进入数据库实例。

修复

要修复此问题,请更新 RDS 数据库实例以删除公有访问权限。

从 RDS 数据库实例中删除公有访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 导航到 Databases (数据库),然后选择公有数据库。

  3. 选择修改

  4. UCET连接,展开其他连接配置.

  5. UCET公有访问权限,选择不公开访问.

  6. 选择 Continue (继续)

  7. UCET安排修改,选择Apply immediately (立即应用).

  8. 选择修改数据库实例

有关更多信息,请参阅 。在 VPC 中使用数据库实例中的Amazon RDS 用户指南.

[RDS.3] RDS 数据库实例应启用静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-storage-encrypted

类型:计划 已触发更改

参数:

该控制检查您的 Amazon RDS 数据库实例是否启用了存储加密。

此控件适用于 RDS 数据库实例。但是,它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群生成调查结果。如果这些发现没有用处,那么你可以抑制它们。

为了增加 RDS 数据库实例中敏感数据的安全性,您应将 RDS 数据库实例配置为静态加密。要静态加密 RDS DB 数据库实例和快照,请启用 RDS 数据库实例的加密选项。静态加密的数据包括数据库实例的基础存储、其自动化备份、只读副本和快照。

RDS 加密的数据库实例使用开放的标准 AES-256 加密算法,对托管 RDS 数据库实例的服务器上的数据进行加密。在加密数据后,Amazon RDS 将以透明方式处理访问的身份验证和数据的解密,并且对性能产生的影响最小。您无需修改数据库客户端应用程序来使用加密。

Amazon RDS 加密当前可用于所有数据库引擎和存储类型。Amazon RDS 加密适用于大多数数据库实例类。要了解不支持 Amazon RDS 加密的数据库实例类,请参阅对 Amazon RDS 资源进行加密中的Amazon RDS 用户指南.

修复

有关在 Amazon RDS 中加密数据库实例的信息,请参阅对 Amazon RDS 资源进行加密中的Amazon RDS 用户指南.

[RDS.4] RDS 集群快照和数据库快照应进行静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::RDS::DBClusterSnapshot AWS::RDS::DBSnapshot

Amazon Config 规则:rds-snapshots-encrypted

类型:计划 已触发更改

参数:

该控制检查 RDS 数据库快照是否已加密。

此控件适用于 RDS 数据库实例。但是,它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群的快照生成调查结果。如果这些发现没有用处,那么你可以抑制它们。

对静态数据进行加密可降低未经身份验证的用户访问存储在磁盘上的数据的风险。应该对 RDS 快照中的数据进行静态加密,以增加安全层。

修复

您可以使用 Amazon RDS 控制台来修复此问题。

加密未加密的 RDS 快照

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 查找要加密的快照手动要么系统.

  4. 选中要加密的快照旁边的复选框。

  5. 选择操作选择,然后选择复制快照.

  6. UCET新数据库快照标识符中,键入新快照的名称。

  7. UCET加密,选择启用加密.

  8. 选择用于加密快照的 KMS 密钥。

  9. 选择 Copy Snapshot (复制快照)

  10. 创建新快照后,删除原始快照。

  11. 适用于备份保留期中,选择非零正值。例如,30 天。

[RDS.5] RDS 数据库实例应配置多个可用区

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

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-multi-az-support

类型:计划 已触发更改

参数:

该控制检查您的 RDS 数据库实例是否启用了高可用性。

RDS 数据库实例应配置为多个可用区 (AZ)。这确保了存储的数据的可用性。如果可用区可用性出现问题以及在常规 RDS 维护期间,多可用区部署允许自动进行故障转移。

修复

要修复此问题,请更新数据库实例以启用多个可用区。

为数据库实例启用多个可用区域

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。

  3. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  4. UCET实例规格设置多可用区部署.

  5. 选择Continue然后查看修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南.

  7. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance (修改数据库实例) 保存更改。

[RDS.6] 应为 RDS 数据库实例和集群配置增强型监控

类别:检测 > 检测服务

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-enhanced-monitoring-enabled

类型:计划 已触发更改

参数:

该控制检查您的 RDS 数据库实例是否启用了增强监控。

在 Amazon RDS 中,增强监控可以更快地响应底层基础设施的性能变化。这些性能变化可能导致缺乏数据的可用性。增强监控提供 RDS 数据库实例在其上运行的操作系统的实时指标。实例上安装了代理。代理可以比从虚拟机管理程序层更准确地获取指标。

若您想了解数据库实例上不同进程或线程对 CPU 的使用差异,增强监测指标非常有用。有关更多信息,请参阅 。增强监控中的Amazon RDS 用户指南.

修复

有关如何为数据库实例启用增强监控的详细说明,请参阅。设置和启用增强监控中的Amazon RDS 用户指南.

[RDS.7] RDS 集群应启用删除保护

类别:保护 > 数据保护 > 数据删除保护

严重性:

资源类型: AWS::RDS::DBCluster

Amazon Config 规则:rds-cluster-deletion-protection-enabled

类型:计划 已触发更改

参数:

该控制检查 RDS 集群是否启用删除保护。

此控件适用于 RDS 数据库实例。但是,它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群生成调查结果。如果这些发现没有用处,那么你可以抑制它们。

启用群集删除保护是防止未经授权的实体意外删除数据库或删除数据库的另一层保护。

启用删除保护后,无法删除 RDS 集群。在删除请求成功之前,必须禁用删除保护。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国(宁夏)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)。

修复

要修复此问题,请更新 RDS 数据库集群以启用删除保护。

要为 RDS 数据库集群启用删除保护

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库类别,选择要修改的数据库集群。

  3. 选择修改

  4. UCET删除保护,选择启用删除保护.

  5. 选择 Continue (继续)

  6. UCET安排修改中,选择何时应用修改。这些选项是Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  7. 选择 Modify Cluster

[RDS.8] RDS 数据库实例应启用删除保护

类别:保护 > 数据保护 > 数据删除保护

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-instance-deletion-protection-enabled

类型:计划 已触发更改

参数:

  • databaseEngines: mariadb,mysql,oracle-ee,oracle-se2,oracle-se1,oracle-se,postgres,sqlserver-ee,sqlserver-se,sqlserver-ex,sqlserver-web

此控件将检查使用所列数据库引擎之一的 RDS 数据库实例是否启用了删除保护。

启用实例删除保护是防止未经授权的实体意外删除数据库或删除数据库的另一层保护。

启用删除保护时,RDS 数据库实例无法删除。在删除请求成功之前,必须禁用删除保护。

修复

要修复此问题,请更新 RDS 数据库实例以启用删除保护。

要为 RDS 数据库实例启用删除保护

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库类别,选择您想要修改的数据库实例。

  3. 选择修改

  4. UCET删除保护,选择启用删除保护.

  5. 选择 Continue (继续)

  6. UCET安排修改中,选择何时应用修改。这些选项是Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  7. 选择修改数据库实例

[RDS.9] 应启用数据库日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-logging-enabled

类型:计划 已触发更改

参数:

此控件检查是否启用了以下 Amazon RDS 日志并将其发送到 CloudWatch Logs:

  • Oracle:(警报、审计、跟踪、监听器)

  • PostgreSQL:(PostgreSQL,升级)

  • MySQL:(审计、错误、常规、慢查询)

  • MariaDB: (审计、错误、常规、慢查询)

  • SQL Server: (错误,代理)

  • Aurora:(审计、错误、常规、慢查询)

  • aurora-MySQL:(审计、错误、常规、慢查询)

  • Aurora-postgreSQL:(PostgreSQL,升级)。

RDS 数据库应启用相关日志。数据库日志记录提供向 RDS 发出的请求的详细记录。数据库日志可以帮助进行安全和访问审核,并有助于诊断可用性问题。

注意

以下区域不支持此控制:

非洲(开普敦)

亚太地区(大阪)

中国(宁夏)

欧洲(米兰)

修复

日志记录选项包含在与 RDS 数据库集群或实例关联的数据库参数组中。要在使用数据库引擎的默认参数组时启用日志记录,必须创建具有所需参数值的新数据库参数组。然后,您必须将客户数据库参数组与数据库集群或实例关联。

从启用 MariaDB、MySQL 或 PostgreSQL 日志并将其发布到 CloudWatch LogsAmazon Web Services Management Console中,在自定义数据库参数组中设置以下参数:

数据库引擎

参数

MariaDB

general_log=1

slow_query_log=1

log_output = FILE

MariaDB 还需要自定义选项组,如下所述。

MySQL

general_log=1

slow_query_log=1

log_output = FILE

PostgreSQL

log_statement=all

log_min_duration_statement=minimum query duration (ms) to log

创建自定义数据库参数组

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 选择创建参数组。将显示创建参数组窗口。

  4. 参数组选择一个数据库参数组系列。

  5. 类型列表,选择DB Parameter Group (数据库参数组).

  6. InGroup name中,输入新数据库参数组的名称。

  7. In说明中,输入新数据库参数组的描述。

  8. 选择创建

使用控制台为 MariaDB 日志记录创建新选项组

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择选项组

  3. 选择创建组

  4. 创建选项组窗口中,执行以下操作:

    1. 对于 Name (名称),输入选项组的名称,在 Amazon 账户内该名称需具有唯一性。此名称只能包含字母、数字和连字符。

    2. 对于说明,输入选项组的简要说明。此说明用于显示说明。

    3. 对于引擎,选择需要的数据库引擎。

    4. 对于主引擎版本,请选择所需的数据库引擎主版本。

  5. 要继续,请选择创建

  6. 选择刚才创建的选项组的名称。

  7. 选择添加选项

  8. 选择MARIADB_AUDIT_PLUGIN来自 的选项名称list.

  9. SERVER_AUDIT_EVENTS 设置为 CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML, QUERY_DCL

  10. 选择添加选项

从将 SQL Server 数据库、Oracle 数据库或 PostgreSQL 日志发布到 CloudWatch LogsAmazon Web Services Management Console

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. UCET日志导出选择所有日志文件以开始发布到 CloudWatch Logs。

    日志导出仅适用于支持发布到 CloudWatch Logs 的数据库引擎版本。

  6. 选择 Continue (继续)。然后在摘要页面上,选择修改数据库实例.

将新的数据库参数组或数据库选项组应用于 RDS 数据库实例

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要修改的数据库实例。

  4. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  5. UCET数据库选项,根据需要更改数据库参数组和数据库选项组。

  6. 完成更改后,选择Continue. 查看修改摘要。

  7. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南.

  8. 选择修改数据库实例以保存更改。

[RDS.10] 应为 RDS 实例配置 IAM 身份验证

类别:保护 > 安全访问管理 > 无密码身份验证

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-instance-iam-authentication-enabled

类型:计划 已触发更改

参数:

此控件检查 RDS 数据库实例是否启用了 IAM 数据库身份验证。

IAM 数据库身份验证允许使用身份验证令牌而不是密码对数据库实例进行身份 数据库的出站和进站网络流量是使用 SSL 加密的。有关更多信息,请参阅 。IAM 数据库身份验证中的Amazon Aurora 用户指南.

注意

以下区域不支持此控制:

Africa (Cape Town)

Asia Pacific (Hong Kong)

亚太地区(大阪)

中国(北京)

中国(宁夏)

修复

要修复此问题,请更新数据库实例以启用 IAM 身份验证。

为现有数据库实例启用 IAM 身份验证

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. UCET数据库选项,选择启用 IAM 数据库验证.

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改。这些选项是Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  8. 对于群集,请选择修改数据库实例.

[RDS.11] Amazon RDS 实例应启用自动备份

类别:恢复 > 弹性 > 已启用备份

严重性:

资源类型: AWS::RDS::DBCluster

Amazon Config 规则:db-instance-backup-enabled

类型:计划 已触发更改

参数:

  • backupRetentionMinimum: 7

此控制检查 Amazon Relational Database Service 实例是否启用了自动备份,以及备份保留期是否大于或等于 7 天。如果备份未启用,以及保留期少于 7 天,则控制将失败。

备份可帮助您更快地从安全事件中恢复,并增强系统的恢复能力。Amazon RDS 提供了一种简单的方法来配置每日完整实例卷快照。有关 Amazon RDS 自动备份的更多详细信息,请参阅使用备份在 Amazon RDS 用户指南中。

注意

以下区域不支持此控制:

亚太地区(大阪)

修复

立即启用自动备份

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。

  3. 选择修改以打开修改数据库实例页.

  4. UCET备份保留期,请选择正非零值,例如 30 天,然后选择Continue.

  5. 选择安排修改部分并选择何时应用修改:你可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  6. 然后,在确认页面上,请选择修改数据库实例以保存更改并启用自动备份。

[RDS.12] 应为 RDS 集群配置 IAM 身份验证

类别:保护 > 安全访问管理 > 无密码身份验证

严重性:

资源类型: AWS::RDS::DBClusterAWS::RDS::DBInstance

Amazon Config 规则:rds-cluster-iam-authentication-enabled

类型:计划 已触发更改

参数:

此控件检查 Amazon RDS 数据库集群是否启用了 IAM 数据库身份验证。

IAM 数据库身份验证允许对数据库实例进行无密码身份验证。该身份验证使用身份验证令牌。数据库的出站和进站网络流量是使用 SSL 加密的。有关更多信息,请参阅 。IAM 数据库身份验证中的Amazon Aurora 用户指南.

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • 中国(宁夏)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以从 Amazon RDS 控制台为数据库集群启用 IAM 身份验证。

为现有数据库集群启用 IAM 身份验证

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库集群。

  4. 选择修改

  5. UCET数据库选项,选择启用 IAM 数据库验证.

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  8. 选择修改集群

[RDS.13] 应启用 RDS 自动次要版本升级

类别:检测 > 漏洞和补丁管理

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-automatic-minor-version-upgrade-enabled

类型:计划 已触发更改

参数:

此控件检查是否为 RDS 数据库实例启用了自动次要版本升级。

启用自动次要版本升级可确保安装对关系数据库管理系统 (RDBMS) 的最新次要版本更新。这些升级可能包括安全补丁和错误修复。及时了解补丁安装是保护系统安全的一个重要步骤。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以从 Amazon RDS 控制台为数据库实例启用次要版本升级。

为现有数据库实例启用自动次要版本升级

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. UCET维护,选择为了自动次要版本升级.

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  8. 选择修改数据库实例

[RDS.14] Amazon Aurora 群集应启用回溯追踪

类别:恢复 > 弹性 > 已启用备份

严重性:

资源类型: AWS::RDS::DBCluster

Amazon Config 规则:aurora-mysql-backtracking-enabled

类型:计划 已触发更改

参数:

此控制检查 Amazon Aurora 集群是否启用了回溯追踪。

备份可帮助您更快地从安全事件中恢复。它们还可以增强系统的弹性。Aurora 回溯将数据库恢复到某个时间点。这样做不需要数据库还原。

有关 Aurora 中回溯的更多信息,请参阅回溯 Aurora 数据库集群中的Amazon Aurora 用户指南.

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • 亚太地区(大阪)

  • 中国(北京)

  • 中国(宁夏)

  • 欧洲(米兰)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何启用 Aurora 回溯的详细说明,请参阅配置回溯中的Amazon Aurora 用户指南.

请注意,您无法在现有集群上启用回溯追踪。相反,您可以创建启用回溯追踪的克隆。有关 Aurora 回溯限制的更多信息,请参阅中的限制列表回溯概述.

有关回溯定价的信息,请参阅Aurora 定价页面.

[RDS.15] 应为多个可用区配置 RDS 数据库集群

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

严重性:

资源类型: AWS::RDS::DBCluster

Amazon Config 规则:rds-cluster-multi-az-enabled

类型:计划 已触发更改

参数:

该控制检查您的 RDS 数据库集群是否启用了高可用性。

应为多个可用区配置 RDS 数据库集群,以确保存储的数据的可用性。部署到多个可用区允许在出现可用区可用性问题时以及在常规 RDS 维护事件期间自动进行故障转移。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • 中国(宁夏)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

要修复此控制,请为多个可用区配置数据库集群。

为数据库集群启用多可用区

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库,然后选择要修改的数据库实例。

  3. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  4. UCET实例规格设置多可用区部署.

  5. 选择继续,查看修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南.

    在确认页面上,检查您的更改。如果它们正确,请选择修改数据库实例.

[RDS.16] 应将 RDS 数据库集群配置为将标签复制到快照

类别:识别 > 清单

严重性:

资源类型: AWS::RDS::DBCluster

Amazon Config 规则:rds-cluster-copy-tags-to-snapshots-enabled(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查是否将 RDS 数据库集群配置为在创建快照时将所有标签复制到快照。

确定和库存您的 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您的所有 RDS 数据库集群,以评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库集群相同。启用此设置可确保快照继承其父数据库集群的标签。

注意

以下区域不支持此控制:

  • 中国(北京)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

修复

为数据库集群启用自动标签复制到快照

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库集群。

  4. 选择修改

  5. UCET备份,选择将标签复制到快照.

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

[RDS.17] RDS 数据库实例应配置为将标签复制到快照

类别:识别 > 清单

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-instance-copy-tags-to-snapshots-enabled(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查是否将 RDS 数据库实例配置为在创建快照时将所有标签复制到快照。

确定和库存您的 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您的所有 RDS 数据库实例,以评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库实例相同。启用此设置可确保快照继承其父数据库实例的标签。

修复

为数据库实例启用自动标签复制到快照

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. UCET备份,选择将标签复制到快照.

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

[RDS.18] RDS 实例应部署在 VPC 中

类别:保护 > 安全网络配置 > VPC 中的资源

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-deployed-in-vpc(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控制检查是否在 VPC 中部署了 RDS 实例 (EC2-VPC)。

VPC 提供了许多网络控制来保护对 RDS 资源的访问。这些控件包括 VPC 终端节点、网络 ACL 和安全组。要利用这些控件,我们建议您将 EC2-Classic RDS 实例移至 EC2-VPC。

修复

有关如何将 RDS 实例移动到 VPC 的详细说明,请参阅更新数据库实例的 VPC中的Amazon RDS 用户指南.

[RDS.19] 应为关键群集事件配置 RDS 事件通知订阅

类别:检测服务 > 应用程序监控

严重性:

资源类型: AWS::RDS::EventSubscription

Amazon Config 规则:rds-cluster-event-notifications-configured(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查是否存在已针对以下源类型、事件类别键值对启用了通知的 Amazon RDS 事件订阅。

DBCluster: ["maintenance","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的更多信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南.

修复

订阅 RDS 集群事件通知

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. UCET事件订阅,选择创建事件订阅.

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于发送通知到对于 SNS 主题,选择一个现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型,选择集群.

    4. UCET要包括的实例,选择所有集群.

    5. UCET要包括的活动类别,选择特定活动类别. 如果你选择了这个控件也会通过所有活动类别.

    6. Select保养失败.

    7. 选择创建

[RDS.20] 应为关键数据库实例事件配置 RDS 事件通知订阅

类别:检测服务 > 应用程序监控

严重性:

资源类型: AWS::RDS::EventSubscription

Amazon Config 规则:rds-instance-event-notifications-configured(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 Amazon RDS 事件订阅是否存在,并且为以下源类型、事件类别键值对启用了通知。

DBInstance: ["maintenance","configuration change","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的更多信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南.

修复

订阅 RDS 实例事件通知

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. UCET事件订阅,选择创建事件订阅.

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于发送通知到对于 SNS 主题,选择一个现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型,选择实例.

    4. UCET要包括的实例,选择所有实例.

    5. UCET要包括的活动类别,选择特定活动类别. 如果你选择了这个控件也会通过所有活动类别.

    6. Select保养配置更改, 和失败.

    7. 选择创建

[RDS.21] 应为关键数据库参数组事件配置 RDS 事件通知订阅

类别:检测服务 > 应用程序监控

严重性:

资源类型: AWS::RDS::EventSubscription

Amazon Config 规则:rds-pg-event-notifications-configured(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 Amazon RDS 事件订阅是否存在,并且为以下源类型、事件类别键值对启用了通知。

DBParameterGroup: ["configuration change"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的更多信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南.

修复

订阅 RDS 数据库参数组事件通知

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. UCET事件订阅,选择创建事件订阅.

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于发送通知到对于 SNS 主题,选择一个现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型,选择参数组.

    4. UCET要包括的实例,选择所有参数组.

    5. UCET要包括的活动类别,选择特定活动类别. 如果你选择了这个控件也会通过所有活动类别.

    6. Select配置更改.

    7. 选择创建

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

类别:检测 > 检测服务 > 应用程序监控

严重性:

资源类型: AWS::RDS::EventSubscription

Amazon Config 规则:rds-sg-event-notifications-configured(由 Security Hub 开发的自定义规则)

类型:计划 已触发更改

参数:

此控件检查 Amazon RDS 事件订阅是否存在,并且为以下源类型、事件类别键值对启用了通知。

DBSecurityGroup: ["configuration change","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的其他信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南.

修复

订阅 RDS 数据库安全组事件通知

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. UCET事件订阅,选择创建事件订阅.

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于发送通知到对于 SNS 主题,选择一个现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型,选择安全组.

    4. UCET要包括的实例,选择所有安全组.

    5. UCET要包括的活动类别,选择特定活动类别. 如果你选择了这个控件也会通过所有活动类别.

    6. Select配置更改失败.

    7. 选择创建

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

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

严重性:

资源类型: AWS::RDS::DBInstance

Amazon Config 规则:rds-no-default-ports(由 Security Hub 开发的自定义规则)

类型:Schedule 已触发更改

参数:

此控件检查 RDS 集群或实例是否使用数据库引擎的默认端口以外的端口。

如果您使用已知端口部署 RDS 集群或实例,攻击者可以猜测有关集群或实例的信息。攻击者可以将此信息与其他信息结合使用来连接 RDS 集群或实例,或获取有关您的应用程序的其他信息。

更改端口时,还必须更新用于连接到旧端口的现有连接字符串。您还应检查数据库实例的安全组,以确保其中包含允许在新端口上连接的入口规则。

修复

要修改现有数据库实例的默认端口

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 Databases(数据库)。

  3. 选择要修改的数据库实例

  4. 选择修改

  5. UCET数据库选项,更改数据库端口转换为非默认值。

  6. 选择 Continue (继续)

  7. UCET安排修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)要么Apply immediately (立即应用).

  8. 对于群集,请选择修改集群. 对于实例,请选择修改数据库实例.

[Redshift .1] Amazon Redshift 集群应禁止公开访问

类别:保护 > 安全网络配置 > 资源尚未公开访问

严重性:重大

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-cluster-public-access-check

类型:Schedule 已触发更改

参数:

此控件检查 Amazon Redshift 集群是否可以公开访问。它将评估PubliclyAccessible群集配置项目中的字段。

这些区域有:PubliclyAccessibleAmazon Redshift 集群配置的属性指示集群是否可公开访问。当群集配置时PubliclyAccessible设置true,它是一个面向 Internet 的实例,具有可公开解析的 DNS 名称,该名称解析为公有 IP 地址。

如果集群不可公开访问,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。除非您打算使集群可以公开访问,否则不应使用配置集群。PubliclyAccessible设置true.

修复

要修复此问题,请更新您的 Amazon Redshift 集群以禁用公共访问。

要禁用对 Amazon Redshift 集群的公开访问

  1. 打开位于 https://console.aws.amazon.com/redshift/ 的 Amazon Redshift 控制台。

  2. 在导航菜单中,选择集群然后选择要修改的安全组的集群的名称。

  3. 选择操作选择,然后选择修改公开访问性设置.

  4. UCET允许 VPC 外部的实例和设备通过群集终端节点连接到数据库,选择.

  5. 选择 Confirm(确认)。

[Redshift .2] 与 Amazon Redshift 集群的连接应在传输过程中进行加密

类别:保护 > 传输中数据加密

严重性:

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-require-tls-ssl

类型:Schedule 已触发更改

参数:

此控制检查是否需要与 Amazon Redshift 集群的连接才能在传输过程中使用加密。如果 Amazon Redshift 集群参数,检查失败require_SSL未将设置为 1。

TLS 可用于帮助防止潜在攻击者使用中间人攻击或类似攻击来窃听或操纵网络流量。只允许通过 TLS 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试应用程序,以了解性能配置文件和 TLS 的影响。

注意

欧洲(米兰)不支持此控制。

修复

要修复此问题,请更新参数组以要求加密。

修改参数组

  1. 打开位于 https://console.aws.amazon.com/redshift/ 的 Amazon Redshift 控制台。

  2. 在导航菜单中,选择Config选择,然后选择工作负载管理显示工作负载管理页.

  3. 选择要修改的参数组。

  4. 选择参数.

  5. 选择编辑参数然后设置require_ssl到 1.

  6. 输入所做的更改,然后选择Save(保存).

[Redshift .3] Amazon Redshift 群集应启用自动快照

类别:恢复 > 弹性 > 已启用备份

严重性:

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-backup-enabled

类型:Schedule 已触发更改

参数:

  • MinRetentionPeriod = 7

此控件检查 Amazon Redshift 集群是否启用了自动快照。它还检查快照保留期是否大于或等于 7。

备份可帮助您更快地从安全事件中恢复。它们可以加强系统的弹性。默认情况下,Amazon Redshift 会定期拍摄快照。该控制检查是否启用了自动快照并至少保留七天。有关 Amazon Redshift 自动快照的更多详细信息,请参阅自动快照中的Amazon Redshift 集群管理指南.

注意

以下区域不支持此控制:

  • 非洲(开普敦)

  • 亚太地区(大阪)

  • 亚太地区(悉尼)

  • 中国(宁夏)

  • 欧洲(米兰)

修复

要修复此问题,请将快照保留期更新为至少 7。

修改快照保留期

  1. 打开位于 https://console.aws.amazon.com/redshift/ 的 Amazon Redshift 控制台。

  2. 在导航菜单中,选择集群然后,选择要修改的集群的名称。

  3. 选择编辑

  4. UCET备份设置快照保留至 7 或更大的值。

  5. 选择 Modify Cluster

[Redshift .4] Amazon Redshift 群集应启用审核日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-cluster-audit-logging-enabled(由 Security Hub 开发的自定义规则)

类型:Schedule 已触发更改

参数:

  • loggingEnabled = true

此控件检查 Amazon Redshift 集群是否启用了审核日志记录。

Amazon Redshift 审计日志记录提供了有关集群中连接和用户活动的其他信息。这些数据可以存储在 Amazon S3 中并保护这些数据,对于安全审计和调查有所帮助。有关更多信息,请参阅 。数据库审核日志记录中的Amazon Redshift 集群管理指南.

修复

启用群集审计日志记录

  1. 打开位于 https://console.aws.amazon.com/redshift/ 的 Amazon Redshift 控制台。

  2. 在导航菜单中,选择集群然后,选择要修改的集群的名称。

  3. 选择维护和监控.

  4. UCET审核日志,选择编辑.

  5. Set启用审核记录然后,输入日志目标存储桶详细信息。

  6. 选择 Confirm(确认)。

[redshift.6] 亚马逊 Redshift 应该启用主要版本的自动升级

类别:检测 > 漏洞和补丁管理

严重性:

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-cluster-maintenancesettings-check

类型:Schedule 已触发更改

参数:

  • allowVersionUpgrade = true

此控件检查是否为 Amazon Redshift 集群启用了自动主版本升级。

启用自动主版本升级可确保在维护时段内安装 Amazon Redshift 群集的最新主要版本更新。这些更新可能包括安全补丁和错误修复。及时了解补丁安装是保护系统安全的一个重要步骤。

注意

中东(巴林)不支持此控制。

修复

从Amazon CLI中,使用 Amazon Redshiftmodify-cluster命令来设置--allow-version-upgrade属性。

aws redshift modify-cluster --cluster-identifier clustername --allow-version-upgrade

其中clustername是 Amazon Redshift 集群的名称。

[Redshift .7] Amazon Redshift 群集应使用增强型 VPC 路由

类别:保护 > 安全网络访问 > API 私有访问

严重性:

资源类型: AWS::Redshift::Cluster

Amazon Config 规则:redshift-enhanced-vpc-routing-enabled

类型:Schedule 已触发更改

参数:

该控制检查 Amazon Redshift 集群是否具有EnhancedVpcRouting已启用。

增强型 VPC 路由强制所有COPYUNLOAD集群和数据存储库之间的流量以通过您的 VPC。然后,您可以使用安全组和网络访问控制列表等 VPC 功能来保护网络流量。您还可以使用 VPC Flow Logs 监控网络流量。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关详细补救说明,请参阅启用增强型 VPC 路由中的Amazon Redshift 集群管理指南.

[S3.1] 应启用 S3 阻止公有访问设置

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

严重性:

资源类型: Amazon帐户

Amazon Config 规则:s3-account-level-public-access-blocks-periodic

类型:Schedule 定期

参数:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

该控制检查是否在账户级别配置了以下 Amazon S3 公有访问阻止设置:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

如果所有公共访问阻止设置都设置为,则控制通过true.

如果将任何设置设置为,则控件将失败false,或者如果没有配置任何设置。

Amazon S3 公有访问阻止旨在为整个企业提供控制Amazon账户或单个 S3 存储桶级别,以确保对象永远不会具有公有访问权限。通过访问控制列表 (ACL) 和/或存储桶策略向存储桶和对象授予公有访问权限。

除非您打算让 S3 存储桶可公开访问,否则应配置账户级别 Amazon S3 阻止公有访问功能。

要了解更多信息,请参阅使用 Amazon S3 阻止公有访问中的Amazon Simple Storage Service 用户指南.

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • Europe (Milan)

  • Middle East (Bahrain)

修复

要修复此问题,请启用 Amazon S3 阻止公有访问。

启用 Amazon S3 阻止公有访问

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 选择 Block public access (account settings) (阻止公有访问(账户设置))

  3. 选择编辑

  4. SelectBlock所有公有访问.

  5. 选择保存更改

有关更多信息,请参阅 。使用 Amazon S3 阻止公有访问中的Amazon Simple Storage Service 用户指南.

[S3.2] S3 存储桶应禁止公开读取访问

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

严重性:重大

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-public-read-prohibited

类型:Schedule 定期和变更触发

参数:

该控制检查 S3 存储桶是否允许公共读取访问。它评估阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL)。

有些使用案例要求互联网上的每个人都能够从您的 S3 存储桶中读取数据。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开读取。

修复

要修复此问题,请更新 S3 存储桶以删除公共访问权限。

从 S3 存储桶中删除公有访问权限

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择Permissions (权限)然后选择阻止公有访问.

  5. 选择编辑

  6. SelectBlock所有公有访问. 然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.3] S3 存储桶应禁止公开写入访问

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

严重性:重大

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-public-write-prohibited

类型:Schedule 定期和变更触发

参数:

该控制检查 S3 存储桶是否允许公共写入访问。它会对阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL) 进行评估。

有些使用案例要求互联网上的每个人都能写入您的 S3 存储桶。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开写入。

修复

要修复此问题,请更新 S3 存储桶以删除公共访问权限。

删除 S3 存储桶的公开访问权限

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择Permissions (权限)然后选择阻止公有访问.

  5. 选择编辑

  6. SelectBlock所有公有访问. 然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.4] S3 存储桶应启用服务器端加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-server-side-encryption-enabled

类型:Schedule 已触发更改

参数:

该控制检查 S3 存储桶是否启用了 Amazon S3 默认加密,或检查 S3 存储桶策略是否明确拒绝没有服务器端加密的放置对象请求。

为了增加 S3 存储桶中敏感数据的安全性,您应将存储桶配置为使用服务器端加密,以保护静态数据。Amazon S3 使用唯一的密钥来加密每个数据元。作为额外的保护,它将使用定期轮换的主密钥对密钥本身进行加密。Amazon S3 服务器端加密使用可用的最强数据块密码之一、256 位高级加密标准 (AES-256) 来加密您的数据。

要了解更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据中的Amazon Simple Storage Service 用户指南.

修复

要修复此问题,请更新 S3 存储桶以启用默认加密。

对 S3 存储桶启用默认加密

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 从列表中选择 S3 存储桶。

  4. 选择 Properties (属性)

  5. 选择 Default encryption

  6. 对于加密,请选择以下两种:AES-256要么AmazonKMS.

    • 选择AES-256以使用 Amazon S3 托管的密钥进行默认加密。有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅Amazon Simple Storage Service 用户指南.

    • 选择AmazonKMS使用由管理的密钥Amazon KMS对于默认加密。然后从已创建的 Amazon KMS 主密钥列表中选择一个主密钥。

      键入要使用的 Amazon KMS 密钥的 Amazon 资源名称 (ARN)。你可以找到 ARNAmazon KMS在 IAM 控制台中键,下加密密密钥. 或者,您可以从下拉列表中选择一个键名。

      重要

      如果您将 Amazon KMS 选项用于默认加密配置,则您需要遵循 Amazon KMS 的 RPS(每秒请求数)配额。有关 的更多信息Amazon KMS配额以及如何请求增加配额,请参阅Amazon Key Management Service开发人员指南.

      有关创建的更多信息Amazon KMS关键,请参阅Amazon Key Management Service开发人员指南.

      有关如何使用的更多信息Amazon KMS使用 Amazon S3,请参阅Amazon Simple Storage Service 用户指南.

    在启用默认加密时,您可能需要更新存储桶策略。有关从存储桶策略更改为默认加密的更多信息,请参阅Amazon Simple Storage Service 用户指南.

  7. 选择保存

有关默认 S3 存储桶加密的更多信息,请参阅Amazon Simple Storage Service 用户指南.

[S3.5] S3 存储桶应要求请求才能使用安全套接字层

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-ssl-requests-only

类型:Schedule 已触发更改

参数:

该控制检查 S3 存储桶是否具有需要请求使用安全套接字层 (SSL) 的策略。

S3 存储桶应具有要求所有请求的策略(Action: S3:*) 只接受 S3 资源策略中通过 HTTPS 传输数据,由条件键指示aws:SecureTransport.

修复

要修复此问题,请更新 S3 存储桶的权限策略。

将 S3 存储桶配置为拒绝不安全的传输

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 导航到不合规存储桶,然后选择存储桶名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. 在下面的政策中添加类似的政策声明。Replaceawsexamplebucket使用要修改的存储桶的名称。

    { "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSSLRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }
  5. 选择保存

有关更多信息,请参阅知识中心文章。要符合Amazon Config规则为 s3-bucket-ssl 请求?.

[S3.6] 向其他人授予 Amazon S3 权限Amazon存储桶策略中的账户应受到限制

类别:保护 > 安全访问管理 > 受限敏感 API 操作操作

严重性:

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-blacklisted-actions-prohibited

类型:Schedule 已触发更改

参数:

  • blacklistedactionpatterns: s3:DeleteBucketPolicy, s3:PutBucketAcl, s3:PutBucketPolicy, s3:PutEncryptionConfiguration, s3:PutObjectAcl

此控件检查 S3 存储桶策略是否阻止委托人来自其他Amazon账户无法对 S3 存储桶中的资源执行拒绝操作。如果 S3 存储桶策略允许对另一个委托人执行以下任何操作,则控件将失败Amazon账户:

  • s3:DeleteBucketPolicy

  • s3:PutBucketAcl

  • s3:PutBucketPolicy

  • s3:PutEncryptionConfiguration

  • s3:PutObjectAcl

实施最低权限访问对于降低安全风险以及错误或恶意意图的影响至关重要。如果 S3 存储桶策略允许从外部账户访问,则可能会导致内部威胁或攻击者泄露数据。

这些区域有:blacklistedactionpatterns参数允许成功评估 S3 存储桶的规则。该参数授予对外部账户的访问权限,以获取未包含在blacklistedactionpatternslist.

修复

要修复此问题,请编辑 S3 存储桶策略以删除权限。

要编辑 S3 存储桶策略

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. Bucket name(一个列表)中,选择要为其编辑策略的 S3 存储桶的名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. 存储桶策略编辑文本框中,执行下列操作之一:

    • 删除向其他人授予对被拒操作访问权限的语句Amazon账户

    • 从语句中删除允许的拒绝操作

  5. 选择保存

[S3.8] 应在存储桶级别启用 S3 阻止公有访问设置

类别:保护 > 访问控制

严重性:

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-level-public-access-prohibited

类型:Schedule 已触发更改

参数:

  • excludedPublicBuckets(可选)— 已知允许的公有 S3 存储桶名称的逗号分隔列表。

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

  • ignorePublicAcls

  • blockPublicPolicy

  • blockPublicAcls

  • restrictPublicBuckets

S3 存储桶级别的阻止公有访问提供控制以确保对象永远不会具有公有访问权限。通过访问控制列表 (ACL) 和/或存储桶策略向存储桶和对象授予公有访问权限。

除非您打算让 S3 存储桶可公开访问,否则应配置存储桶级别 Amazon S3 阻止公有访问功能。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关如何在存储桶级别删除公共访问权限的信息,请参阅阻止对您的 Amazon S3 存储的公有访问中的Amazon S3 用户指南中).

[S3.9] 应启用 S3 存储桶服务器访问日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::S3::Bucket

Amazon Config 规则:s3-bucket-logging-enabled

类型:Schedule 已触发更改

参数:

在启用日志记录后,Amazon S3 会将源存储桶的访问日志传输到所选的目标存储桶。目标存储桶必须位于源存储桶所在的相同 Amazon 区域中且不得具有默认保留周期配置。目标日志记录存储桶不需要启用日志记录。如果启用了服务器访问日志记录,则此控制通

服务器访问日志记录详细地记录对存储桶提出的各种请求。服务器访问日志可以帮助安全和访问权限审核。有关更多信息,请参阅 。Amazon S3 的安全最佳实践:启用 Amazon S3 服务器访问日志记录.

修复

启用 S​​3 存储桶访问日志记录

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 选择 CloudTrail 使用的存储桶。

  3. 选择 Properties (属性)

  4. 选择Server access logging (服务器访问日志记录)选择,然后选择编辑.

  5. UCETServer access logging (服务器访问日志记录)选择启用然后选择保存更改.

[SageMaker.1] SageMaker 笔记本实例不应直接访问互联网

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

严重性:

资源类型: AWS::SageMaker::NotebookInstance

Amazon Config 规则:sagemaker-notebook-no-direct-internet-access

类型:Schedule 定期

参数:

该控制检查是否禁用了 SageMaker 笔记本实例的直接互联网访问。要做到这一点,它会检查是否DirectInternetAccess为笔记本实例禁用字段。

如果您在没有 VPC 的情况下配置 SageMaker 实例,则默认情况下,您的实例上启用直接互联网访问。您应该使用 VPC 配置实例并将默认设置更改为禁用 — 通过 VPC 访问 Internet.

要从笔记本电脑训练或托管模型,你需要互联网接入。要启用 Internet 访问,请确保 VPC 具有 NAT 网关并且安全组允许出站连接。要了解有关如何将笔记本实例与 VPC 中的资源连接的更多信息,请参阅将笔记本实例 Connect 到 VPC 中的资源中的Amazon SageMaker 开发人员指南.

您还应确保将对 SageMaker 配置的访问限制为仅授权的用户。限制用户修改 SageMaker 设置和资源的 IAM 权限。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国(宁夏)

  • 欧洲(米兰)

  • Amazon GovCloud(美国东部)

修复

请注意,创建笔记本实例后,您无法更改互联网访问设置。必须停止、删除和重新创建它。

将 SageMaker 笔记本实例配置为拒绝直接访问互联网

  1. 从打开 SageMaker 控制台https://console.aws.amazon.com/sagemaker/

  2. 导航到笔记本实例.

  3. 删除启用了直接互联网访问的实例。选择实例,选择操作,然后选择停止。

    在实例停止后,请选择操作选择,然后选择删除.

  4. 选择创建笔记本实例。提供配置详细信息。

  5. 展开网络部分,然后选择 VPC、子网和安全组。UCET直接访问 Internet,选择禁用 — 通过 VPC 访问 Internet.

  6. 选择创建笔记本实例

有关更多信息,请参阅 。将笔记本实例 Connect 到 VPC 中的资源中的Amazon SageMaker 开发人员指南.

[SecretsManager.1] Secrets Manager 密钥应启用自动轮换

类别:保护 > 安全开发

严重性:

资源类型: AWS::SecretsManager::Secret

Amazon Config 规则:secretsmanager-rotation-enabled-check

类型:Schedule 已触发更改

参数:

该控制检查是否存储在中的密钥Amazon Secrets Manager配置为自动旋转。

Secrets Manager 帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储机密、自动加密密钥、控制对密钥的访问以及安全自动地轮换密码。

Secrets Manager 可以轮换密码。您可以使用轮换来替换为短期密钥。轮换你的机密限制未经授权的用户可以使用被盗密码的时间。因此,您应经常轮换机密。要了解有关旋转的更多信息,请旋转Amazon Secrets Manager秘密中的Amazon Secrets Manager用户指南.

修复

要修复此问题,您可以为密钥启用自动轮换。

启用密码的自动旋转

  1. https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台

  2. 要查找需要轮换的秘密,请在搜索字段中输入密码名称。

  3. 选择要轮换的密码,该密码将显示密码详细信息页面。

  4. UCET旋转配置,选择编辑旋转.

  5. 编辑轮换配置,选择启用自动轮换.

  6. 适用于选择轮换间隔中,选择一个轮换间隔。

  7. 选择一个 Lambda 函数进行旋转。有关自定义 Lambda 轮换函数的信息,请参阅了解和自定义您的 Lambda 轮换函数中的Amazon Secrets Manager用户指南.

  8. 要配置轮换的密钥,请选择下一步.

要了解有关 Secrets Manager 轮换的更多信息,旋转Amazon Secrets Manager秘密中的Amazon Secrets Manager用户指南.

[SecretsManager.2] 配置了自动轮换的密钥管理 Secrets Manager 密钥应成功旋转

类别:保护 > 安全开发

严重性:

资源类型: AWS::SecretsManager::Secret

Amazon Config 规则:secretsmanager-scheduled-rotation-success-check

类型:Schedule 已触发更改

参数:

该控制检查是否Amazon Secrets Manager秘密根据轮换时间表成功轮换。如果控件失败RotationOccurringAsScheduledfalse. 该控件不评估未配置轮换的密钥。

Secrets Manager 帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储机密、自动加密密钥、控制对密钥的访问以及安全自动地轮换密码。

Secrets Manager 可以轮换密码。您可以使用轮换来替换为短期密钥。轮换你的机密限制未经授权的用户可以使用被盗密码的时间。因此,您应经常轮换机密。

除了将密钥配置为自动轮换之外,还应确保这些密钥根据轮换计划成功轮换。

要了解有关旋转的更多信息,请旋转Amazon Secrets Manager秘密中的Amazon Secrets Manager用户指南.

修复

如果自动轮换失败,则 Secrets Manager 可能遇到配置错误。

要在密钥管理器中轮换密钥,请使用 Lambda 函数来定义如何与拥有密钥的数据库或服务交互。

有关如何诊断和修复与密钥轮换相关的常见错误的帮助,请参阅故障排除Amazon Secrets Manager轮换密钥中的Amazon Secrets Manager用户指南.

[SecretsManager.3] 删除未使用的 Secrets Manager 密钥

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::SecretsManager::Secret

Amazon Config 规则:secretsmanager-secret-unused

类型:Schedule 定期

参数:

该控制检查是否在指定的天数内访问了密钥。默认值为 90 天。如果在规定的天数内没有访问密码,则此控制将失败。

删除未使用的密钥与轮换密码同等重要。未使用的机密可能会被其以前的用户滥用,他们不再需要访问这些机密。此外,随着越来越多的用户访问密钥,有人可能处理不当,并将密钥泄露给未经授权的实体,这增加了滥用风险。删除未使用的密钥有助于撤销不再需要它的用户的秘密访问权限。它还有助于降低使用 Secrets Manager 的成本。因此,定期删除未使用的密码至关重要。

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以从 Secret Manager 控制台中删除非活动密钥。

删除不活动密钥

  1. https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台

  2. 要查找密钥,请在搜索框中输入密钥名称。

  3. 选择要删除的密钥。

  4. UCET秘密细节,来自的操作,选择删除密钥.

  5. UCET计划密钥删除中,输入删除密钥之前等待的天数。

  6. 选择计划删除

[SecretsManager.4] Secrets Manager 密钥应在指定的天数内轮换

类别:保护 > 安全访问管理

严重性:

资源类型: AWS::SecretsManager::Secret

Amazon Config 规则:secretsmanager-secret-periodic-rotation

类型:Schedule 定期

参数:

  • 轮换周期:默认情况下 90 天

该控制检查您的秘密是否在 90 天内至少轮换了一次。

轮换机密可以帮助你降低未经授权使用你的秘密的风险Amazonaccount. 例子包括数据库凭证、密码、第三方 API 密钥,甚至是任意文本。如果您很长一段时间未更改密钥,密钥泄露的可能性就会增大。

随着越来越多的用户访问密钥,有人处理不当并将密钥泄露给未经授权的实体的可能性就会增大。密钥可能会通过日志和缓存数据泄露出去。密钥可能会共享用于调试目的,但在调试完成后未更改或撤销。出于所有这些原因,密钥应该频繁地轮换。

你可以在中配置自动轮换你的密钥Amazon Secrets Manager. 通过自动轮换,您可以将长期密钥替换为短期密钥,从而显著减少泄露风险。

Security Hub 建议您启用 Secrets Manager 的轮换功能。要了解有关旋转的更多信息,请旋转Amazon Secrets Manager秘密中的Amazon Secrets Manager用户指南.

注意

以下区域不支持此控制:

  • 亚太地区(大阪)

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以在密钥管理器控制台中启用自动密钥轮换。

启用密钥轮换

  1. https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台

  2. 要查找密钥,请在搜索框中输入密钥名称。

  3. 选择要显示的密钥。

  4. UCET旋转配置,选择编辑旋转.

  5. 编辑轮换配置,选择启用自动轮换.

  6. 选择轮换间隔中,选择轮换间隔。

  7. 选择要用于轮换的 Lambda 函数。

  8. 选择 Next(下一步)。

  9. 为自动旋转配置密钥后,请在旋转配置,选择立即轮换密钥.

[SNS.1] SNS 主题应使用Amazon KMS

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::SNS::Topic

Amazon Config 规则:sns-encrypted-kms

类型:Schedule 已触发更改

参数:

此控件检查 SNS 主题是否使用静态加密Amazon KMS.

对静态数据进行加密可降低存储在磁盘上的数据被未经过身份验证的用户访问的风险Amazon. 它还添加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,在读取数据之前,需要 API 权限才能解密数据。SNS 主题应进行静态加密,以增加安全层。有关更多信息,请参阅 。静态加密中的Amazon Simple Notification Service 开发者指南.

修复

要修复此问题,请更新 SNS 主题以启用加密。

加密未加密的 SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择 Topics(主题)

  3. 选择要加密的主题的名称。

  4. 选择编辑

  5. UDET加密,选择启用加密.

  6. 选择用于加密主题的 KMS 密钥。

  7. 选择保存更改

[SQS.1] Amazon SQS 队列应进行静态加密

类别:保护 > 静态数据保护 > 静态数据加密

严重性:

资源类型: AWS::SQS::Queue

Amazon Config 规则:sqs-queue-encrypted(由 Security Hub 开发的自定义规则)

类型:Schedule 已触发更改

参数:

此控制检查 Amazon SQS 队列是否在静态时加密。如果您使用 Amazon SQS 托管密钥 (SSE-SQS) 或Amazon Key Management Service(Amazon KMS) key (SSE-KMS)。

借助服务器端加密 (SSE),您可以在加密队列中传输敏感数据。为了保护队列中消息的内容,SSE 使用 KMS 密钥。有关更多信息,请参阅 。静态加密中的Amazon Simple Queue Service 开发者指南.

修复

有关使用管理 SSE 的信息Amazon Web Services Management Console请参阅为队列配置服务器端加密 (SSE)(控制台)中的Amazon Simple Queue Service 开发者指南.

[SSM.1] EC2 实例应由Amazon Systems Manager

类别:识别 > 清单

严重性:

资源类型: AWS::EC2::Instance

Amazon Config 规则:ec2-instance-managed-by-systems-manager

类型:Schedule 已触发更改

参数:

该控制检查您账户中停止和正在运行的 EC2 实例是否由托管。Amazon Systems Manager. Systems Manager 是Amazon您可用于查看和控制Amazon基础设施。

为了帮助您维护安全性和合规性,Systems Manager 扫描您已停止并运行的托管实例。托管实例是一个已配置为与 Systems Manager 一起使用的机器。然后,Systems Manager 就检测到的任何策略违规行为报告或采取纠正措施。Systems Manager 还帮助您配置和维护托管实例。

要了解更多信息,请参阅Amazon Systems Manager用户指南.

修复

您可以使用 Systems Manager 控制台修复此问题。

确保 EC2 实例由 Systems Manager 管理

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航菜单中,选择快速设置.

  3. 选择创建

  4. UDET配置类型,选择主机管理选择,然后选择下一步.

  5. 在配置屏幕上,您可以保留默认选项。

    您可以选择性地进行以下更改:

    1. 如果您使用 CloudWatch 监控 EC2 实例,请选择安装和配置 CloudWatch 代理每 30 天更新一次 CloudWatch 代理.

    2. UDET目标中,选择管理范围以确定应用此配置的帐户和地区。

    3. UDET例配置文件选项,选择将所需的 IAM 策略添加到附加到实例的现有实例配置文件.

  6. 选择创建

要确定您的实例是否支持 Systems Manager 关联,请参阅Systems Manager 的先决条件中的Amazon Systems Manager用户指南.

[SSM.2] 由 Systems Manager 托管的所有 EC2 实例都应符合修补要求

类别:检测 > 检测服务

严重性:

资源类型: AWS::SSM::PatchCompliance

Amazon Config 规则:ec2-managedinstance-patch-compliance-status-check

类型:Schedule 已触发更改

参数:

该控制检查 Amazon EC2 Systems Manager 补丁合规性的合规性状态是否为COMPLIANT要么NON_COMPLIANT在实例上安装修补程序之后。它仅检查 Systems Manager Patch Manager 管理的实例。

根据您的组织要求对 EC2 实例进行完全修补,可减少 Amazon 账户面临的攻击面。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • Europe (Milan)

  • Middle East (Bahrain)

修复

要修复此问题,请在不合规的实例上安装所需的修补程序。

修复不合规的补丁

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. UDET节点管理,选择Run Command然后选择运行命令.

  3. 选择旁边的按钮Amazon-运行补丁基线.

  4. Operation (操作) 改为 Install (安装)

  5. 选择 Choose instances manually (手动选择实例),然后选择不合规的实例。

  6. 在页面底部选择 Run (运行)

  7. 在该命令完成后,要监控修补的实例的新合规性状态,请在导航窗格中选择 Compliance (合规性)

有关使用 Systems Manager 文档修补托管实例的更多信息,请参阅。关于适用于修补实例的 SSM 文档使用 Systems Manager Run Command 运行命令中的Amazon Systems Manager用户指南.

[SSM.3] 由系统管理器管理的实例应具有关联合规性状态COMPLIANT

类别:检测 > 检测服务

严重性:

资源类型: AWS::SSM::AssociationCompliance

Amazon Config 规则:ec2-managedinstance-association-compliance-status-check

类型:Schedule 已触发更改

参数:

该控制检查是否存在Amazon Systems Manager关联合规性是COMPLIANT要么NON_COMPLIANT在实例上运行关联之后。如果关联合规性状态为,则控制通过COMPLIANT.

状态管理器关联是分配给托管实例的配置。该配置定义要在实例上保持的状态。例如,关联可以指定必须在实例上安装并运行防病毒软件,或必须关闭特定端口。

创建一个或多个州经理关联之后,您将立即获得合规性状态信息。您可以在控制台或响应中查看合规性状态Amazon CLI命令或相应的 Systems Manager API 操作。对于关联,配置合规性显示合规性状态(Compliant要么Non-compliant)。它还显示分配给关联的严重性级别,如Critical要么Medium.

要了解有关州长关联合性的更多信息,请参阅关于遵守状态管理器关联中的Amazon Systems Manager用户指南.

注意

此控制尚未在非洲(开普敦)或欧洲(米兰)区域推出。

修复

失败的关联可能与不同的东西有关,包括目标和 SSM 文档名称。要修复此问题,必须首先确定并调查关联。然后,您可以更新关联以更正具体问题。

您可以编辑关联以指定新名称、计划、严重级别或目标。编辑关联后,Amazon Systems Manager 将创建新版本。

调查和更新失败的关联

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中的下节点管理,选择Fleet Manager.

  3. 选择具有关联状态已失败.

  4. 选择 View details (查看详细信息)

  5. 选择Associations.

  6. 注意拥有关联状态已失败. 这是你需要调查的关联。您需要在下一个步骤中使用关联名称。

  7. 在导航窗格中的下节点管理,选择状态管理器. 搜索关联名称,然后选择关联。

  8. 确定问题后,编辑失败的关联以纠正问题。有关如何编辑关联的信息,请参阅编辑关联.

有关创建和编辑状态管理器关联的详细信息,请参阅在 Systems Manager 中使用关联。中的Amazon Systems Manager用户指南.

[SSM.4] SSM 文档不应公开

类别:保护 > 安全网络配置 > 不可公开访问的资源

严重性:重大

资源类型: AWS::SSM::Document

Amazon Config 规则:ssm-document-not-public

类型:Schedule 定期

参数:

该控制检查是否Amazon Systems Manager账户拥有的文件是公开的。如果持有所有者的 SSM 文档,此控制将失败Self是公有的。

SSM 公开文档可能允许意外访问您的文档。公共 SSM 文档可以公开有关您的帐户、资源和内部流程的宝贵信息。

除非您的使用案例要求启用公开共享,否则 Security Hub 建议您为 Systems Manager 文档启用阻止公开共享设置。Self.

注意

以下区域不支持此控制:

  • 中国(北京)

  • China (Ningxia)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

有关禁用 SSM 文档的公有访问的详细信息,请参阅修改共享 SSM 文档的权限共享 SSM 文档的最佳做法中的Amazon Systems Manager用户指南.

[WA.1]Amazon WAF应该启用传统的全局 Web ACL 日志记录

类别:识别 > 日志记录

严重性:

资源类型: AWS::WAF::WebACL

Amazon Config 规则:waf-classic-logging-enabled

类型:Schedule 定期

参数:

此控制检查是否为Amazon WAF全局 Web ACL。如果没有为 Web ACL 启用日志记录,此控件将失败。

记录是保持可靠性、可用性和性能的重要环节。Amazon WAF全球。这是许多组织的业务和合规性要求,允许您对应用程序行为进行故障排除。它还提供了有关由附加到的 Web ACL 分析的流量的详细信息。Amazon WAF.

便条

注意

以下区域不支持此控制:

  • 美国东部(俄亥俄)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(米兰)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud(美国东部)

  • Amazon GovCloud(美国西部)

修复

您可以从 Kinesis Data Firehose 控制台启用 Web ACL 的日志记录。

为 Web ACL 启用日志记录

  1. 在以下位置打开 Kinesis Data Firehose 控制台https://console.aws.amazon.com/firehose/.

  2. 创建 Kinesis Data Firehose 传输流。

    名称必须以前缀开头aws-waf-logs-。例如:aws-waf-logs-us-east-2-analytics

    使用PUT来源和在您运营的区域中。如果您捕获 Amazon CloudFront 的日志,请在美国东部(弗吉尼亚北部)创建传输流。有关更多信息,请参阅 。创建 Amazon Kinesis Data Firehose 传输流中的Amazon Kinesis Data Firehose 开发人员指南.

  3. 服务,选择WAF & Shield. 然后选择 。切换到Amazon WAFClassic.

  4. 筛选条件,选择全球(CloudFront).

  5. 选择要启用日志记录的 Web ACL。

  6. UDET日志系统,选择Enable logging (启用日志记录).

  7. 选择您之前创建的 Kinesis Data Firehose 传输流。您必须选择名称以开头的交付流aws-waf-logs-。

  8. 选择启用日志记录