本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 基础安全最佳实践控件
Amazon 基础安全最佳实践标准包含以下控件。对于每个控件,介绍内容包括以下信息。
-
控件适用的类别。有关类别的说明,请参阅控件类别.
-
严重程度
-
控件评估的适用资源。我们还列出了控件的依赖资源。对于变更触发的控件,必须将资源记录在Amazon Config让控制发挥作用。有关更多信息,请参阅 Amazon 基础安全最佳实践控件所需的 Amazon Config 资源。
-
必需的 Amazon Config 规则以及由 Amazon Security Hub 设置的任意特定参数值
-
补救步骤
请注意,控制编号中的空白表示控件尚未发布。如果将控件标注为停用,Security Hub 不会为该控件生成调查结果。
按服务分类的控件
Amazon Database Migration Service
Amazon Identity and Access Management
Amazon Relational Database Service
Amazon Simple Notification Service
[ACM.1] 导入的和 ACM 颁发的证书应在指定的时间段后续订
类别:保护 > 数据保护 > 加密传输中的数据
严重性:中
资源类型:计划 AWS::ACM::Certificate
Amazon Config 规则:acm-certificate-expiration-check
计划类型:计划 触发器发器
参数:
-
daysToExpiration:30
此控制检查您账户中的 ACM 证书是否在 30 天内被标记为过期。它会检查导入的证书和 Amazon Certificate Manager 提供的证书。
ACM 可以自动续订使用 DNS 验证的证书。对于使用电子邮件验证的证书,您必须回复域名验证电子邮件。ACM 不会自动续订您导入的证书。您必须手动续订导入的证书。
有关 ACM 证书托管续订的更多信息,请参阅ACM 证书的托管续订在里面Amazon Certificate Manager用户指南.
以下区域不支持此控制。
-
非洲(开普敦)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
修复
针对您的由 Amazon 颁发的 SSL/TLS 证书,ACM 提供了托管续订。这意味着 ACM 要么自动续订您的证书(如果您使用 DNS 验证),要么在证书过期临近时向您发送电子邮件通知。对于公有和私有 ACM 证书,都提供这些服务。
- 对于通过电子邮件验证的域
-
当证书到期 45 天后,ACM 会向域名所有者发送一封针对每个域名的电子邮件。要验证域名并完成续订,您必须回复电子邮件通知。
有关更多信息,请参阅 。续订通过电子邮件验证的域在里面Amazon Certificate Manager用户指南.
- 适用于通过 DNS 验证的域
-
ACM 会自动续订使用 DNS 验证的证书。在证书到期前 60 天,ACM 会验证证书是否可以续订。
如果无法验证域名,则 ACM 会发送一条通知,告知需要手动验证。它将在过期前 45 天、30 天、7 天和 1 天发送这些通知。
有关更多信息,请参阅 。续订通过 DNS 验证的域在里面Amazon Certificate Manager用户指南.
[apiGateway.1] API Gateway REST 和 WebSocket 应启用 API 日志记录
类别:识别 > 记录
严重性:中
资源类型:计划 AWS::ApiGateway::Stage,AWS::ApiGatewayV2::Stage
Amazon Config 规则:api-gw-execution-logging-enabled
计划类型:计划 触发器发器
参数:None(无)
此控件检查 Amazon API Gateway 的所有阶段是 REST 还是 WebSocket API 已启用日志记录。如果未为某个阶段的所有方法启用日志记录,或者如果loggingLevel都不是ERROR也不INFO.
API Gateway REST WebSocket API 阶段应启用相关日志。API Gateway R WebSocket API 执行日志提供向 API Gateway REST 和 WebSocket API 阶段。这些阶段包括 API 集成、后端响应、Lambda 授权方响应以及requestId为了Amazon集成端点。
以下区域不支持此控件:
-
非洲(开普敦)
-
欧洲(米兰)
修复
要为 REST 启用日志记录,请执行以下操作 WebSocket API 操作,请参阅设置 CloudWatch 使用 API Gateway 控制台进行 API 记录在里面API Gateway 开发人员指南.
[ApiGateway.2] API Gateway REST API 阶段应配置为使用 SSL 证书进行后端身份验证
类别:保护 > 数据保护
严重性:中
资源类型:计划 AWS::ApiGateway::Stage
Amazon Config 规则:api-gw-ssl-enabled
计划类型:计划 触发器发器
参数:None(无)
此控件检查Amazon API Gateway REST API 阶段是否配置了 SSL 证书。后端系统使用这些证书来验证传入请求是否来自 API Gateway。
API Gateway REST API 阶段应配置 SSL 证书,以允许后端系统对来自 API Gateway 的请求进行身份验证。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
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
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否Amazon X-Ray已为您的Amazon API Gateway REST API 阶段启用主动跟踪。
X-Ray 主动跟踪可以更快地响应底层基础设施的性能变化。性能变化可能导致 API 缺乏可用性。X-Ray 主动跟踪提供流经您的 API Gateway REST API 操作和互联服务的用户请求的实时指标。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何为 API Gateway REST API 操作启用 X-Ray RAST 主动跟踪的详细说明,请参阅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
Schedule 类型:触发器发器
参数:None(无)
此控件检查 API Gateway 阶段是否使用Amazon WAFWeb 访问控制列表 (ACL)。如果出现以下情况,则此控件将失败Amazon WAFWeb ACL 未连接到 REST API Gateway 阶段。
Amazon WAF 是一个 Web 应用程序防火墙,可帮助保护 Web 应用程序和 API 免受攻击。通过它,您可以配置 ACL,这是一组基于可自定义的 Web 安全规则和您定义的条件,允许、阻止或计数 Web 请求的规则。确保您的 API Gateway 阶段与Amazon WAFWeb ACL 可帮助保护其免受恶意攻击。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
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 开发的自定义规则)
类型:触发器
参数:None(无)
此控件检查 API Gateway REST API 阶段中启用缓存的所有方法是否均已加密。如果 API Gateway REST API 阶段中的任何方法配置为缓存且缓存未加密,则控制将失败。
对静态数据进行加密可降低存储在磁盘上的数据被未经身份验证的用户访问的风险Amazon. 它添加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,需要有 API 权限才能解密数据,然后才能读取数据。
API Gateway REST API 缓存应进行静态加密,以增加安全层。
修复
要修复此控制,请将阶段配置为加密缓存数据。
为指定阶段配置 API 缓存
通过以下网址打开 API Gateway 控制台:https://console.aws.amazon.com/apigateway/
。 -
选择 API。
-
选择 Stages (阶段)。
-
在阶段API 列表,选择要添加缓存的阶段。
-
选择 Settings。
-
选择 启用 API 缓存。
-
更新所需的设置,然后选择加密缓存数据.
-
选择 Save Changes(保存更改)。
[AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用负载均衡器运行状况检查
类别:识别 > 列表
严重性:低
资源类型: AWS::AutoScaling::AutoScalingGroup
Amazon Config 规则:autoscaling-group-elb-healthcheck-required
类型:触发器
参数:None(无)
此控件检查与负载均衡器关联的 Auto Scaling 组是否正在使用 Elastic Load Balancing 运行状况检查。
这可确保该组可以根据负载均衡器提供的其他测试确定实例的运行状况。使用 Elastic Load Balancing 运行状况检查有助于支持使用 EC2 Auto Scaling 组的应用程序的可用性。
修复
要修复此问题,请更新您的 Auto Scaling 组以使用 Elastic Load Balancing 运行状况检查。
启用Elastic Load Balancing 运行状况检查
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,在Auto Scaling,选择Auto Scaling 组.
-
选中您的 组对应的复选框。
-
选择 Edit(编辑)。
-
下面运行状况检查,对于Health 检查类型,选择ELB.
-
对于 Health check grace period (运行状况检查宽限期),输入
300。 -
选择页面底部的更新。
有关在 Auto Scaling 组中使用负载均衡器的更多信息,请参阅Amazon Auto Scaling用户指南.
[AutoScaling.2] Amazon EC2 Auto Scaling 组应涵盖多个可用区
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型:计划 AWS::AutoScaling::AutoScalingGroup
Amazon Config 规则:autoscaling-multiple-az
类型:计划 触发器
参数:None(无)
此控件检查 Auto Scaling 组是否跨越多个可用区。如果 Auto Scaling 组不跨越多个可用区,则控制失败。
Amazon EC2 Auto Scaling 组可以配置为使用多个可用区。在某些用例中,例如批处理任务或需要将可用区间传输成本保持在最低水平时,首选使用具有单个可用区的 Auto Scaling 组。但是,不跨多个可用区的 Auto Scaling 组不会在另一个可用区启动实例,以补偿配置的单个可用区不可用。
修复
有关如何向现有 Auto Scaling 组添加可用区的信息,请参阅可用区在里面Amazon EC2 Auto Scaling 用户指南.
[AutoScaling.3] Auto Scaling 组应将 EC2 实例配置为需要实例元数据服务版本 2 (IMDSv2)
类别 保护 > 安全网络配置
严重性 高
资源类型:计划 AWS::AutoScaling::LaunchConfiguration
Amazon Config 规则:autoscaling-launchconfig-requires-imdsv2
类型:计划 触发器
参数:None(无)
此控件检查是否在 Amazon EC2 Auto Scaling 组启动的所有实例上启用了 IMDSv2。如果实例元数据服务 (IMDS) 版本未包含在启动配置中,或者如果同时启用了 IMDSv1 和 IMDSv2,则控制将失败。
IMDS 提供有关您的实例的数据,可以用来配置或管理正在运行的实例。
IMDS 版本 2 增加了在 IMDSv1 中没有的新保护措施,以进一步保护您的 EC2 实例。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
Auto Scaling 组一次与一个启动配置关联。在创建启动配置后,您无法修改其配置。要更改 Auto Scaling 组的启动配置,请将现有的启动配置作为启用 IMDSv2 的新启动配置的基础。有关更多信息,请参阅 。为新实例配置实例元数据选项在里面适用于Linux 实例的Amazon EC2 用户指南.
[AutoScaling.4] Auto Scaling 组启动配置的元数据响应跳数限制不应大于1
类别 保护 > 安全网络配置
严重性 高
资源类型:计划 AWS::AutoScaling::LaunchConfiguration
Amazon Config 规则:autoscaling-launch-config-hop-limit
类型:计划 触发器
参数:None(无)
此控件检查元数据令牌可以传输的网络跳数。如果元数据响应跳数限制大于,则控制失败1.
实例元数据服务 (IMDS) 提供有关 Amazon EC2 实例的元数据信息,可用于应用程序配置。限制 HTTPPUT仅对 EC2 实例的元数据服务的响应可保护 IMDS 免受未经授权的使用。
IP 数据包中的生存时间 (TTL) 字段每跳减少一个。这种减少可以用来确保数据包不会在 EC2 之外传输。IMDSv2 保护可能被错误配置为开放式路由器、第 3 层防火墙、VPN、隧道或 NAT 设备的 EC2 实例,从而防止未经授权的用户检索元数据。有了 imdsV2,PUT包含密钥令牌的响应无法传送到实例外部,因为默认的元数据响应跳数限制设置为1. 但是,如果这个值大于1,该令牌可以离开 EC2 实例。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何修改现有启动配置的元数据响应跳数限制的详细说明,请参阅为现有实例修改实例元数据选项在里面适用于Linux 实例的Amazon EC2 用户指南.
[AutoScaling.5] 使用 Auto Scaling 组启动配置启动的 Amazon EC2 实例不应具有公有 IP 地址
类别 保护 > 安全网络配置
严重性 高
资源类型 AWS::AutoScaling::LaunchConfiguration
Amazon Config 规则:autoscaling-launch-config-public-ip-disabled
Schedule:计划 触发器
参数:None(无)
此控件检查 Auto Scaling 组的关联启动配置是否分配了公有 IP 地址到群组的实例。如果关联的启动配置分配了公有 IP 地址,则控制将失败。
Auto Scaling 组启动配置中的 Amazon EC2 实例不应具有关联的公有 IP 地址,有限的边缘情况除外。Amazon EC2 实例只能从负载均衡器后面访问,而不是直接暴露在互联网上。
以下区域支持:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
Auto Scaling 组一次与一个启动配置关联。创建启动配置后,您将无法对其进行修改。要更改 Auto Scaling 组的启动配置,请将现有的启动配置作为新启动配置的基础。然后,更新 Auto Scaling 组以使用新的启动配置,如以下步骤所述。
更改 Auto Scaling 组的启动配置后,将使用新的配置选项启动所有新实例。现有实例不会受到影响。要更新现有实例,请终止这些实例,以便 Auto Scaling 组替换这些实例,或者根据您的情况启用自动扩展,以逐步使用较新实例替换较旧实例终止策略.
启用Elastic Load Balancing 运行状况检查
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,在Auto Scaling,选择启动配置.
-
选择启动配置并选择操作,那么复制启动配置. 这将设置与原启动配置选项相同的新启动配置,但在名称中会增加“Copy”文本。
-
在创建启动配置页面,展开高级详细信息下其他配置-可选.
-
下面IP 地址类型,选择请勿向任何实例分配公有 IP 地址.
-
完成后,选择创建启动配置.
-
在导航窗格的 Auto Scaling 下,选择 Auto Scaling 组。
-
选中 Auto Scaling 组旁边的复选框。
-
将在页面底部打开一个拆分窗格,其中显示有关所选组的信息。
-
在详细信息选项卡上,选择启动配置、编辑。
-
对于启动配置,选择新的启动配置。
-
完成更改启动配置后,选择Update.
[AutoScaling.6] Auto Scaling 组应在多个可用区中使用多个实例类型
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型 AWS::AutoScaling::AutoScalingGroup
Amazon Config 规则:autoscaling-multiple-instance-types
Schedule:计划 触发器
参数:None(无)
此控件检查 Amazon EC2 Auto Scaling 组是否使用多种实例类型。如果 Auto Scaling 组仅定义了一个实例类型,则控制会失败。
您可以跨多个可用区中运行的多个实例类型部署应用程序以提高可用性。Security Hub 建议使用多种实例类型,这样,如果您选择的可用区中实例容量不足,Auto Scaling 组可以启动另一种实例类型。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关创建包括多种实例类型的 Auto Scaling 组的说明,请参阅Auto Scaling 组具有多个实例类型和购买选项在里面Amazon EC2 Auto Scaling 用户指南.
[AutoScaling.9] EC2 Auto Scaling 组应使用 EC2 启动模板
类别 识别 > 资源配置
严重性 中
资源类型:计划 AWS::AutoScaling::AutoScalingGroup
Amazon Config 规则:autoscaling-launch-template
计划类型:计划 触发器
参数:None(无)
此控件会检查 Amazon EC2 Auto Scaling 组是否是从 EC2 启动模板创建的。如果 Amazon EC2 Auto Scaling 组不是使用启动模板创建的,或者没有在混合实例策略中指定启动模板,则此控制将失败。
可以从 EC2 启动模板或启动配置创建 EC2 Auto Scaling 组。但是,使用启动模板创建 Auto Scaling 组可以确保您可以访问最新的功能和改进。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要使用 EC2 启动模板创建 Auto Scaling 组,请参阅使用启动模板创建 Auto Scaling 组在里面Amazon EC2 Auto Scaling 用户指南. 有关如何使用启动模板替换启动配置的信息,请参阅使用启动模板替换启动配置在里面Amazon EC2 Windows 实例用户指南.
[CloudFormation1] CloudFormation 堆栈应与Simple Notification Service (SNS) 集成
类别 检测 > 检测服务 > 应用程序监控
严重性 低
资源类型:计划 AWS::CloudFormation::Stack
Amazon Config 规则:cloudformation-stack-notification-check
计划类型:计划 触发器
参数:
-
SNSTopic1:30 -
SNSTopic2:30 -
SNSTopic3:30 -
SNSTopic4:30 -
SNSTopic5:30 -
(Optional): SNS topic ARN:30
此控件检查亚马逊简单通知服务通知是否已与 CloudFormation堆栈。对于 a 的控制失败 CloudFormation 如果没有与之关联的 SNS 通知,则堆栈。
使用您的配置 SNS 通知 CloudFormation 堆栈有助于立即将堆栈发生的任何事件或更改通知利益相关者。
以下区域不支持此控件:
-
Africa (Cape Town)
-
Asia Pacific (Hong Kong)
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
Europe (Paris)
-
Europe (Stockholm)
-
中东(巴林)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何更新的信息 CloudFormation 堆栈,看看Amazon CloudFormation堆栈更新在里面Amazon CloudFormation用户指南。
[CloudFront1] CloudFront 分配应该配置默认根对象
错误类别 保护 > 安全访问管理 > 资源不可公开访问
错误类别 重大
资源类型:计划 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-default-root-object-configured
计划类型:计划 触发器
参数:None(无)
此控件检查是否有亚马逊 CloudFront distribution 被配置为返回一个作为默认根对象的特定对象。如果出现以下情况,则控制失败 CloudFront 发行版没有配置默认根对象。
用户有时可能会请求分配的根 URL,而不是分配中的对象。发生这种情况时,指定一个默认根对象可以帮助您避免公开 Web 分配的内容。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关如何为分配指定默认根对象的详细说明,请参阅如何指定默认根对象在里面亚马逊 CloudFront 开发人员指南.
[CloudFront2] CloudFront 发行版应启用源访问身份
错误类别 保护 > 安全访问管理 > 资源策略配置
错误类别 中
资源类型:计划 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-origin-access-identity-enabled
Schedule 类型 触发器
参数:None(无)
此控件检查是否有亚马逊 CloudFront Amazon S3 Origin 类型的分发配置了原始访问身份 (OAI)。如果未配置 OAI,则控制失败。
CloudFront OAI 阻止用户直接访问 S3 存储桶内容。当用户直接访问 S3 存储桶时,他们实际上绕过了 CloudFront 分配以及应用于底层 S3 存储桶内容的任何权限。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关详细的补救说明,请参阅创建 CloudFront OAI 并将其添加到您的分配在里面亚马逊 CloudFront 开发人员指南.
[CloudFront3] CloudFront 分发在传输过程中应要求加密
类别:保护 > 数据保护 > 加密传输中的数据
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-viewer-policy-https
Schedule 类型 触发器
参数:None(无)
此控件检查是否有亚马逊 CloudFront 分发要求查看者直接使用 HTTPS 或者是否使用重定向。如果出现以下情况,则控制失败ViewerProtocolPolicy将设置为allow-all为了defaultCacheBehavior或者对于cacheBehaviors.
HTTPS (TLS) 可用于帮助防止潜在攻击者使用 person-in-the-middle或类似的窃听或操纵网络流量的攻击。只允许通过 HTTPS (TLS) 进行加密连接。对传输中的数据进行加密可能会影响性能。您应该使用此功能测试您的应用程序,以了解性能概况和 TLS 的影响。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关详细的补救说明,请参阅要求在查看器和 之间使用 HTTPS 进行通信 CloudFront在里面亚马逊 CloudFront 开发人员指南.
[CloudFront4] CloudFront 发行版应配置原始故障转移
类别:恢复 > 弹性 > 高可用性
严重性:低
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-origin-failover-enabled
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否有亚马逊 CloudFront 分布配置为具有两个或更多源的源组。
CloudFront 源故障转移可以提高可用性。如果主源不可用或返回特定的 HTTP 响应状态代码,则源故障转移自动将流量重定向到辅助源。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关详细的补救说明,请参阅创建源组在里面亚马逊 CloudFront 开发人员指南.
[CloudFront5] CloudFront 发行版应该启用日志记录
类别:识别 > 记录
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-accesslogs-enabled
Schedule 类型 触发器发器
参数:None(无)
此控件检查服务器访问日志是否已启用 CloudFront 分配 如果未为分配启用访问日志,则控制将失败。
CloudFront 访问日志提供有关每个用户请求的详细信息 CloudFront 接收。每个日志都包含诸如收到请求的日期和时间、发出请求的查看者的 IP 地址、请求的来源以及查看器发出的请求的端口号等信息。
这些日志对于安全和访问审核以及取证调查等应用程序很有用。有关如何分析访问日志的更多指南,请参阅查询 Amazon CloudFront 圆木在里面Amazon Athena 用户指南.
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关如何配置访问日志的信息 CloudFront 分布,请参阅配置和使用标准日志(访问日志)在里面亚马逊 CloudFront 开发人员指南.
[CloudFront.6] CloudFront 发行版应该具有Amazon WAF已启用
类别:保护 > 防护服务
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-associated-with-waf
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否 CloudFront 分布与任一分布相关联Amazon WAF要么Amazon WAFv2 Web 访问控制列表。如果分配与 Web ACL 未关联,则控制将失败。
Amazon WAF 是一个 Web 应用程序防火墙,可帮助保护 Web 应用程序和 API 免受攻击。通过它,您可以配置一组名为 Web 访问控制列表 (Web ACL) 的规则,基于可自定义的 Web 安全规则和您定义的条件,允许、阻止或计数 Web 请求。确保你的 CloudFront 分布与Amazon WAFWeb ACL 可帮助保护其免受恶意攻击。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关如何将 WebACL 与关联的信息 CloudFront 分布,请参阅使用Amazon WAF控制对您的内容的访问在里面亚马逊 CloudFront 开发人员指南.
[CloudFront.7] CloudFront 发行版应使用自定义 SSL/TLS 证书
类别:保护 > 数据保护 > 加密 data-in-transit
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-custom-ssl-certificate
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否 CloudFront 发行版使用默认的 SSL/TLS 证书 CloudFront 提供。此控件通过,如果 CloudFront 分发使用自定义 SSL/TLS 证书。如果出现以下情况,则此控件将失败 CloudFront 分发使用默认的 SSL/TLS 证书。
自定义 SSL/TLS 允许您的用户使用备用域名访问内容。您可以将自定义证书存储在Amazon Certificate Manager(推荐),或者在 IAM 中。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
使用自定义 SSL/TLS 证书为您的添加备用域名 CloudFront 分布,请参阅添加备用域名在里面亚马逊 CloudFront 开发人员指南.
[CloudFront.8] CloudFront 发行版应使用 SNI 来处理 HTTPS 请求
类别:保护 > 安全网络配置
严重性:低
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-sni-enabled
Schedule 类型 触发器发器
参数:None(无)
此控件检查亚马逊是否有 CloudFront 发行版使用自定义 SSL/TLS 证书,并配置为使用 SNI 提供 HTTPS 请求。如果关联了自定义 SSL/TLS 证书,但 SSL/TLS 支持方法是专用 IP 地址,则此控制将失败。
服务器名称指示 (SNI) 是对 TLS 协议的扩展,2010 年以后发布的浏览器和客户端均支持。如果你配置 CloudFront 使用 SNI 处理 HTTPS 请求, CloudFront 关联备用域名与每个边缘站点中的 IP 地址。当查看器提交针对内容的 HTTPS 请求时,DNS 将该请求传送到正确边缘站点的 IP 地址。指向您域名的 IP 地址在 SSL/TLS 握手协商期间确定;IP 地址并非专用于您的分发。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
配置您的 CloudFront 使用 SNI 处理 HTTPS 请求的分配,请参阅使用 SNI 处理 HTTPS 请求(适用于大多数客户端)在里面 CloudFront 开发人员指南。
[CloudFront.9] CloudFront 发行版应加密流向自定义源的流量
类别:保护 > 数据保护 > 加密 data-in-transit
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-traffic-to-origin-encrypted
Schedule 类型 触发器发器
参数:None(无)
此控件检查亚马逊是否有 CloudFront 发行版正在对流向自定义源的流量进行加密。此控件失败了 CloudFront 其原始协议策略允许 “http-only” 的发行版。如果发行版的源协议策略为 “match-viewer”,而查看者协议策略为 “allow-all”,则此控制也会失败。
HTTPS (TLS) 可用于帮助防止窃听或操纵网络流量。只允许通过 HTTPS (TLS) 进行加密连接。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
要更新原始协议策略以要求对您进行加密 CloudFront 连接,请参阅要求在之间使用 HTTPS 进行通信 CloudFront 和您的自定义源在里面亚马逊 CloudFront 开发人员指南.
[CloudFront.10] CloudFront 发行版不应在边缘站点和自定义源之间使用过时的 SSL 协议
类别:保护 > 数据保护 > 加密 data-in-transit
严重性:中
资源类型 AWS::CloudFront::Distribution
Amazon Config 规则:cloudfront-no-deprecated-ssl-protocols
Schedule 类型 触发器发器
参数:None(无)
此控件检查亚马逊是否有 CloudFront 发行版使用过时的 SSL 协议进行 HTTPS 通信 CloudFront 边缘站点和您的自定义来源。如果出现以下情况,则此控件将失败 CloudFront 发行版有一个CustomOriginConfig哪里OriginSslProtocols包括SSLv3.
2015 年,互联网工程任务组 (IETF) 正式宣布应弃用 SSL 3.0,因为该协议不够安全。建议您使用 TLSv1.2 或更高版本与您的自定义源进行 HTTPS 通信。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
要更新您的原始 SSL 协议 CloudFront 分布,请参阅要求在之间使用 HTTPS 进行通信 CloudFront 和您的自定义源在里面亚马逊 CloudFront 开发人员指南.
[CloudTrail1] 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 调用,包括从账户发出的 API 调用Amazon Web Services Management Console,AmazonSDK、命令行工具。历史记录还包括来自更高级别 Amazon 服务(如 Amazon CloudFormation)的 API 调用。
这些区域有:Amazon生成的 API 调用历史记录 CloudTrail 支持安全分析、资源变更跟踪和合规性审计。多区域跟踪还提供以下好处。
-
多区域跟踪有助于检测在其他本不应使用的区域中发生的意外活动。
-
多区域跟踪可确保默认情况下为跟踪启用全局服务事件日志记录。全局服务事件日志记录将记录 Amazon 全局服务生成的事件。
-
对于多区域跟踪,所有读取和写入操作的管理事件可确保 CloudTrail 记录 Amazon 账户所有资源上的管理操作。
默认情况下, CloudTrail 使用创建的路线Amazon Web Services Management Console是多区域步道。
修复
要修复此问题,请在中创建新的多区域跟踪 CloudTrail.
要创建新跟踪 CloudTrail
打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
. -
如果你还没用过 CloudTrail before, choose 立即开始使用.
-
选择 Trails (跟踪),然后选择 Create trail (创建跟踪)。
-
输入跟踪的名称。
-
在 Storage location (存储位置) 下,执行下列操作之一:
-
为创建新的 S3 存储桶 CloudTrail 日志,对于创建新的 S3 存储桶,选择是,然后输入新 S3 存储桶的名称。
-
要使用现有 S3 存储桶,对于 Create a new S3 bucket (创建新 S3 存储桶),请选择 No (否),然后选择要使用的 S3 存储桶。
-
-
下面其他设置,选择高级. 对于启用日志文件验证SELECTEnabled.
-
选择 Create(创建)。
更新中的现有跟踪 CloudTrail
打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
. -
选择 Trails (跟踪)。
-
在 Name (名称) 列中选择跟踪的名称。
-
对于 Management events(管理事件),选择 Edit(编辑)。
-
对于读取/写入事件SELECT管理事件.
-
下面API 活动SELECTRead和Write.
[CloudTrail2] CloudTrail 应该启用静态加密
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型 AWS::CloudTrail::Trail
Amazon Config 规则:cloud-trail-encryption-enabled
Schedule 类型 定期
参数:None(无)
此控件检查是否 CloudTrail 配置为使用服务器端加密 (SSE)Amazon KMS key加密。如果定义了 KmsKeyId,则检查通过。
为您的敏感人士增加一层安全保障 CloudTrail 日志文件,你应该使用服务器端加密Amazon KMS— 托管密钥 (SSE-KMS)为了你 CloudTrail 日志文件以进行静态加密。请注意,默认情况下,日志文件由 CloudTrail 到您的存储桶由以下方式加密使用 Amazon S3 托管加密密钥进行亚马逊服务器端加密 (SSE-S3).
修复
要修复此问题,请更新您的跟踪以启用日志文件的 SSE-KMS 加密。
为启用加密 CloudTrail 圆木
打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
. -
选择 Trails (跟踪)。
-
选择要更新的跟踪。
-
下面一般详细信息,选择编辑.
-
对于日志文件 SSE-KMS 加密SELECTEnabled.
-
对于 Create a new KMS key (创建新的 KMS 密钥),执行以下操作之一:
-
要创建密钥,请选择new. 然后进去Amazon KMS化名,输入密钥的别名。密钥是在与 S3 存储桶相同的区域中创建的。
-
要使用现有密钥,请选择现有,然后来自的Amazon KMS化名,选择密钥。
Amazon KMS 密钥和 S3 存储桶必须位于同一区域。
-
-
选择 Save(保存)。
您可能需要修改以下策略 CloudTrail 以成功与 KMS 密钥交互。有关更多信息,请参阅 。加密 CloudTrail 日志文件Amazon KMS— 托管密钥 (SSE-KMS)在里面Amazon CloudTrail用户指南.
[CloudTrail.4] 确保 CloudTrail 日志文件验证已启用
类别:数据保护 > 数据完整性
严重性:低
资源类型 AWS::CloudTrail::Trail
Amazon Config 规则:cloud-trail-log-file-validation-enabled
Schedule 类型 定期
参数:None(无)
此控件检查是否在上启用了日志文件完整性验证 CloudTrail跟踪使用。
CloudTrail 日志文件验证会创建一个数字签名的摘要文件,其中包含每个日志的哈希值 CloudTrail 写入 Amazon S3。您可以使用这些摘要文件来确定日志文件在此之后是否已更改、删除或未更改 CloudTrail 已发送日志。
Security Hub 建议您在所有跟踪上启用文件验证。日志文件验证提供额外的完整性检查 CloudTrail 日志。
有关更多信息,请参阅 。启用验证并验证文件在里面Amazon CloudTrail用户指南.
修复
要修复此问题,请更新您的 CloudTrail 跟踪以启用日志文件验证。
要启用 CloudTrail 日志文件验证
打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
. -
选择 Trails (跟踪)。
-
下面名称,请选择要编辑的跟踪的名称。
-
下面一般详细信息,选择编辑.
-
下面其他设置,对于日志文件验证,选择Enabled.
-
选择 Save changes(保存更改)。
有关更多信息,请参阅 。验证 CloudTrail 日志文件完整性在里面Amazon CloudTrail用户指南.
[CloudTrail.5] 确保 CloudTrail 跟踪已与亚马逊集成 CloudWatch 日志
类别:识别 > 记录
严重性:低
资源类型 AWS::CloudTrail::Trail
Amazon Config 规则:cloud-trail-cloud-watch-logs-enabled
Schedule 类型 定期
参数:None(无)
此控件检查是否 CloudTrail 跟踪配置为将日志发送到 CloudWatch 日志。如果出现以下情况,则控制失败CloudWatchLogsLogGroupArn这条小径的属性是空的。
CloudTrail 记录Amazon在给定账户中进行的 API 调用。记录的信息包含:
-
API 调用方的身份
-
API 调用的时间
-
API 调用方的源 IP 地址
-
请求参数
-
返回的响应元素Amazon服务
CloudTrail 使用 Amazon S3 进行日志文件存储和传输。你可以捕获 CloudTrail 指定 S3 存储桶中的日志用于长期分析。要执行实时分析,可以配置 CloudTrail 将日志发送到 CloudWatch 日志。
对于在账户的所有区域中启用的跟踪, CloudTrail 将来自所有这些区域的日志文件发送到 CloudWatch 日志日志日志日志日志日志日志日志日志
Security Hub 建议你发送 CloudTrail 登录到 CloudWatch 日志。请注意,此建议旨在确保捕获、监控账户活动并发出相应的警报。您可以使用 CloudWatch 使用您的日志进行设置Amazon服务。本建议不排除使用不同的解决方案。
发送使用 CloudTrail 登录到 CloudWatch 日志便于根据用户、API、资源和 IP 地址记录实时和历史活动。您可以使用这种方法为异常或敏感账户活动建立警报和通知。
修复
您可以使用控制台启用 CloudTrail 与 集成 CloudWatch 日志。
要启用 CloudTrail 与 集成 CloudWatch 日志
打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
. -
选择 Trails (跟踪)。
-
选择没有值的路线CloudWatch 日志日志日志组.
-
在 CloudWatch Logs (日志) 下,选择 Edit (编辑)。
-
选择 Enabled (已启用)。
-
对于日志组,执行以下操作之一:
-
要使用默认日志组,请保持名称不变。
-
要使用现有日志组,请选择现有然后输入要使用的日志组的名称。
-
要创建新的日志组,请选择new然后输入要创建的日志组的名称。
-
-
对于 IAM role (IAM 角色),执行以下操作之一:
-
要使用现有角色,请选择现有然后从下拉列表中选择角色。
-
要创建新角色,请选择new然后输入要创建的角色的名称。将为新角色分配一个策略以授予所需的权限。
要查看授予该角色的权限,请展开策略文档.
-
-
选择 Save changes(保存更改)。
有关更多信息,请参阅 。配置 CloudWatch 使用控制台监控日志在里面Amazon CloudTrail用户指南.
[CodeBuild1] CodeBuild GitHub 或者 Bitbucket 源存储库 URL 应该使用 OAuth
类别:保护 > 安全开发
严重性:重大
资源类型:计划 AWS::CodeBuild::Project
Amazon Config 规则:codebuild-project-source-repo-url-check
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否 GitHub 或 Bitbucket 源存储库 URL 包含个人访问令牌或用户名和密码。
以下区域不支持此控件:
-
非洲(开普敦)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
身份验证凭证绝不应以明文方式存储或传输,也不应显示在存储库 URL 中。您应该使用 OAuth 来授予访问权限,而不是个人访问令牌或用户名和密码 GitHub 或 Bitbucket 存储库。使用个人访问令牌或用户名和密码可能会导致您的凭证遭受意外的数据暴露和未经授权的访问。
修复
您可以更新您的 CodeBuild 要使用 OAuth 的项目。
删除基本身份验证/(GitHub) 个人访问令牌来自 CodeBuild 项目来源
打开 CodeBuild 控制台https://console.aws.amazon.com/codebuild/
. -
选择包含个人访问令牌或用户名和密码的构建项目。
-
从 Edit (编辑) 中,选择 Source (源)。
-
选择断开连接 GitHub /Bicket.
-
选择使用 OAuth 进行Connect,然后选择连接到 GitHub/Bicket.
-
出现提示时,选择 authorize as appropriate (相应授权)。
-
根据需要,重新配置存储库 URL 和其他配置设置。
-
选择 Update source (更新源)。
有关更多信息,请参阅CodeBuild 基于用例的示例在里面Amazon CodeBuild用户指南.
[CodeBuild2] CodeBuild 项目环境变量不应包含明文证书
类别:保护 > 安全开发
严重性:重大
资源类型:计划 AWS::CodeBuild::Project
Amazon Config 规则:codebuild-project-envvar-awscred-check
计划类型:计划 触发器发器
参数:None(无)
该控制检查项目是否包含环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。
身份验证凭证 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 决不能以明文方式存储,因为这可能会导致意外的数据暴露和未经授权的访问。
以下区域不支持此控件:
-
非洲(开普敦)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此问题,请更新您的 CodeBuild 要删除环境变量的项目。
从 a 中移除环境变量 CodeBuild 项目
打开 CodeBuild 控制台https://console.aws.amazon.com/codebuild/
. -
展开 Build (构建)。
-
选择 Build project (构建项目),然后选择包含明文凭证的构建项目。
-
从 Edit (编辑) 中,选择 Environment (环境)。
-
展开 Additional configuration (其他配置)。
-
选择环境变量旁边的 Remove (删除)。
-
选择 Update environment (更新环境)。
将敏感值存储在 Amazon EC2 Systems Manager 参数存储库中,然后从您的构建规范中检索它们
打开 CodeBuild 控制台https://console.aws.amazon.com/codebuild/
. -
展开 Build (构建)。
-
选择 Build project (构建项目),然后选择包含明文凭证的构建项目。
-
从 Edit (编辑) 中,选择 Environment (环境)。
-
展开 Additional configuration (其他配置),然后滚动到 Environment variables (环境变量)。
-
关注本教程以创建包含您的敏感数据的Systems Manager 参数。
-
在创建参数后,复制参数名称。
-
回来了 CodeBuild 控制台,选择创建环境变量.
-
输入在构建规范中显示的变量名称。
-
对于 Value (值),粘贴参数名称。
-
对于 Type (类型),选择 Parameter (参数)。
-
要删除包含明文凭证的不合规环境变量,请选择 Remove (删除)。
-
选择 Update environment (更新环境)。
有关更多信息,请参阅 。构建环境中的环境变量在里面Amazon CodeBuild用户指南.
[CodeBuild4] CodeBuild 项目环境应该有日志配置
类别:识别 > 记录
严重性:中
资源类型:计划 AWS::CodeBuild::Project
Amazon Config 规则:codebuild-project-logging-enabled
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否 CodeBuild 项目环境至少有一个日志选项,可以是 S3 或 CloudWatch 启用日志。如果出现以下情况,则此控件将失败 CodeBuild 项目环境没有启用至少一个日志选项。
从安全角度来看,日志记录是一项重要功能,可在future 发生任何安全事件时进行取证。关联异常 CodeBuild 具有威胁检测功能的项目可以提高人们对这些威胁检测的准确性的信心。
修复
有关如何配置的更多信息 CodeBuild 项目日志设置,请参阅创建构建项目(控制台)在里面 CodeBuild 用户指南。
[CodeBuild5] CodeBuild 项目环境不应启用特权模式
类别:保护 > 安全访问管理
严重性:高
资源类型:计划 AWS::CodeBuild::Project
Amazon Config 规则:codebuild-project-environment-privileged-check
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否Amazon CodeBuild项目环境启用了特权模式。当出现以下情况时,此控件失效Amazon CodeBuild项目环境启用了特权模式。
默认情况下,Docker 容器不允许访问任何设备。特权模式将授予构建项目的 Docker 容器访问所有设备的权限。设置privilegedMode有值true允许在 Docker 容器内运行 Docker 守护程序。Docker 守护程序监听 Docker API 请求并管理 Docker 对象,例如镜像、容器、网络和卷。仅在构建项目用于构建 Docker 映像时,应将此参数设置为 true。否则,应禁用此设置,以防止意外访问 Docker API 以及容器的底层硬件,从而意外访问privilegedMode可能存在恶意篡改或删除关键资源的风险。
修复
有关如何配置的更多信息 CodeBuild 项目环境设置,请参阅创建构建项目(控制台)在里面 CodeBuild 用户指南
[Config.1] 应启用 Amazon Config
类别:识别 > 列表
严重性:中
资源类型:计划 Amazon帐户
Amazon Config规则:None(无)
计划类型:计划 定期
参数:None(无)
该控制检查是否已在账户中为本地区域启用了 Amazon Config,并记录所有资源。
Amazon Config 服务对您账户中支持的 Amazon 资源执行配置管理,并向您提供日志文件。记录的信息包括配置项(Amazon 资源)、配置项之间的关系以及资源之间的任何配置更改。
Security Hub 建议您启用Amazon Config在所有区域。Amazon Config 捕获的 Amazon 配置项历史记录可用于安全分析、资源更改跟踪和合规性审计。
由于 Security Hub 是一项区域服务,因此对此控制执行的检查仅检查该账户的当前区域。它不会检查所有区域。
要允许针对每个区域中的全局资源进行安全检查,您还必须记录全局资源。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。
要了解更多信息,请参阅开始使用Amazon Config在里面Amazon Config开发人员指南.
修复
启用后Amazon Config,将其配置为记录所有资源。
配置 Amazon Config 设置
通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/
。 -
选择要在其中配置 Amazon Config 的区域。
-
如果你还没用过Amazon ConfigBefore开始使用在里面Amazon Config开发人员指南.
-
从菜单导航到设置页面,然后执行以下操作:
-
选择 Edit(编辑)。
-
下面要记录的资源类型SELECT记录该地区支持的所有资源和包括全球资源(例如AmazonIAM 资源.
-
下面数据保留期,请选择默认的保留期Amazon Config数据,或者指定自定义保留期。
-
下面Amazon Config角色,要么选择CreateAmazon Config服务相关角色或者选择从您的账户中选择一个角色然后选择要使用的角色。
-
在 Amazon S3 bucket (Amazon S3 存储桶) 下面,指定要使用的存储桶,或者创建存储桶并包括前缀(可选)。
-
下面Amazon SNS 主题,请从您的账户中选择 Amazon SNS 主题或创建一个。有关 Amazon SNS 的更多信息,请参阅Amazon Simple Notification S.
-
-
选择 Save(保存)。
有关使用的更多信息Amazon Config来自 的Amazon CLI,请参阅启用Amazon Config在里面Amazon Config开发人员指南.
您还可以使用 Amazon CloudFormation 模板自动执行这一过程。有关更多信息,请参阅 。Amazon CloudFormation StackSets 示例模板在里面Amazon CloudFormation用户指南.
[DMS.1]Amazon Database Migration Service复制实例不应公开
类别:保护 > 安全网络配置
严重性:重大
资源类型:计划 AWS::DMS::ReplicationInstance
Amazon Config 规则:dms-replication-not-public
计划类型:计划 定期
参数:None(无)
此控件检查是否Amazon DMS复制实例是公共的。为此,它会检查PubliclyAccessible字段中返回的子位置类型。
私有复制实例有一个私有 IP 地址,您无法在复制网络之外访问该地址。当源数据库和目标数据库位于同一个网络中时,复制实例应具有私有 IP 地址。网络还必须使用 VPN 连接到复制实例的 VPC,Amazon Direct Connect,或 VPC 对等。要了解有关公有和私有复制实例的更多信息,请参阅公有复制实例和私有复制实例在里面Amazon Database Migration Service用户指南.
您还应确保访问您的Amazon DMS实例配置仅限于授权用户。为此,请限制用户的 IAM 修改权限Amazon DMS设置和资源。
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
请注意,一旦创建了复制实例,就无法更改公共访问设置。必须将其删除并重新创建。
配置Amazon DMS复制实例设置为阻止公共访问
-
打开 Amazon Database Migration Service 控制台 (https://console.aws.amazon.com/dms/
)。 -
导航到复制实例,然后删除公共实例。选择实例,选择操作,然后选择删除.
-
选择创建复制实例。提供配置详情。
-
要禁用公共访问权限,请确保公开访问未被选中。
-
选择 Create(创建)。
有关更多信息,请参阅以下部分创建复制实例在里面Amazon Database Migration Service用户指南.
[DynamoDB.1] DynamoDB 表应根据需求自动扩展容量
类别:恢复 > 弹性 > 高可用性
严重性:中
资源类型:计划 AWS::DynamoDB::Table
Amazon Config 规则:dynamodb-autoscaling-enabled
计划类型:计划 定期
参数:None(无)
此控件检查 Amazon DynamoDB 表是否可以根据需要扩展其读取和写入容量。如果表使用按需容量模式或配置了 Auto Scaling 的配置模式,则此控制将通过。按需扩展容量可避免限制异常,这有助于保持应用程序的可用性。
按需容量模式下的 DynamoDB 表仅受 DynamoDB 吞吐量默认表配额限制。要提高这些配额,您可以通过以下方式提交支持请求Amazon Web Services Support
具有自动扩展功能的预置模式下的 DynamoDB 表可根据流量模式动态调整预置的吞吐容量。有关 DynamoDB 请求限制的其他信息,请参阅请求节流和容量暴增在里面Amazon DynamoDB 开发人员.
中不支持此控件Amazon GovCloud (美国东部)或Amazon GovCloud (美国西部)。
修复
有关在容量模式下对现有表启用 DynamoDB 自动扩展的详细说明,请参阅在现有表上启用 DynamoDB 自动扩缩在里面Amazon DynamoDB 开发人员.
[DynamoDB.2] DynamoDB 表应该有 point-in-time 已启用恢复
类别:恢复 > 弹性 > 启用备份
严重性:中
资源类型:计划 AWS::DynamoDB::Table
Amazon Config 规则:dynamodb-pitr-enabled
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否 point-in-time 已为Amazon DynamoDB 表启用恢复 (PITR)。
备份可帮助您更快地从安全事件中恢复。它们还可以增强系统的弹性。DynamoDB point-in-time 恢复可自动备份 DynamoDB 表。它减少了从意外删除或写入操作中恢复的时间。已启用 PITR 的 DynamoDB 表可以还原到最近 35 天中的任何时间点。
修复
要修复此问题,请添加 point-in-time 恢复到您的 DynamoDB 表。
启用 DynamoDB point-in-time 恢复现有表
从 https://console.aws.amazon.com/dynamodb/
打开 DynamoDB 控制台。 -
选择要处理的表,然后选择备份.
-
在里面Point-in-time 恢复部分,下方状态,选择启用.
-
选择启用再次确认更改。
[DynamoDB.3] DynamoDB Accelerator (DAX) 集群应进行静态加密
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型:计划 AWS::DAX::Cluster
Amazon Config 规则:dax-encryption-enabled
计划类型:计划 定期
参数:None(无)
此控件检查 DAX 集群是否进行静态加密。
对静态数据进行加密可降低存储在磁盘上的数据被未经身份验证的用户访问的风险Amazon. 加密增加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,需要有 API 权限才能解密数据,然后才能读取数据。
修复
集群创建后不能启用或禁用静态加密。必须重新创建集群,以启用静态加密。有关如何创建启用静态加密的 DAX 集群的详细说明,请参阅使用启用静态加密Amazon Web Services Management Console在里面Amazon DynamoDB 开发人员.
[EC2.1] Amazon EBS 快照不应公开,这取决于任何人都可恢复的可用性
类别:保护 > 安全网络配置
严重性:重大
资源类型:计划 Amazon帐户
Amazon Config 规则:ebs-snapshot-public-restorable-check
计划类型:计划 定期
参数:None(无)
此控件检查亚马逊弹性区块存储快照是否未公开。如果任何人都可以恢复 Amazon EBS 快照,则控制失败。
EBS 快照用于在特定时间点将 EBS 卷上的数据备份到 Amazon S3。您可以使用快照还原 EBS 卷的先前状态。与公众共享快照几乎是不允许的。通常,公开共享快照的决定要么是决策错误,要么是没有完全理解其含义。此检查有助于确保所有此类共享都是完全经过规划并且是有意进行的。
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
要修复此问题,请更新您的 EBS 快照以将其设为私有而不是公开。
将公有 EBS 快照变为私有快照
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,在Elastic loc,选择快照菜单,然后选择你的公共快照。
-
从 Actions (操作) 中,选择 Modify permissions (修改权限)。
-
选择 Private (私有)。
-
(可选)添加Amazon与之共享快照的授权账户的账号并选择添加权限.
-
选择 Save(保存)。
[EC2.2] VPC 默认安全组不应允许入站和出站流量
类别:保护 > 安全网络配置
严重性:高
资源类型:计划 AWS::EC2::SecurityGroup
Amazon Config 规则:vpc-default-security-group-closed
计划类型:计划 触发器发器
参数:None(无)
该控制检查 VPC 的默认安全组是否不允许入站或出站流量。
默认安全组的规则允许来自分配给相同安全组的网络接口(及其关联实例)的所有出站和入站流量。
我们不建议使用默认安全组。由于无法删除默认安全组,因此您应更改默认安全组规则设置以限制入站和出站流量。如果意外为 EC2 实例等资源配置了默认安全组,这可以防止意外的流量。
修复
要修复此问题,请创建新的安全组并将这些安全组分配给您的资源。为防止使用默认安全组,请删除其入站和出站规则。
创建新的安全组并将其分配给您的资源
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Security groups(安全组)。查看默认安全组详细信息以了解分配给它们的资源。
-
为资源创建一组最小权限安全组。有关如何创建安全组的详细信息,请参阅创建安全组在里面Amazon VPC User Guide.
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在 Amazon EC2 控制台上,将使用默认安全组的资源的安全组更改为您创建的最低权限安全组。请参阅更改实例的安全组在里面Amazon VPC User Guide.
将新安全组分配给资源后,从默认安全组中移除入站和出站规则。这样可以确保不使用默认安全组。
从默认安全组中删除规则
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Security groups(安全组)。
-
选择默认安全组并选择入站规则选项卡。选择 Edit inbound rules(编辑入站规则)。然后删除所有入站规则。选择 Save rules(保存规则)。
-
对每个默认安全组重复上一步骤。
-
选择默认安全组并选择出站规则选项卡。选择编辑出站规则. 然后删除所有出站规则。选择 Save rules(保存规则)。
-
对每个默认安全组重复上一步骤。
有关更多信息,请参阅 。使用安全组在里面Amazon VPC User Guide.
[EC2.3] 附加的 EBS 卷应在静态时加密
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型:计划 AWS::EC2::Volume
Amazon Config 规则:encrypted-volumes
计划类型:计划 触发器发器
参数:None(无)
该控制检查处于连接状态的 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
计划类型:计划 定期
参数:
-
allowedDays:30
此控件检查任何 EC2 实例的停止时间是否超过了允许的天数。如果 EC2 实例的停止时间超过允许的最大时间段(默认为 30 天),则无法通过此项检查。
失败的发现表明 EC2 实例在很长一段时间内没有运行。这会带来安全风险,因为 EC2 实例没有得到积极维护(分析、修补、更新)。如果稍后启动,则缺乏适当的维护可能会导致你的意外问题Amazon环境。要在一段时间内安全地将 EC2 实例保持在非运行状态,请定期启动它进行维护,然后在维护后将其停止。理想情况下,这是一个自动化过程。
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
您可以使用控制台或命令行终止 EC2 实例。
在终止 EC2 实例之前,请确认您不会丢失任何数据:
-
检查您的亚马逊 EBS 卷是否在终止时被删除。
-
将所需数据从 EC2 实例存储卷复制到 Amazon EBS 或 Amazon S3。
终止 EC2 实例(控制台)
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中的 Instances 下,选择 Instances。
-
选择实例,然后选择操作,实例状态,终止.
-
当系统提示您确认时,选择 Yes, Terminate(是,终止)。
终止 EC2 实例 (Amazon CLI,Tools for Windows PowerShell)
使用以下命令之一。有关命令行界面的更多信息,请参阅访问 Amazon EC2在里面适用于Linux 实例的Amazon EC2 用户指南.
-
来自的Amazon CLI,使用
terminate-instances -
来自适用于 Windows Pools 的工具 PowerShell,使用
Stop-EC2Instance.
要了解有关终止实例的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的终止实例。
[EC2.6] 应在所有 VPC 中启用 VPC 流量日志记录
类别:识别 > 记录
严重性:中
资源类型:计划 AWS::EC2::VPC
Amazon Config 规则:vpc-flow-logs-enabled
计划类型:计划 定期
参数:
-
trafficType:REJECT
此控件检查是否找到并启用了 VPC 的 Amazon VPC 流日志。流量类型设置为Reject.
利用 VPC 流日志功能,您可以捕获有关传入和传出您的 VPC 中网络接口的 IP 地址流量的信息。创建流日志后,您可以在中查看和检索其数据 CloudWatch 日志。为了降低成本,您还可以将流日志发送到 Amazon S3。
Security Hub 建议您为 VPC 的数据包拒绝启用流量记录。流日志提供对通过 VPC 的网络流量的可见性,并可以在安全工作流程中检测异常流量或提供见解。
默认情况下,记录包括 IP 地址流的不同组件的值,包括源、目标和协议。有关日志字段的更多信息和描述,请参阅VPC 流日志在里面Amazon VPC User Guide.
修复
要修复此问题,请启用 VPC 流量记录。
启用 VPC 流日志记录
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
下面虚拟私有云,选择您的 VPC.
-
选择要更新的 VPC。
-
在页面底部,选择流日志.
-
选择 Create flow log(创建流日志)。
-
对于 Filter (筛选条件),选择 Reject (拒绝)。
-
对于目标日志组,选择要使用的日志组。
-
对于IAM 角色,选择要使用的 IAM 角色。
-
选择 Create(创建)。
[EC2.7] 应启用 EBS 默认加密
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型:计划 Amazon帐户
Amazon Config 规则:ec2-ebs-encryption-by-default
计划类型:计划 定期
参数:None(无)
此控制检查是否为 Amazon Elastic Block Store (Amazon EBS) 默认启用账户级加密。如果未启用账户级加密,则控制失败。
为您的账户启用加密后,Amazon EBS 卷和快照副本将进行静态加密。这为您的数据增加了一层额外的保护。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的默认加密。
请注意,以下实例类型不支持加密:R1、C1 和 M1。
修复
您可以使用 Amazon EC2 控制台为 Amazon EBS 卷启用默认加密。
针对某个区域配置用于 Amazon EBS 加密的默认加密
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从导航窗格中,选择 EC2 控制面板。
-
在页面的右上角,选择账户属性,EBS 加密.
-
选择管理。
-
选择 Enable (启用)。你可以保留Amazon 托管式密钥用别名
alias/aws/ebs作为默认加密密钥以您的名义创建,或者选择对称的客户托管密钥。 -
选择更新 EBS 加密。
[EC2.8] EC2 实例应使用 imdsV2
类别:保护 > 网络安全
严重性:高
资源类型:计划 AWS::EC2::Instance
Amazon Config 规则:ec2-imdsv2-check
计划类型:计划 触发器发器
参数:None(无)
此控件检查您的 EC2 实例元数据版本是否使用实例元数据服务版本 2 (IMDSv2) 进行了配置。如果控制通过HttpTokens对于 IMDSv2,已设置为必需。如果出现以下情况,则控制失败HttpTokens将设置为optional.
您使用实例元数据来配置或管理正在运行的实例。IMDS 提供对临时、经常轮换的证书的访问权限。这些证书无需手动或以编程方式对实例进行硬编码或分发敏感证书。IMDS 在本地连接到每个 EC2 实例。它运行在一个特殊的 “本地链接” IP 地址 169.254。只有在实例上运行的软件才能访问此 IP 地址。
IMDS 版本 2 为以下类型的漏洞添加了新的保护措施。这些漏洞可用于尝试访问 IMDS。
-
打开网站应用程序防火墙
-
打开反向代理
-
服务器端请求伪造 (SSRF) 漏洞
-
打开第 3 层防火墙和网络地址转换 (NAT)
Security Hub 建议您使用 IMDSv2 配置 EC2 实例。
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
要修复未配置 IMDSv2 的 EC2 实例,您可以要求使用 IMDSv2。
要要求在现有实例上使用 IMDSv2,请在请求实例元数据时修改 Amazon EC2 元数据选项。按照中的说明进行操作为现有实例配置实例元数据选项在里面适用于Linux 实例的Amazon EC2 用户指南.
要要求在新实例上使用 IMDNS v2,请按照中的说明操作为新实例配置实例元数据选项在里面适用于Linux 实例的Amazon EC2 用户指南.
从控制台使用 IMDSv2 配置您的新 EC2 实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
选择启动实例,然后选择启动实例.
-
下面高级详细信息,对于元数据版本,选择V2 only (token required.
-
在 “摘要” 面板中,查看您的更改,然后选择启动实例.
如果您的软件使用 IMDSv1,则可以重新配置软件,以使用 IMDSv2。有关详细信息,请参阅。转换为使用实例元数据服务版本 2在里面适用于Linux 实例的Amazon EC2 用户指南.
[EC2.9] EC2 实例不应具有公有 IP 地址
类别:保护 > 安全网络配置 > 公有 IP 地址
严重性:高
资源类型:计划 AWS::EC2::Instance
Amazon Config 规则:ec2-instance-no-public-ip
计划类型:计划 触发器发器
参数:None(无)
此控件检查 EC2 实例是否具有公有 IP 地址。如果出现以下情况,则控制失败publicIp字段存在于 EC2 实例配置项目中。此控制仅适用于 IPv4 地址。
公有 IPv4 地址是指可通过 Internet 访问的 IP 地址。如果您使用公有 IP 地址启动实例,则可从 Internet 访问您的 EC2 实例。私有 IPv4 地址是指无法从互联网访问的 IP 地址。您可以使用私有 IPv4 地址在同一 VPC 中或连接的私有网络中的 EC2 实例之间进行通信。
IPv6 地址具有全局唯一性,因此可通过 Internet 访问。但是,默认情况下,所有子网的 IPv6 寻址属性都设置为 false。有关 IPv6 的更多信息,请参阅VPC 中的 IP 寻址在里面Amazon VPC User Guide.
如果您有合法的用例来维护具有公有 IP 地址的 EC2 实例,则可以隐藏此控制中的发现。有关前端架构选项的更多信息,请参阅Amazon建筑博客
修复
使用非默认 VPC,以便在默认情况下不会为实例分配公有 IP 地址。
在默认 VPC 中启动 EC2 实例时,系统会为它分配公有 IP 地址。当您将 EC2 实例启动到非默认 VPC 中时,子网配置确定是否接收公有 IP 地址。子网的一个属性用于确定子网中的新 EC2 实例是否从公有 IPv4 地址池接收公有 IP 地址。
您不能从 EC2 实例手动关联或取消关联或取消关联自动分配的公有 IP 地址。要控制您的 EC2 实例是否接收公有 IP 地址,请执行以下操作之一:
-
修改子网的公有 IP 寻址属性。有关更多信息,请参阅 Amazon VPC 用户指南 中的修改子网的公有 IPv4 寻址属性。
-
在启动时启用或禁用公有 IP 寻址功能。这会覆盖子网的公有 IP 寻址属性。有关更多信息,请参阅 。在实例启动期间分配公有 IPv4 地址在里面适用于Linux 实例的Amazon EC2 用户指南.
有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的公有 IPv4 地址和外部 DNS 主机名。
如果您的 EC2 实例与弹性 IP 地址相关联,则可从 Internet 访问您的 EC2 实例。您可以随时取消弹性 IP 地址与实例或网络接口的关联。
撤销弹性 IP 地址的关联
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Elastic IPs。
-
选择要取消关联的弹性 IP 地址。
-
From操作,选择取消关联弹性 IP 地址.
-
选择取消关联。
[EC2.10] 应将 Amazon EC2 配置为使用为Amazon EC2 服务创建的 VPC 终端节点
类别:保护-安全网络配置 > API 私有访问
严重性:中
资源类型:计划 AWS::EC2::VPC
Amazon Config 规则:service-vpc-endpoint-enabled
计划类型:计划 定期
参数:
-
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 的接口终端节点
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Endpoints(端点)。
-
选择 Create Endpoint(创建终端节点)。
-
对于服务类别,选择 Amazon 服务。
-
对于服务名称:,选择com.amaws。 <region>.ec2.
-
对于类型,选择接口.
-
完成以下信息:
-
对于 VPC,选择要在其中创建端点的 VPC。
-
对于 Subnets(子网),选择要在其中创建端点网络接口的子网(可用区)。并非所有可用区都支持所有可用区Amazon服务。
-
要为接口终端节点启用私有 DNS,请选中启用 DNS 名称. 默认情况下,此选项处于启用状态。
要使用私有 DNS 选项,您的 VPC 的以下属性必须设置为 true:
-
enableDnsHostnames -
enableDnsSupport
有关更多信息,请参阅 Amazon VPC 用户指南中的查看和更新 VPC 的 DNS 支持。
-
-
对于 Security group(安全组),选择要与端点网络接口关联的安全组。
-
(可选)添加或删除标签。要添加标签,请选择添加标签然后执行以下操作:
-
对于Key,输入标签名称。
-
对于 Value(值),输入键值。
-
-
要删除标签,请选择删除按钮 (x) 在标签的右侧Key和值.
-
-
选择 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
计划类型:计划 触发器发器
参数:None(无)
此控件会检查Amazon Virtual Private Cloud (Amazon VPC) 子网中的公有 IP 的分配是否有MapPublicIpOnLaunch设置FALSE. 如果将标志设置为,则控件通过FALSE.
所有子网都有一个用于确定在子网中创建的网络接口是否自动接收公有 IPv4 地址的属性。在启用了此属性的子网中启动的实例会为其主网络接口分配一个公有 IP 地址。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以从 Amazon VPC 控制台配置子网。
将子网配置为不分配公有 IP 地址
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Subnets(子网)。
-
选择您的子网,然后选择Subnets,修改自动分配 IP 设置.
-
清除启用自动分配公有 IPv4 地址复选框然后选择Save(保存).
[EC2.16] 应删除未使用的网络访问控制列表
类别:预防 > 网络安全
严重性:低
资源类型:计划 AWS::EC2::NetworkAcl
Amazon Config 规则:vpc-network-acl-unused-check
计划类型:计划 触发器发器
参数:None(无)
此控件检查是否有未使用的网络访问控制列表 (ACL)。
该控件检查资源的项目配置AWS::EC2::NetworkAcl并确定网络 ACL 的关系。
如果唯一的关系是网络 ACL 的 VPC,则控制失败。
如果列出了其他关系,则控制权通过。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
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
计划类型:计划 触发器发器
参数:
-
Adapterids(可选)— 附加到 EC2 实例的网络接口 ID 列表
此控制检查 EC2 实例是否使用多个弹性网络接口 (ENI) 或弹性结构适配器 (EFA)。如果使用单个网络适配器,则此控制通过。该控件包括一个可选参数列表,用于标识允许的 ENI。
多个 ENI 可能导致双宿主实例,即具有多个子网的实例。这会增加网络安全的复杂性,并引入意想不到的网络路径和访问。
如果属于 Amazon EKS 集群的 Amazon EKS 集群具有多个 ENI,则此控制也会失败。如果您需要使用具有多个 ENI 的 EC2 实例作为 Amazon EKS 集群的一部分,则可以隐藏这些发现。
以下区域不支持此控件:
-
亚太地区(大阪)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此问题,请分离其他 ENI。
分离网络接口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在网络与安全下,选择网络接口。
-
按不合规实例 ID 筛选列表以查看关联的 ENI。
-
选择要删除的 ENI。
-
来自的操作菜单,选择分离.
-
如果你看到提示您确定要断开以下网络接口吗?,选择分离.
[EC2.18] 安全组应只允许授权端口不受限制的传入流量
类别:保护 > 安全网络配置 > 安全组配置
严重性:高
资源类型:计划 AWS::EC2::SecurityGroup
Amazon Config 规则:vpc-sg-open-only-to-authorized-ports
计划类型:计划 触发器发器
参数:
-
authorizedTcpPorts(可选)— 以逗号分隔的允许无限制访问的端口列表。例如:'80, 443'. 对于此规则,默认值为authorizedTcpPorts分别是 80 和 443。
此控件检查正在使用的安全组是否允许不受限制的传入流量。(可选)该规则检查端口号是否列在authorizedTcpPorts参数。
-
如果安全组规则端口号允许不受限制的传入流量,但端口号在中指定
authorizedTcpPorts,然后控制通过。authorizedTcpPorts的默认值为80, 443。 -
如果安全组规则端口号允许不受限制的传入流量,但未在中指定端口号
authorizedTcpPorts输入参数,则控制失败。 -
如果未使用该参数,则任何具有不受限制入站规则的安全组的控制都会失败。
安全组提供对入口和出口网络流量的状态过滤Amazon. 安全组规则应遵循最低权限访问原则。不受限制的访问(带有 /0 后缀的 IP 地址)增加了恶意活动的机会,例如黑客攻击、 denial-of-service 攻击和数据丢失。
除非特别允许某个端口,否则该端口应拒绝不受限制的访问。
亚太地区(大阪)不支持此控件。
修复
有关如何修改安全组的信息,请参阅添加、删除或更新规则在里面Amazon VPC User Guide.
[EC2.19] 安全组不应允许不受限制地访问高风险端口
类别:保护 > 限制网络访问
严重性:重大
资源类型:计划 AWS::EC2::SecurityGroup
Amazon Config 规则:vpc-sg-restricted-common-ports(由Security Hub 开发的自定义规则)
计划类型:计划 触发器发器
参数:None(无)
此控制检查风险最高的指定端口是否可以访问安全组不受限制的传入流量。当安全组中的所有规则均不允许来自 0.0.0.0.0.0.0.0.0/0 的入站流量时,此控制即通过。
不受限制访问 (0.0.0.0.0.0.0/0) 增加了恶意活动的机会,例如黑客攻击、 denial-of-service 攻击和数据丢失。
安全组为 Amazon 资源提供传入和传出网络流量的有状态筛选。任何安全组都不应允许对以下端口进行不受限制的入口访问:
-
20、21 (FTP)
-
22 (SSH)
-
23 (Telnet)
-
25 (SMTP)
-
110 (POP3)
-
135 (RPC)
-
143 (IMAP)
-
445(CIFS)
-
1433、1434 (MSSQL)
-
3000(Go、Node.js 和 Ruby Web 开发框架)
-
3306 (MySQL)
-
3389 (RDP)
-
4333 (ahsp)
-
5000(Python 网页开发框架)
-
5432 (postgresql)
-
5500 (fcp-addr-srvr1)
-
5601 (OpenSearch 控制面板)
-
8080(代理)
-
8088(传统 HTTP 端口)
-
8888(备用 HTTP 端口)
-
9200 或 9300 (OpenSearch)
修复
有关如何从安全组中删除规则的信息,请参阅从安全组中删除规则在里面适用于Linux 实例的Amazon EC2 用户指南.
[EC2.20] 两个 VPN 隧道都用于AmazonSite-to-Site VPN 连接应该已启动
类别:弹性 > 恢复 > 高可用性
严重性:中
资源类型:计划AWS::EC2::VPNConnection
Amazon Config 规则:vpc-vpn-2-tunnels-up
计划类型:计划 触发器发器
参数:None(无)
VPN 隧道是一种加密链接,用于在客户网络和之间传输数据Amazon在一个AmazonSite-to-Site VPN 连接。每个 VPN 连接均包括两条 VPN 隧道,可以同时使用这两条隧道来实现高可用性。确保两个 VPN 隧道都可用于 VPN 连接对于确认两个 VPN 隧道之间的安全且高度可用的连接非常重要AmazonVPC 和您的远程网络。
此控件检查提供的两个 VPN 隧道是否由AmazonSite-to-Site VPN 处于 UP 状态。如果一条或两条隧道处于 DOWN 状态,则控制失败。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
中东(巴林)
修复
要修改 VPN 隧道选项,请参见修改站点到站点 VPN 隧道选项在里面AmazonSite-to-Site VPN 用户指南。
[EC2.21] 网络 ACL 不应允许从 0.0.0.0/0 进入端口 22 或端口 3389
类别:保护 > 安全网络配置
严重性:中
资源类型:AWS::EC2::NetworkAcl
Amazon Config 规则:nacl-no-unrestricted-ssh-rdp
Schedule 类型:触发器发器
参数:None(无)
此控制检查网络访问控制列表 (NACL) 是否允许无限制地访问 SSH/RDP 入口流量的默认端口。如果 NACL 入站条目允许端口 22 或 3389 的源 CIDR 块为 '0.0.0.0/0' 或 ':: /0',则规则失败。
对远程服务器管理端口(例如端口 22 (SSH) 和端口 3389 (RDP))的访问不应公开访问,因为这可能允许意外访问您的 VPC 中的资源。
修复
有关 NACL 的更多信息,请参阅网络 ACL在《VPC 用户指南》中。
[EC2.22] 应移除未使用的 EC2 安全组
类别:识别 > 列表
严重性:中
资源类型:计划AWS::EC2::SecurityGroup,AWS::EC2::NetworkInterface
Amazon Config 规则:ec2-security-group-attached-to-eni-periodic
Schedule 类型:定期
参数:None(无)
这个Amazon控制检查安全组是否连接到Amazon Elastic Compute Cloud (Amazon EC2) 实例或elastic network interface。如果安全组与 Amazon EC2 实例或elastic network interface 不关联,则控制将失败。
修复
要创建、分配和删除安全组,请参阅安全组在Amazon EC2 用户指南中。
[EC2.23] EC2 传输网关不应自动接受 VPC 连接请求
类别:保护 > 安全网络配置
严重性:高
资源类型:AWS::EC2::TransitGateway
Amazon Config 规则:ec2-transit-gateway-auto-vpc-attach-disabled
Schedule 类型:触发器发器
参数:None(无)
此控件检查 EC2 传输网关是否自动接受共享的 VPC 附件。对于自动接受共享 VPC 连接请求的 Transit Gateway,此控制会失败。
启用AutoAcceptSharedAttachments将 Transit Gateway 配置为自动接受任何跨账户 VPC 连接请求,无需验证请求或附件源账户。为了遵循授权和身份验证的最佳实践,我们建议关闭此功能,以确保仅接受授权的 VPC 连接请求。
以下区域不支持此控件:
-
亚太地区(香港)
-
Asia Pacific (Mumbai)
-
Asia Pacific (Osaka)
-
China (Beijing)
-
China (Ningxia)
-
中东(巴林)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何修改Transit Gateway 的信息,请参阅修改中转网关Amazon VPC 开发人员指南中。
[EC2.24] 不应使用半虚拟化 EC2 实例类型
类别:识别 > 漏洞、补丁和版本管理
严重性:中
资源类型:AWS::EC2::Instance
Amazon Config 规则:ec2-paravirtual-instance-check
Schedule 类型:触发器发器
参数:None(无)
此控件检查 EC2 实例的虚拟化类型是否为半虚拟化。如果出现以下情况,则控制失败virtualizationType的 EC2 实例设置为paravirtual.
Linux Amazon 系统映像 (AMI) 使用两种虚拟化类型之一:半虚拟化 (PV) 或硬件虚拟机 (HVM)。半虚拟化和 HVM AMI 之间的主要区别在于它们的启动方式,以及它们能否使用特定硬件扩展 (CPU、网络和存储) 实现更好的性能。
以往,半虚拟化来宾在许多情况下的性能优于 HVM 来宾,但是由于硬件虚拟机虚拟化的功能增强以及 HVM AMI 可使用半虚拟化驱动程序,情况发生了改变。有关更多信息,请参阅 。Linux AMI 虚拟化类型在 Amazon EC2 用户指南(适用于 Linux 实例)中。
以下区域不支持此控件:
-
美国东部(俄亥俄州)
-
Africa (Cape Town)
-
Asia Pacific (Hong Kong)
-
亚太地区(雅加达)
-
亚太地区(孟买)
-
Asia Pacific (Osaka)
-
亚太地区(首尔)
-
加拿大(中部)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(伦敦)
-
欧洲(米兰)
-
Europe (Paris)
-
Europe (Stockholm)
-
中东(巴林)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何将 EC2 实例更新为新实例类型的信息,请参阅更改实例类型在里面适用于Linux 实例的Amazon EC2 用户指南.
[EC2.27] 运行 EC2 实例不应使用密钥对(已停用)
该控件停用。
[ECR.1] ECR 私有存储库应配置图像扫描
类别:识别 > 漏洞、补丁和版本管理
严重性:高
资源类型: AWS::ECR::Repository
Amazon Config 规则:ecr-private-image-scanning-enabled
Schedule 类型:触发器发器
参数:None(无)
此控件检查私有 ECR 存储库是否配置了图像扫描。如果私有 ECR 存储库未配置图像扫描,则此控制将失败。请注意,您还必须配置推送时扫描让每个存储库传递此控件。
ECR 映像扫描有助于识别容器映像中的软件漏洞。ECR 使用来自 CVE 的常见漏洞和披露 (CVE) 数据库开源 Clair 项目
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要为 ECR 存储库配置图像扫描,请参见镜像扫描在里面Amazon Elastic Conta.
[ECR.2] ECR 私有存储库应配置标签不可变性
类别:识别 > 清单 > 标记
严重性:中
资源类型: AWS::ECR::Repository
Amazon Config 规则:ecr-private-tag-immutability-enabled
Schedule 类型:触发器发器
参数:None(无)
此控件检查私有 ECR 存储库是否启用了标签不可变性。如果私有 ECR 存储库禁用了标签不可变性,则此控制将失败。如果启用了标签不可变性且其值为IMMUTABLE.
Amazon ECR 标签不可变性使客户能够依赖图像的描述性标签作为跟踪和唯一识别图像的可靠机制。不可变标签是静态的,这意味着每个标签都指一个唯一的图像。这提高了可靠性和可扩展性,因为使用静态标签将始终导致部署相同的映像。配置后,标签不变性可防止标签被覆盖,从而减少攻击面。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要创建配置了不可变标签的存储库或更新现有存储库的镜像标签可变性设置,请参见镜像标签可变性在里面Amazon Elastic Conta.
[ECR.3] ECR 存储库应至少配置一个生命周期策略
类别:识别 > 资源配置
严重性:中
资源类型: AWS::ECR::Repository
Amazon Config 规则:ecr-private-lifecycle-policy-configured
Schedule 类型:触发器发器
参数:None(无)
此控件检查 Amazon ECR 存储库是否配置了至少一个生命周期策略。如果 ECR 存储库未配置任何生命周期策略,则此控制将失败。
Amazon ECR 生命周期策略使您能够指定存储库中镜像的生命周期管理。通过配置生命周期策略,您可以根据使用期限或计数自动清理未使用镜像和镜像的过期时间。自动执行这些任务可以帮助您避免无意中使用仓库中的过时图像。
以下区域不支持此控件:
-
亚太地区(大阪)
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要配置生命周期策略,请参阅创建生命周期策略预览在里面Amazon Elastic Conta.
[ECS.1] Amazon ECS 任务定义应具有安全联网模式和用户定义
类别:保护 > 安全访问管理
严重性:高
资源类型: AWS::ECS::TaskDefinition
Amazon Config 规则:ecs-task-definition-user-for-host-mode-check
Schedule 类型:触发器发器
参数:
-
SkipInactiveTaskDefinitions:true
此控件检查具有主机联网模式的活动的 Amazon ECS 任务定义是否也具有privileged要么user容器定义。对于具有主机网络模式和容器定义的任务定义,控制失败privileged=false或者是空的user=root或者为空。或者为空。此控件仅评估 Amazon ECS 任务定义的最新活动版本。
如果任务定义具有提升的权限,那是因为客户已特别选择加入该配置。当任务定义启用了主机联网但客户没有选择提升权限时,此控制会检查是否存在意外的权限升级。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何更新任务定义的信息,请参见更新任务定义在里面AmazElastic Elastic.
请注意,更新任务定义时,它不会更新从先前任务定义启动的正在运行的任务。要更新正在运行的任务,必须使用新的任务定义重新部署该任务。
[ECS.2] Amazon ECS 服务不应自动分配公有 IP 地址
类别:保护 > 安全网络配置 > 资源不可公开访问
严重性:高
资源类型: AWS::ECS::Service
Amazon Config 规则:ecs-service-assign-public-ip-disabled(由Security Hub 开发的自定义规则)
Schedule 类型:触发器发器
参数:
-
exemptEcsServiceArns(可选). Security Hub 不填充此参数。不受此规则约束的 Amazon ECS 服务的 ARN 列表,以逗号分隔。这条规则是
COMPLIANTAmazon ECS 服务是否有AssignPublicIP设置ENABLED并在此参数列表中指定。这条规则是
NON_COMPLIANTAmazon ECS 服务是否有AssignPublicIP设置ENABLED且未在此参数列表中指定。
此控件会检查 Amazon ECS 服务是否配置为自动分配公有 IP 地址。如果出现以下情况,此控制将失败AssignPublicIP是ENABLED. 如果,此控件通过AssignPublicIP是DISABLED.
公有 IP 地址是指可通过 Internet 访问的 IP 地址。如果您使用公有 IP 地址启动 Amazon ECS 实例,则可以从互联网访问您的 Amazon ECS 实例。Amazon ECS 服务不应公开访问,因为这可能允许意外访问您的容器应用程序服务器。
亚太地区(大阪)区域不支持此控件。
修复
要禁用自动公有 IP 分配,请参阅为您的服务配置 VPC 和安全组设置在里面AmazElastic Elastic.
[ECS.3] ECS 任务定义不应共享主机的进程命名空间
类别:识别 > 资源配置
严重性:高
资源类型: AWS::ECS::TaskDefinition
Amazon Config规则:ecs-task-definition-pid-mode-chele
Schedule 类型:触发器发器
参数:None(无)
此控件检查 Amazon ECS 任务定义是否配置为与其容器共享主机的进程命名空间。如果任务定义与在其上运行的容器共享主机的进程命名空间,则控制失败。此控件仅评估 Amazon ECS 任务定义的最新活动版本。
进程 ID (PID) 命名空间用于在进程之间进行分离。它可以防止系统进程可见,并允许重复使用 PID,包括 PID 1。如果主机的 PID 命名空间与容器共享,它将允许容器查看主机系统上的所有进程。这减少了主机和容器之间进程级隔离的好处。这些情况可能导致对主机本身进程的未经授权的访问,包括操纵和终止这些进程。客户不应与在其上运行的容器共享主机的进程命名空间。
修复
配置pidMode在任务定义下,请参阅任务定义参数Amazon Elastic Container Servic
[ECS.4] ECS 容器应以非特权方式运行
类别:保护 > 安全访问管理 > 根用户访问限制
严重性:高
资源类型: AWS::ECS::TaskDefinition
Amazon Config 规则:ecs-containers-nonprivileged
Schedule 类型:触发器发器
参数:None(无)
此控件检查是否privilegedAmazon ECS 任务定义的容器定义中的参数设置为true. 如果此参数等于,则控制失败true. 此控件仅评估 Amazon ECS 任务定义的最新活动版本。
我们建议您从 ECS 任务定义中删除提升的权限。当权限参数为true,则将对此容器提供对主机容器实例的提升的特权(类似于根用户)。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
配置privileged任务定义上的参数,请参阅高级容器定义参数Amazon Elastic Container Servic
[ECS.5] ECS 容器应限于对根文件系统的只读访问权限
类别:保护 > 安全访问管理
严重性: 高
资源类型: AWS::ECS::TaskDefinition
Amazon Config 规则:ecs-containers-readonly-access
Schedule 类型:触发器发器
参数:None(无)
此控制检查 Amazon ECS 容器是否仅限于对已安装的根文件系统的只读访问权限。如果出现以下情况,则此控件将失败ReadonlyRootFilesystemAmazon ECS 任务定义的容器定义中的参数设置为false. 此控件仅评估 Amazon ECS 任务定义的最新活动版本。
启用此选项可减少安全攻击的向量,因为容器实例的文件系统不能被篡改或写入,除非它对其文件系统文件夹和目录具有明确的读写权限。此控制还遵循最小权限原则。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
将容器定义限制为对根文件系统的只读访问权限
打开 https://console.aws.amazon.com/ecs/
上的 Amazon ECS 控制台。 -
在左侧导航窗格中,选择任务定义.
-
对于包含需要更新的容器定义的每个任务定义,请执行以下操作:
-
选择需要更新的容器定义。
-
选择编辑容器. 对于存储和日志记录SELECT只读根文件系统.
-
选择Update在底部编辑容器选项卡。
-
选择 Create(创建)。
-
[ECS.8] 密钥不应作为容器环境变量传递
类别: 保护 > 安全开发 > 凭证不是硬编码的
严重性: 高
资源类型: AWS::ECS::TaskDefinition
Amazon Config 规则:ecs-no-environment-secrets
Schedule 类型:触发器发器
参数:
SectKey =
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,ECS_ENGINE_AUTH_DATA
此控件检查是否有任何变量的键值environment容器定义的参数包括AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,或ECS_ENGINE_AUTH_DATA. 如果任何容器定义中的单个环境变量等于,则此控制将失败AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,或ECS_ENGINE_AUTH_DATA. 此控件不涵盖从 Amazon S3 等其他位置传入的环境变量。此控件仅评估 Amazon ECS 任务定义的最新活动版本。
Amazon Systems ManagerParameter Store 可以帮助您改善组织的安全状况。我们建议使用 Parameter Store 来存储密钥和证书,而不是直接将它们传递到您的容器实例或将它们硬编码到您的代码中。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要使用 SSM 创建参数,请参见创建 Systems Manager 参数在里面Amazon Systems Manager用户指南. 有关创建指定密钥的任务定义的更多信息,请参阅使用 Secrets Manager 密钥指定敏感数据在里面AmazElastic Elastic.
[ECS.10] Fargate 服务应该在最新的 Fargate 平台版本上运行
类别: 识别 > 漏洞、补丁和版本管理
严重性: 中
资源类型: AWS::ECS::Service
Amazon Config 规则:ecs-fargate-latest-platform-version
Schedule 类型:触发器发器
参数:None(无)
此控件检查亚马逊 ECS Fargate 服务是否正在运行最新的 Fargate 平台版本。如果平台版本不是最新版本,则此控制将失败。
Amazon Fargate平台版本指的是 Fargate 任务基础设施的特定运行时环境,是内核和容器运行时版本的组合。随着运行环境的发展,新的平台版本也随之发布。例如,可能会发布新版本以进行内核或操作系统更新、新功能、错误修复或安全更新。Fargate 任务的安全更新和修补程序将自动部署。如果安全问题影响平台版本,Amazon 为平台版本提供补丁。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更新现有服务,包括其平台版本,请参阅更新服务在里面AmazElastic Elastic.
[ECS.12] ECS 集群应启用容器洞察
类别: 识别 > 记录
严重性: 中
资源类型: AWS::ECS::Cluster
Amazon Config 规则:ecs-container-insights-enabled
Schedule 类型:触发器发器
参数:None(无)
此控制检查 ECS 集群是否使用容器洞察。如果没有为集群设置容器见解,则此控制将失败。
监控是保持 Amazon ECS 集群的可靠性、可用性和性能的重要方面。使用 CloudWatch Container Insights 用于从容器化应用程序和微服务中收集、聚合和汇总指标与日志。 CloudWatch 自动收集许多资源(例如 CPU、内存、磁盘和网络)的指标。Container Insights 还提供诊断信息(如容器重新启动失败),以帮助您查明问题并快速解决问题。您还可以设置 CloudWatch 有关容器见解收集的指标的告警。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要使用容器见解,请参阅更新服务在里面亚马逊 CloudWatch 用户指南.
[EFS.1] 应将 Amazon EFS 配置为使用以下方法加密静态文件数据Amazon KMS
类别: 保护 > 数据保护 > 静态数据加密
严重性: 中
资源类型: AWS::EFS::FileSystem
Amazon Config 规则:efs-encrypted-check
Schedule 类型:定期
参数:None(无)
此控件检查是否将 Amazon Elastic File System 配置为使用加密文件数据Amazon KMS. 在以下情况下,检查失败。
-
Encrypted将设置为false在里面DescribeFileSystems响应。 -
这些区域有:
KmsKeyId键入DescribeFileSystems响应与不匹配KmsKeyId参数:参数。efs-encrypted-check.
请注意,此控件不使用KmsKeyId参数:参数。efs-encrypted-check. 它只检查 Encrypted 的值。
要为 Amazon EFS 中的敏感数据增加安全层,您应该创建加密文件系统。Amazon EFS 支持对静态文件系统进行加密。创建 Amazon EFS 文件系统时,可以启用静态数据的加密。要了解有关 Amazon EFS 加密的更多信息,请参阅Amazon EFS 中的数据加密在里面Amazon Elastication File.
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
有关如何加密新 Amazon EFS 文件系统的详细信息,请参阅加密静态数据在里面Amazon Elastication File.
[EFS.2] 亚马逊 EFS 卷应包含在备份计划中
类别: 恢复 > 弹性 > Backup
严重性: 中
资源类型: AWS::EFS::FileSystem
Amazon Config 规则:efs-in-backup-plan
Schedule 类型:定期
参数:None(无)
此控件会检查是否将 Amazon Elastic File System (Amazon EFS) 文件系统添加到的备份计划中Amazon Backup. 如果 Amazon EFS 文件系统未包含在备份计划中,则控制将失败。
在备份计划中包括 EFS 文件系统可帮助您保护数据免遭删除和数据丢失。
以下区域不支持此控件:
-
非洲(开普敦)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此问题,请更新您的文件系统以启用自动备份。
如欲为现有文件系统启用自动备份
访问 https://console.aws.amazon.com/efs/
,打开 Amazon Elastic File System 控制台。 -
在文件系统页面上,选择要启用自动备份的文件系统。
这些区域有:文件系统详细信息将显示页面。
-
下面普通的,选择编辑.
-
要启用自动备份,请选择启用自动备份.
-
选择 Save changes(保存更改)。
要了解更多信息,请访问使用Amazon Backup使用Azon EFS在里面Amazon Elastication File.
[EFS.3] EFS 接入点应强制使用根目录
类别: 保护 > 安全访问管理
严重性: 中
资源类型: AWS::EFS::AccessPoint
Amazon Config 规则:efs-access-point-enforce-root-directory
Schedule 类型:触发器发器
参数:None(无)
此控制检查 Amazon EFS 接入点是否配置为强制使用根目录。如果值为,则控制失败Path将设置为/(文件系统的默认根目录)。
在强制执行根目录时,使用访问点的 NFS 客户端使用在访问点上配置的根目录,而不是文件系统的根目录。强制为接入点设置根目录有助于通过确保接入点的用户只能访问指定子目录的文件来限制数据访问。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何为 Amazon EFS 接入点强制设置根目录的说明,请参阅使用接入点强制使用根目录在里面Amazon Elastication File.
[EFS.4] EFS 接入点应强制使用用户身份
类别: 保护 > 安全访问管理
严重性: 中
资源类型: AWS::EFS::AccessPoint
Amazon Config 规则:efs-access-point-enforce-user-identity
Schedule 类型:触发器发器
参数:None(无)
此控制检查 Amazon EFS 接入点是否配置为强制使用用户身份。如果在创建 EFS 接入点时未定义 POSIX 用户身份,则此控制将失败。
Amazon EFS 访问点是 EFS 文件系统中特定于应用程序的入口点,便于轻松地管理应用程序对共享数据集的访问。访问点可以为通过访问点发出的所有文件系统请求强制执行用户身份(包括用户的 POSIX 组)。访问点还可以为文件系统强制执行不同的根目录,以便客户端只能访问指定目录或其子目录中的数据。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要强制使用 Amazon EFS 接入点的用户身份,请参阅使用接入点强制用户身份在里面Amazon Elastication File.
[EKS.2] EKS 集群应该在支持的 Kubernetes 版本上运行
类别: 识别 > 漏洞、补丁和版本管理
严重性: 高
资源类型: AWS::EKS::Cluster
Amazon Config 规则:eks-cluster-supported-version
Schedule 类型:触发器发器
参数:
-
eks:oldestVersionSupported(目前支持的最旧版本是 1.19)
此控件检查 Amazon EKS 集群是否在支持的 Kubernetes 版本上运行。如果 EKS 集群在不受支持的版本上运行,则控制会失败。
如果您的应用程序需要一个特定版本的 Kubernetes,我们建议您为您的集群使用 EKS 支持的最新可用 Kubernetes 版本。有关支持 Amazon EKS 的 Kubernetes 版本的更多信息,请参阅Amazon EKS Kubernetes 发布日历和Amazon EKS 版本支持和常见问题/para > 在Amazon EKS 用户指南.
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更新 EKS 集群,更新 Amazon EKS 集群 Kubernetes 版本/para > 在Amazon EKS 用户指南.
[ElasticBeanstalk.1] Elastic Beanstalk 环境应启用增强型运行状况报告
类别: 检测 > 检测服务 > 应用程序监控
严重性: 低
资源类型: AWS::ElasticBeanstalk::Environment
Amazon Config 规则:beanstalk-enhanced-health-reporting-enabled
Schedule 类型:更改已触发更改
参数:None(无)
此控件检查是否为您的启用了增强型运行状况报告Amazon Elastic Beanstalk环境。
Elastic Beanstalk 增强型运行状况报告可以更快地响应底层基础设施运行状况的变化。这些更改可能导致应用程序的可用性不足。
Elastic Beanstalk 增强型运行状况报告提供了状态描述符,用于评估已识别问题的严重性并确定可能的调查原因。支持的亚马逊系统映像 (AMI) 中包含的 Elastic Beanstalk 运行状况代理用于评估环境 EC2 实例的日志和指标。
有关其他信息,请参阅增强型运行状况报告和监控在里面Amazon Elastic Beanstalk开发人员指南.
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
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
Schedule 类型:更改已触发更改
参数:None(无)
此控件检查是否为 Elastic Beanstalk 环境启用了托管平台更新。
启用托管平台更新可确保安装适用于环境的最新可用平台补丁、更新和功能。及时安装补丁是保护系统的重要一步。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何启用托管平台更新的说明,请参阅在托管平台更新下配置托管平台更新在里面Amazon Elastic Beanstalk开发人员指南.
[ELB.2] 具有 HTTPS/SSL 侦听器的经典负载均衡器应使用提供的证书Amazon Certificate Manager
类别: 保护 > 加密传输中数据加密
严重性: 中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:elb-acm-certificate-required
Schedule 类型:更改已触发更改
参数:None(无)
此控件检查Classic Load Balancer 是否使用由提供的 HTTPS/SSL 证书Amazon Certificate Manager(ACM)。如果使用 HTTPS/SSL 侦听器配置的Classic Load Balancer 不使用 ACM 提供的证书,则控制将失败。
要创建证书,可以使用 ACM 或支持 SSL 和 TLS 协议的工具,例如 OpenSSL。Secury Hub 建议您使用 ACM 为负载均衡器创建或导入证书。
ACM 与 Classic 负载均衡器集成,以便您可以在负载均衡器上部署证书。您还应该自动续订这些证书。
以下区域不支持这些控件:
-
非洲(开普敦)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
修复
有关如何将 ACM SSL/TLS 证书与Classic Load Balancer 关联的信息,请参阅Amazon。如何将 ACM SSL/TLS 证书与经典负载均衡器、应用程序负载均衡器或Network Load Balancer 关联?
[ELB.3] Classic Load Balancer 监听器应配置为 HTTPS 或 TLS 终止
类别:保护 > 数据保护 > 加密传输中的数据
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:elb-tls-https-listeners-only
类型:触发器
参数:None(无)
此控件检查您的 Classic Load Balancer 监听器是否为前端(客户端到负载均衡器)连接配置了 HTTPS 或 TLS 协议。如果Classic Load Balancer 有监听器,则该控件适用。如果您的Classic Load Balancer 没有配置侦听器,则该控件不会报告任何发现。
如果为前端连接配置了 TLS 或 HTTPS 的Classic Load Balancer 监听器,则控制权通过。
如果监听器没有为前端连接配置 TLS 或 HTTPS,则控制将失败。
在开始使用负载均衡器之前,必须添加一个或多个侦听器。侦听器是使用配置的协议和端口检查连接请求的进程。监听器可以支持 HTTP 和 HTTPS/TLS 协议。您应始终使用 HTTPS 或 TLS 侦听器,以便负载均衡器在传输过程中完成加密和解密工作。
修复
要修复此问题,请更新您的监听器以使用 TLS 或 HTTPS 协议。
将所有不合规的监听器更改为 TLS/HTTPS 监听器
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Load Balancers (负载均衡器)。然后选择您的Classic Load Balancer。
-
选择侦听器选项卡,然后选择编辑.
-
对于所有听众来说Load Balancer 协议未设置为 HTTPS 或 SSL,请将设置更改为 HTTPS 或 SSL。
-
对于所有修改过的监听器,在SSL 证书,选择更改.
-
对于所有修改过的监听器,选择从 ACM 中选择证书.
-
从中选择证书Certificates下拉列表。然后选择 Save(保存)。
-
更新所有监听器后,选择Save(保存).
[ELB.4] 应将应用程序负载均衡器配置为删除 HTTP 标头
类别:保护 > 网络安全
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:alb-http-drop-invalid-header-enabled
类型:触发器
参数:None(无)
此控件用于评估Amazon应用程序负载均衡器,确保将其配置为删除无效的 HTTP 标头。如果值为,则控制失败routing.http.drop_invalid_header_fields.enabled将设置为false.
默认情况下,应用程序负载均衡器未配置为删除无效的 HTTP 标头值。删除这些标头值可防止 HTTP 不同步攻击。
请注意,在以下情况下,您可以禁用此控件ELB.12已启用。
以下区域支持:
-
非洲(开普敦)
-
亚太地区(大阪)
-
欧洲(米兰)
修复
要修复此问题,请将您的负载均衡器配置为删除无效的标头字段。
将负载均衡器配置为删除无效标头字段
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Load Balancers (负载均衡器)。
-
选择Application Load Balancer。
-
From操作,选择编辑属性.
-
下面删除无效的标题字段,选择启用.
-
选择 Save(保存)。
[ELB.5] 应启用应用程序和传统负载均衡器日志记录
类别:日志记录
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:elb-logging-enabled
类型:触发器
参数:None(无)
此控件检查Application Load Balancer 传统负载均衡器是否启用了日志记录。如果出现以下情况,则控制失败access_logs.s3.enabled是false.
Elastic Load Balancing 提供了访问日志,该访问日志可捕获有关发送到负载均衡器的请求的详细信息。每个日志都包含信息 (例如,收到请求的时间、客户端的 IP 地址、延迟、请求路径和服务器响应)。您可以使用这些访问日志分析流量模式并解决问题。
要了解更多信息,请参阅您的Classic Load Balancer 访问日志在适用于传统负载均衡器的用户指南.
修复
要修复此问题,请更新您的负载均衡器以启用日志记录。
启用访问日志
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Load Balancers (负载均衡器)。
-
选择Application Load Balancer。
-
From操作,选择编辑属性.
-
下面访问日志,选择启用.
-
输入您的 S3 位置。这个位置可以存在,也可以为您创建。如果您未指定前缀,则访问日志存储在 S3 存储桶的根目录中。
-
选择 Save(保存)。
[ELB.6] 应启用Application Load Balancer 删除保护
类别:恢复 > 弹性 > 高可用性
严重性:中
资源类型: AWS::ElasticLoadBalancingV2::LoadBalancer
Amazon Config 规则:elb-deletion-protection-enabled
类型:触发器
参数:None(无)
此控件检查Application Load Balancer 是否已启用删除保护。如果未配置删除保护,则控制失败。
启用删除保护以保护您的Application Load Balancer 免遭删除。
修复
为了防止您的负载均衡器被意外删除,您可以启用删除保护。默认情况下,已为负载均衡器禁用删除保护。
如果您为负载均衡器启用删除保护,则必须先禁用删除保护,然后才能删除负载均衡器。
从控制台启用删除保护
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的 LOAD BALANCING(负载均衡)下,选择 Load Balancers(负载均衡器)。
-
选择负载均衡器。
-
在 Description (说明) 选项卡上,选择 Edit attributes (编辑属性)。
-
在编辑负载均衡器属性页面,SELECT启用删除保护,然后选择Save(保存).
-
选择 Save(保存)。
要了解更多信息,请参阅删除保护在适用于应用程序负载均衡器的用户指南.
[ELB.7] 经典负载均衡器应启用连接耗尽
类别:恢复 > 故障恢复能力
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:elb-connection-draining-enabled(由 Security Hub 开发的自定义规则)
类型:触发器
参数:None(无)
此控件检查传统负载均衡器是否已启用连接耗尽。
在 Classic Load Balancers 上启用连接耗尽可确保负载均衡器停止向正在取消注册或运行状况不佳的实例发送请求。它使现有连接保持打开状态。这对 Auto Scaling 组中的实例特别有用,可确保连接不会突然中断。
修复
要在 Classic 负载均衡器上启用连接耗尽功能,请按照中的步骤操作为Classic 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 特定版本的合规性和安全标准。有关更多信息,请参阅 。适用于传统负载均衡器的预定义 SSL 安全策略在适用于传统负载均衡器的用户指南.
以下区域支持:
-
非洲(开普敦)
-
亚太地区(大阪)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
修复
有关如何使用预定义安全策略的信息ELBSecurityPolicy-TLS-1-2-2017-01使用 Classic 负载均衡器,请参阅配置安全设置在适用于传统负载均衡器的用户指南.
[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 用户指南中。
非洲(开普敦)不支持此控件。
修复
要在 Clasic 负载均衡器中启用跨区域负载均衡,请参阅启用跨区域负载均衡在 Elastic Load Balancing 用户指南中。
[ELB.10] 经典负载均衡器应跨越多个可用区
类别:恢复 > 弹性 > 高可用性
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:clb-multiple-az
类型:触发器
参数:None(无)
此控件检查Classic Load Balancer 是否已配置为跨越多个可用区。如果Classic Load Balancer 不跨多个可用区,则控制失败。
可以将 Classic Load Balancer 设置为在单个可用区或多个可用区中的 Amazon EC2 实例间分发传入请求。如果唯一配置的可用区不可用,则不跨多个可用区的Classic Load Balancer 无法将流量重定向到另一个可用区中的目标。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何向Classic Load Balancer 添加可用区的信息,请参阅添加或删除可用区在适用于传统负载均衡器的用户指南.
[ELB.12] 应用程序负载均衡器应配置为防御或最严格的不同步缓解模式
类别:数据保护 > 数据完整性
严重性:中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:alb-desync-mode-check
类型:触发器
参数:
desyncMode: 防御,最严格
此控件检查Application Load Balancer 是否配置为防御或最严格的不同步缓解模式。如果Application Load Balancer 未配置为防御性或最严格的不同步缓解模式,则控制将失败。
HTTP 不同步问题可能导致请求走私,并使应用程序容易受到请求队列或缓存中毒的影响。反过来,这些漏洞可能导致凭证填充或执行未经授权的命令。配置了防御性或最严格的不同步缓解模式的应用程序负载均衡器可保护您的应用程序免受可能由 HTTP 不同步引起的安全问题的影响。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更新Application Load Balancer 异步缓解模式,请参阅异步缓解模式在适用于应用程序负载均衡器的用户指南.
[ELB.13] 应用程序、网络和网关负载均衡器应跨越多个可用区
类别:恢复 > 弹性 > 高可用性
严重性:中
资源类型: AWS::ElasticLoadBalancingV2::LoadBalancer
Amazon Config 规则:elbv2-multiple-az
类型:触发器
参数:None(无)
此控件检查Elastic Load Balancer V2(应用程序、网络或网关Load Balancer)是否已注册来自多个可用区的实例。如果Elastic Load Balancer V2 在少于两个可用区中注册了实例,则控制会失败。
弹性负载均衡 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。弹性负载均衡 根据传入流量随时间的变化对负载均衡器进行扩展。建议至少配置两个可用区以确保服务的可用性,因为如果一个可用区不可用,Elastic Load Balancer 将能够将流量定向到另一个可用区。配置多个可用区将有助于避免应用程序出现单点故障。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要向Application Load Balancer 添加可用区,请参阅Application Load Balancer 的可用区在适用于应用程序负载均衡器的用户指南. 要向Network Load Balancer 添加可用区,请参阅Network Load Balancer在适用于网络负载均衡器的用户指南. 要向网关Load Balancer 添加可用区,请参阅创建网关负载均衡器在网关负载均衡器用户指南.
[ELB.14] 经典负载均衡器应配置为防御或最严格的不同步缓解模式
类别:数据保护 > 数据完整性
严重性 中
资源类型: AWS::ElasticLoadBalancing::LoadBalancer
Amazon Config 规则:clb-desync-mode-check
类型:触发器
参数:
desyncMode: 防御,最严格
此控件检查Classic Load Balancer 是否配置为防御或最严格的不同步缓解模式。如果Application Load Balancer 未配置为防御性或最严格的不同步缓解模式,则此控制将失败。
HTTP 不同步问题可能导致请求走私,并使应用程序容易受到请求队列或缓存中毒的影响。反过来,这些漏洞可能导致凭据劫持或执行未经授权的命令。配置了防御性或最严格的不同步缓解模式的经典负载均衡器可保护您的应用程序免受可能由 HTTP 不同步引起的安全问题的影响。
以下区域支持:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更新Classic Load Balancer 异步缓解模式,请参阅修改异步缓解模式在适用于传统负载均衡器的用户指南.
[elbv2.1] 应将Application Load Balancer 配置为将所有 HTTP 请求重定向到 HTTPS
类别 保护 > 数据保护 > 加密传输中的数据
严重性 中
资源类型: AWS::ElasticLoadBalancingV2::LoadBalancer
Amazon Config 规则:alb-http-to-https-redirection-check
类型:定期
参数:None(无)
此控件检查应用程序负载均衡器的所有 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 请求。
在Application Load Balancer 上将 HTTP 请求重定向到 HTTPS
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Load Balancers (负载均衡器)。
-
选择Application Load Balancer。
-
选择 Listeners (侦听器) 选项卡。
-
选择一个 HTTP 侦听器(端口 80 TCP),然后选择 Edit (编辑)。
-
如果存在现有规则,则必须将其删除。否则,选择 Add action (添加操作),然后选择 Redirect to... (重定向到...)
-
选择 HTTPS,然后输入
443。 -
选择圆形符号中的复选标记,然后选择 Update (更新)。
[EMR.1] Amazon EMR 集群主节点不应有公有 IP 地址
类别 保护 > 安全网络配置
严重性 高
资源类型: AWS::EMR::Cluster
Amazon Config 规则:emr-master-no-public-ip
类型:定期
参数:None(无)
此控件检查 Amazon EMR 集群上的主节点是否具有公有 IP 地址。
如果主节点具有与其任何实例关联的公有 IP 地址,则控制失败。公有 IP 地址在PublicIp的字段NetworkInterfaces实例的配置。此控件仅检查位于以下位置的 Amazon 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
类型:定期
参数:None(无)
此控件检查 Elasticsearch 域是否启用了静态加密配置。如果未启用静态加密,检查将失败。
为了给您的敏感数据增加一层安全保护 OpenSearch,你应该配置你的 OpenSearch 静态加密。ElasticSearch 域提供静态数据加密。该功能使用 Amazon KMS 存储和管理您的加密密钥。为执行加密,它使用具有 256 位密钥 (AES-256) 的高级加密标准算法。
了解相关更多信息 OpenSearch 静态加密,请参阅Amazon 中的静态数据加密 OpenSearch 服务在亚马逊 OpenSearch 服务开发人员指南.
某些实例类型,例如t.small和t.medium,不支持静态数据加密。有关详细信息,请参阅。支持的实例类型在亚马逊 OpenSearch 服务开发人员指南.
修复
默认情况下,域不对数据进行静态加密,并且您无法配置现有的域以使用该功能。
要启用该功能,您必须创建另一个域并迁移数据。有关创建域的信息,请参阅亚马逊 OpenSearch 服务开发人员指南.
静态数据加密 OpenSearch 服务 5.1 或更高版本。有关加密静态数据的更多信息 OpenSearch 服务,请参阅亚马逊 OpenSearch 服务开发人员指南.
[ES.2] Elasticsearch 域应该在 VPC 中
类别 保护 > 安全网络配置 > VPC 中的资源
严重性 重大
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-in-vpc-only
类型:计划 定期
参数:None(无)
此控件检查 Elasticsearch 域是否在 VPC 中。它不会通过评估 VPC 子网路由配置来确定公有访问权限。您应该确保 Elasticsearch 域未连接到公有子网。请参阅基于资源的策略在亚马逊 OpenSearch 服务开发人员指南. 您还应该确保根据建议的最佳实践配置了 VPC。请参阅VPC 的安全最佳实践在Amazon VPC User Guide.
在 VPC 中部署的 Elasticsearch 域可以通过私有域与 VPC 资源通信Amazon网络,无需遍历公共互联网。此配置通过限制对传输中数据的访问来提高安全状况。VPC 提供多种网络控制来保护对 Elasticsearch 域的访问,包括网络 ACL 和安全组。Security Hub 建议您将公有 Elasticsearch 域迁移到 VPC 以利用这些控件。
修复
如果您创建一个具有公有终端节点的域,则以后无法将其放置在 VPC 中。您必须创建一个新的域,然后迁移数据。反之亦然。如果在 VPC 中创建一个域,则该域不能具有公有终端节点。您必须创建另一个域或禁用该控制。
请参阅启动您的Amazon ur OpenSearch VPC 中的服务域在亚马逊 OpenSearch 服务开发人员指南.
[ES.3] Elasticsearch 域应加密节点之间发送的数据
类别 保护 > 数据保护 > 加密传输中的数据
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-node-to-node-encryption-check
类型:计划 触发器
参数:None(无)
此控件检查 Elasticsearch 域名是否有 node-to-node 加密启用。
HTTPS (TLS) 可用于帮助防止潜在攻击者使用以下方式窃听或操纵网络流量 person-in-the-middle 或类似的攻击。只允许通过 HTTPS (TLS) 进行加密连接。启用 node-to-node Elasticsearch 域的加密可确保集群内部通信在传输过程中得到加密。
此配置可能会降低性能。在启用此选项之前,您应该注意并测试性能权衡。
以下区域支持:
-
非洲(开普敦)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
修复
有关启用的信息 node-to-node 对新域和现有域进行加密,请参阅启用 node-to-node加密在亚马逊 OpenSearch 服务开发人员指南.
[ES.4] Elasticsearch 域错误登录到 CloudWatch 应启用日志
类别 识别-记录
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-logs-to-cloudwatch
类型:计划 触发器
参数:
-
logtype = 'error'
此控件检查 Elasticsearch 域是否配置为向发送错误日志 CloudWatch 日志。
你应该启用 Elasticsearch 域的错误日志,然后将这些日志发送到 CloudWatch 用于保留和响应的日志。域错误日志可以帮助进行安全和访问审计,也可以帮助诊断可用性问题。
以下区域支持:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何启用日志发布的信息,请参见启用日志发布(控制台)在亚马逊 OpenSearch 服务开发人员指南.
[ES.5] Elasticsearch 域应启用审核日志
类别 识别 > 记录
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-audit-logging-enabled(由 Security Hub 开发的自定义规则)
类型:计划 触发器
参数:
-
cloudWatchLogsLogGroupArnList(可选). Security Hub 不填充此参数。逗号分隔列表 CloudWatch 应为审核日志配置的日志组。这条规则是
NON_COMPLIANT如果 CloudWatch 此参数列表中未指定 Elasticsearch 域的日志组。
此控件检查 Elasticsearch 域是否启用了审核日志。如果 Elasticsearch 域未启用审核日志,则此控制将失败。
审核日志是高度可定制的。它们允许您跟踪 Elasticsearch 集群上的用户活动,包括身份验证成功和失败,向 OpenSearch、索引更改和传入的搜索查询。
修复
有关启用审核日志的详细说明,请参阅启用审核日志在亚马逊 OpenSearch 服务开发人员指南.
[ES.6] Elasticsearch 域应至少有三个数据节点
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-data-node-fault-tolerance(由 Security Hub 开发的自定义规则)
类型:计划 触发器
参数:None(无)
此控件检查 Elasticsearch 域是否配置了至少三个数据节点,以及zoneAwarenessEnabled是true.
Elasticsearch 域需要至少三个数据节点才能实现高可用性和容错能力。部署具有至少三个数据节点的 Elasticsearch 域可确保节点出现故障时群集运行。
修复
修改 Elasticsearch 域中的数据节点数量
打开亚马逊 OpenSearch 服务控制台位于https://console.aws.amazon.com/es/
. -
下面我的域名,选择要编辑的域的名称。
-
选择 Edit domain (编辑域)。
-
下面数据节点,设置节点数转换为大于或等于的数字
3.对于三个可用区部署,设置为三的倍数以确保在可用区之间均匀分布。
-
选择 Submit(提交)。
[ES.7] Elasticsearch 域应配置至少三个专用主节点
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-primary-node-fault-tolerance(由 Security Hub 开发的自定义规则)
类型:计划 触发器
参数:None(无)
此控件检查 Elasticsearch 域是否配置了至少三个专用主节点。如果域不使用专用的主节点,则此控制将失败。如果 Elasticsearch 域有五个专用主节点,则此控制权通过。但是,可能没有必要使用三个以上的主节点来降低可用性风险,这会导致额外的成本。
Elasticsearch 域需要至少三个专用的主节点才能实现高可用性和容错能力。在数据节点蓝/绿部署期间,专用主节点资源可能会紧张,因为还有其他节点需要管理。部署具有至少三个专用主节点的 Elasticsearch 域可确保在节点出现故障时有足够的主节点资源容量和集群操作。
修复
修改中专用主节点的数量 OpenSearch 域
打开亚马逊 OpenSearch 服务控制台位于https://console.aws.amazon.com/es/
. -
下面我的域名,选择要编辑的域的名称。
-
选择 Edit domain (编辑域)。
-
下面专用主节点,设置实例类型到所需的实例类型。
-
设置主节点的数量等于三或以上。
-
选择 Submit(提交)。
[ES.8] 与 Elasticsearch 域的连接应使用 TLS 1.2 进行加密
类别 保护 > 数据保护 > 加密传输中的数据
严重性 中
资源类型:计划 AWS::Elasticsearch::Domain
Amazon Config 规则:elasticsearch-https-required(由 Security Hub 开发的自定义规则)
类型:计划 触发器
参数:None(无)
此控件检查使用 TLS 1.2 是否需要连接到 Elasticsearch 域。如果是 Elasticsearch 域名,则检查失败TLSSecurityPolicy不是政策 min-TLS-1-2-2019-07。
HTTPS (TLS) 可用于帮助防止潜在攻击者使用 person-in-the-middle或类似的窃听或操纵网络流量的攻击。只允许通过 HTTPS (TLS) 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试您的应用程序,以了解性能概况和 TLS 的影响。与以前版本的 TLS 相比,TLS 1.2 提供了多项安全增强功能。
修复
要启用 TLS 加密,请使用UpdateDomainConfig用于配置的 API 操作DomainEndpointOptions为了设置TLSSecurityPolicy. 有关更多信息,请参阅 。亚马逊 OpenSearch 服务开发人员指南.
[GuardDuty1] GuardDuty 应启用
类别 检测 > 检测服务
严重性 高
资源类型:计划 Amazon帐户
Amazon Config 规则:guardduty-enabled-centralized
类型:计划 定期
参数:None(无)
此控件检查亚马逊是否 GuardDuty 已在您的中启用 GuardDuty 账户和区域。
强烈建议您启用 GuardDuty 全部支持Amazon区域。这样做允许 GuardDuty 生成有关未经授权或异常活动的调查结果,即使是在您未积极使用的地区也是如此。这也允许 GuardDuty 用于监控 CloudTrail 全球活动Amazon诸如 IAM 之类的服务。
以下区域支持:
-
非洲(开普敦)
-
China (Beijing)
-
China (Ningxia)
-
Europe (Milan)
-
Middle East (Bahrain)
-
Amazon GovCloud (美国东部)
修复
要修复此问题,请启用 GuardDuty.
有关如何启用的详细信息 GuardDuty,包括如何使用Amazon Organizations要管理多个账户,请参阅开始使用 GuardDuty在亚马逊 GuardDuty 用户指南.
[IAM.1] IAM 策略不应允许完整的 “*” 管理权限
类别 保护 > 安全访问管理
严重性 高
资源类型:计划 AWS::IAM::Policy
Amazon Config 规则:iam-policy-no-statements-with-admin-access
类型:计划 触发器
参数:None(无)
此控件通过包含以下语句来检查默认版本的 IAM 策略(也称为客户托管策略)是否具有管理员访问权限"Effect": "Allow"和"Action": "*"结束了"Resource": "*". 如果您的 IAM 策略包含此类语句,则控制会失败。
该控制仅检查您创建的客户托管策略。它不进行内联检查,Amazon托管策略。
IAM 策略定义了一组授予用户、群组或角色的权限。按照标准安全建议,Amazon 建议您授予最低特权,这意味着仅授予执行任务所需的权限。当您提供完全管理权限而不是用户所需的最低权限集时,您会将资源暴给可能有害的操作。
首先确定用户需要执行的任务,然后拟定仅限用户执行这些任务的策略,而不是允许完全管理权限。最开始只授予最低权限,然后根据需要授予其他权限,则样会更加安全。请不要一开始就授予过于宽松的权限而后再尝试收紧权限。
您应该删除带有以下语句的 IAM 策略"Effect": "Allow"
和"Action": "*"结束了"Resource": "*".
修复
要修改您的 IAM 策略以使其不允许完整的 “*” 管理权限,请参阅编辑 IAM policy在里面IAM 用户指南.
[IAM.2] IAM 用户不应附加 IAM 政策
类别 保护 > 安全访问管理
严重性 低
资源类型:计划 AWS::IAM::User
Amazon Config 规则:iam-user-no-policies-check
类型:计划 触发器
参数:None(无)
此控制可检查您的所有 IAM 用户是否都没有附加策略。相反,IAM 用户必须继承 IAM 群组或角色的权限。
默认情况下,IAM 用户、组和角色无权访问Amazon资源。IAM 策略向用户、群组或角色授予权限。我们建议您将 IAM 策略直接应用于群组和角色,但不要应用于用户。随着用户数量的增长,在组或角色级别分配权限可降低访问管理的复杂性。降低访问管理的复杂性有助于减少委托人意外收到或保留过多权限的机会。
由亚马逊简单电子邮件服务创建的 IAM 用户是使用内联策略自动创建的。Security Hub 会自动免除这些用户的此控制。
修复
要解决这一问题,创建一个 IAM 组,并将该策略附加到组。然后,向组中添加用户. 策略将应用于组中的每一位用户。要删除直接附加到用户的策略,请参阅添加和删除 IAM 身份权限在里面IAM 用户指南.
[IAM.3] IAM 用户的访问密钥应每 90 天或更短时间轮换一次
类别 保护 > 安全访问管理
严重性 中
资源类型:计划 AWS::IAM::User
Amazon Config 规则:access-keys-rotated
类型:计划 定期
参数:
-
maxAccessKeyAge:90
该控制检查是否在 90 天内轮换了活动访问密钥。
我们强烈建议您不要在账户中生成和删除所有访问密钥。相反,推荐的最佳做法是创建一个或多个 IAM 角色或者使用联合身份
每种方法都有其使用案例。对于拥有现有中央目录或计划需要超过 IAM 用户当前限制的企业,Federation 通常更好。在外部运行的应用程序Amazon环境需要访问密钥才能以编程方式访问Amazon资源。
但是,如果需要提供编程访问的资源在 Amazon 内部运行,则最佳做法是使用 IAM 角色。通过角色,您可以授予资源访问权限,而无需在配置中硬编码访问密钥 ID 和私有访问密钥。
要了解有关保护您的访问密钥和账户的更多信息,请参阅管理最佳实践Amazon访问密钥在里面Amazon一般参考. 另请参阅博客文章在使用编程访问时保护 Amazon 账户的指南
如果您已经有访问密钥,Security Hub 建议您每 90 天轮换一次访问密钥。轮换访问密钥可减少他人使用遭盗用账户或已终止账户关联的访问密钥的风险。这还可以确保无法使用可能已丢失、遭破解或被盗用的旧密钥访问数据。轮换访问密钥后,始终更新您的应用程序。
访问密钥包含一个访问密钥 ID 和一个私有访问密钥。它们用于签署您向其提出的编程请求Amazon.Amazon用户需要自己的访问密钥才能进行编程调用Amazon来自 的Amazon CLI,Tools for Windows PowerShell,Amazon开发工具包,或使用个人的 API 操作进行直接 HTTP 调用Amazon服务。
如果您的组织使用Amazon IAM Identity Center (successor to Amazon Single Sign-On)(IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM IAM连接到 IAM 身份中心的另一个身份提供商 (IdP). 然后可以将它们映射到允许他们运行的 IAM 角色Amazon CLI命令或打电话Amazon无需 IAM 用户访问密钥的 API 操作。要了解更多信息,请参阅配置Amazon CLI适用于的使用Amazon IAM Identity Center (successor to Amazon Single Sign-On)在里面Amazon Command Line Interface用户指南.
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
要修复此问题,请替换所有超过 90 天的密钥。
确保访问密钥的使用时长不超过 90 天
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
选择 Users(用户)。
-
对于显示 Access key age (访问密钥使用期限) 超出 90 天的每个用户,选择用户名来打开该用户的设置。
-
选择 Security credentials (安全凭证)。
-
为用户创建新的密钥:
-
选择创建访问密钥。
-
要保存密钥内容,请下载秘密访问密钥,或者选择 Show (显示),然后从页面中复制该密钥。
-
将密钥存储在安全位置以提供给用户。
-
选择 Close(关闭)。
-
-
更新使用上一个密钥的所有应用程序以使用新密钥。
-
对于上一个密钥,请选择 Make inactive (转为非活跃) 来使访问密钥转为非活动状态。用户现在无法使用该密钥发出请求。
-
确认使用新密钥的所有应用程序都能按预期工作。
-
确认所有应用程序都使用新密钥后,删除以前的密钥。访问密钥一经删除,就无法恢复。
要删除上一个密钥,请在行末尾选择 X,然后选择 Delete (删除)。
[IAM.4] IAM 根用户访问密钥不应存在
类别 保护 > 安全访问管理
严重性 重大
资源类型:计划 Amazon帐户
Amazon Config 规则:iam-root-access-key-check
类型:计划 定期
参数:None(无)
此控件检查根用户访问密钥是否存在。
root 用户是最具特权的用户Amazon账户。Amazon访问密钥提供对给定账户的编程访问。
Security Hub 建议您删除与根用户关联的所有访问密钥。这限制了可用于危害您账户的向量。它还鼓励创建和使用最小权限的基于角色的账户。
非洲(开普敦)不支持此控件。
修复
要删除根用户访问密钥,请参阅删除根用户的访问密钥在里面IAM 用户指南.
[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA
类别 保护 > 安全访问管理
严重性 中
资源类型:计划 AWS::IAM::User
Amazon Config 规则:mfa-enabled-for-iam-console-access
类型:计划 定期
参数:None(无)
此控件检查是否Amazon为所有使用控制台密码的 IAM 用户启用多重身份验证 (MFA)。
多重身份验证 (MFA) 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 Amazon 网站时,系统会提示输入用户名和密码。此外,系统还会提示用户从他们 Amazon MFA 设备输入身份验证代码。
我们建议为拥有控制台密码的所有账户启用 MFA。MFA 旨在为控制台访问提供更高的安全性。身份验证委托人必须拥有发放具有时效性的密钥的设备,并且必须知道凭证。
修复
要为 IAM 用户添加 MFA,请参阅在中使用多重身份验证 (MFA)Amazon在里面IAM 用户指南.
我们向符合条件的客户提供免费的 MFA 安全密钥。看看你的质量是否好,然后订购免费密钥
[IAM.6] 应该为根用户启用硬件 MFA
类别 保护 > 安全访问管理
严重性 重大
资源类型:计划 Amazon帐户
Amazon Config 规则:root-account-hardware-mfa-enabled
类型:计划 定期
参数:None(无)
这个控件会检查你是否Amazon账户可使用硬件多重验证 (MFA) 设备使用根用户凭证登录。
虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息,请参阅启用虚拟 Multi-Factor Authentication (MFA) 设备(控制台)在里面IAM 用户指南.
基于时间的一次性密码 (TOTP) 和通用第二要素(U2F)令牌均可作为硬件 MFA 选项可行。
以下区域支持:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)。
修复
要为 root 用户添加硬件 MFA 设备,请参阅为启用硬件 MFA 设备Amazon账户根用户(控制台)在里面IAM 用户指南.
我们向符合条件的客户提供免费的 MFA 安全密钥。看看你的质量是否好,然后订购免费密钥
[IAM.7] IAM 用户的密码策略应具有强配置
类别 保护 > 安全访问管理
严重性 中
资源类型:计划 Amazon帐户
Amazon Config 规则:iam-password-policy
类型:计划 定期
参数:
-
RequireUppercaseCharacters:true -
RequireLowercaseCharacters:true -
RequireSymbols:true -
RequireNumbers:true -
MinimumPasswordLength:8
此控件检查 IAM 用户的账户密码策略是否使用推荐的配置。
要访问Amazon Web Services Management Console,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合,而不是创建 IAM 用户。Federation 允许用户使用他们现有的公司凭据登录Amazon Web Services Management Console. 使用Amazon IAM Identity Center (successor to Amazon Single Sign-On)(IAM 身份中心)创建或联合用户,然后在账户中担任 IAM 角色。
要了解有关身份提供商和联合的更多信息,请参阅身份提供程序和联合身份验证在里面IAM 用户指南. 要了解有关 IAM 身份中心的更多信息,请参阅Amazon IAM Identity Center (successor to Amazon Single Sign-On)用户指南.
如果您需要使用 IAM 用户,Security Hub 建议您强制创建强用户密码。您可以在您的上设置密码策略Amazon帐户指定密码的复杂性要求和强制轮换期。创建或更改密码策略时,大多数密码策略设置会在用户下次更改其密码时实施。一些设置将立即实施。
修复
要更新您的密码策略以使用推荐的配置,请参阅为 IAM 用户设置账户密码策略在里面IAM 用户指南.
[IAM.8] 应移除未使用的 IAM 用户证书
类别 保护 > 安全访问管理
严重性 中
资源类型:计划 AWS::IAM::User
Amazon Config 规则:iam-user-unused-credentials-check
类型:计划 定期
参数:
-
maxCredentialUsageAge:90
此控件检查您的 IAM 用户是否有 90 天未使用的密码或有效访问密钥。
IAM 用户可以访问Amazon使用不同类型的证书(例如密码或访问密钥)的资源。
Security Hub 建议您删除或停用所有在 90 天或更长时间内未使用的证书。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。
修复
要获取监控账户是否有过期证书所需的一些信息,请使用 IAM 控制台。例如,当您查看账户中的用户时,会显示 Access key age (访问密钥使用期限)、Password age (密码使用期限) 和 Last activity (上次活动时间)。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。
您还可以使用凭证报告来监控用户账户和识别 90 天或更长时间没有活动的账户。您可以在以下位置下载凭证报告.csvIAM 控制台中的格式。有关凭证报告的更多信息,请参阅获取您的凭证报告Amazon帐户在里面IAM 用户指南.
确定非活动账户或未使用的凭证后,请使用以下步骤禁用它们。
禁用非活跃账户的证书
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
选择 Users(用户)。
-
选择拥有超过 90 天凭证的用户的姓名。
-
选择 Security credentials (安全凭证)。
-
对于至少 90 天未使用的每个登录凭证和访问密钥,选择设为非活动状态.
[IAM.21] 您创建的 IAM 客户托管策略不应允许对服务执行通配符操作
类别 检测 > 安全访问管理
严重性 低
资源类型:计划 AWS::IAM::Policy
Amazon Config 规则:iam-policy-no-statements-with-full-access
类型:计划 触发器
参数:
-
excludePermissionBoundaryPolicy:True
此控件检查您创建的基于身份的 IAM 策略是否具有使用 * 通配符授予对任何服务执行所有操作的权限的 Allow 语句。如果任何策略声明包括,则控制失败"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 操作,例如DescribeFlowLogs和DescribeAvailabilityZones. 在这些授权案例中,您可以在常用前缀中添加带后缀的通配符。例如,ec2:Describe*。
如果您使用带有后缀的通配符作为前缀的 IAM 操作,则此控制即通过。例如,策略中的以下语句会得出一个已通过的调查结果。
"Statement": [ { "Sid": "EC2-Wildcard", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }
当您以这种方式对相关的 IAM 操作进行分组时,还可以避免超过 IAM 策略的大小限制。
以下区域支持:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此问题,请更新您的 IAM 策略,使其不允许完整的 “*” 管理权限。有关如何编辑 IAM 策略的详细信息,请参阅编辑 IAM policy在里面IAM 用户指南.
[Kinesis.1] Kinesis Data Streams 应该在静态时加密
类别 保护 > 数据保护 > 静态数据加密
严重性 中
资源类型:计划 AWS::Kinesis::Stream
Amazon Config 规则:kinesis-stream-encrypted
类型:计划 触发器
参数:None(无)
此控件会检查 Kinesis Data Streams 是否使用服务器端加密进行静态加密。如果 Kinesis 流未使用服务器端加密进行静态加密,则此控制将失败。
服务器端加密是 Amazon Kinesis Data Streams 中的一项功能,它使用Amazon KMS key. 数据在写入 Kinesis 流存储层之前经过加密,从存储中检索后解密。因此,您的数据将在 Amazon Kinesis Data Streams 服务中进行静态加密。
以下区域支持:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关为 Kinesis 流启用服务器端加密的信息,请参阅如何开始使用服务器端加密?在里面Amazon Kinesis 开发人员指南.
[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥进行解密和重新加密操作
类别 保护 > 安全访问管理
严重性 中
资源类型:计划 AWS::IAM::Policy
Amazon Config 规则:iam-customer-policy-blocked-kms-actions
类型:计划 触发器
参数:
-
blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt -
excludePermissionBoundaryPolicy:True
检查默认版本的 IAM 客户托管策略是否允许委托人使用Amazon KMS对所有资源执行解密操作。此控件使用Zelkova
此控件失效,并将策略标记为FAILED,前提是该政策的开放程度足以允许kms:Decrypt要么kms:ReEncryptFrom对任意 KMS 密钥的操作。
该控件评估附加和未附加的客户托管策略。它不检查内联策略或Amazon托管策略。
与Amazon KMS,您可以控制谁可以使用您的 KMS 密钥并获得对您的加密数据的访问权限。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵循安全最佳实践,Amazon建议您允许最低权限。换而言之,您应该只授予身份kms:Decrypt要么kms:ReEncryptFrom权限,且仅适用于执行任务所需的密钥。否则,用户可能会使用不适合您的数据的密钥。
与其为所有密钥授予权限,不如确定用户访问加密数据所需的最小密钥集。然后设计仅允许用户使用这些密钥的策略。例如,不允许kms:Decrypt所有 KMS 密钥的权限。否则,计划kms:Decrypt仅在您账户的特定区域中的密钥上使用。通过采用最小权限原则,您可以降低意外泄露数据的风险。
修复
要修复此问题,您可以修改 IAM 客户托管策略以限制对密钥的访问。
修改 IAM 客户托管策略
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 导航窗格中,选择策略.
-
选择要修改的策略旁边的箭头。
-
选择编辑策略。
-
请选择 JSON 选项卡。
-
更改
“Resource”要允许的一个或多个特定密钥的值。 -
修改策略后,选择查看策略.
-
选择 Save changes(保存更改)。
有关更多信息,请参阅 。结合 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
类型:计划 触发器
参数:
-
blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt
检查您的 IAM 身份(角色、用户或群组)中嵌入的内联策略是否允许Amazon KMS对所有 KMS 密钥执行解密和重新加密操作。此控件使用Zelkova
如果策略的开放程度足以允许,则此控制将失败kms:Decrypt要么kms:ReEncryptFrom对任意 KMS 密钥的操作。
与Amazon KMS,您可以控制谁可以使用您的 KMS 密钥并获得对您的加密数据的访问权限。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵循安全最佳实践,Amazon建议您允许最低权限。换句话说,您应仅向身份授予他们所需的权限,并且仅授予执行任务所需的密钥。否则,用户可能会使用不适合您的数据的密钥。
与其授予对所有密钥的权限,不如确定用户访问加密数据所需的最少密钥集。然后设计允许用户仅使用这些密钥的策略。例如,不允许kms:Decrypt所有 KMS 密钥的权限。相反,只允许对账户的特定区域中的特定密钥授予权限。通过采用最小权限原则,您可以降低意外泄露数据的风险。
修复
要修复此问题,您可以修改内联策略以限制对密钥的访问。
修改 IAM 内联策略
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 导航窗格中,选择Users,Groups,或角色.
-
选择要修改其 IAM 内联策略的用户、组或角色的名称。
-
选择要修改的策略旁边的箭头。
-
选择编辑策略。
-
请选择 JSON 选项卡。
-
更改
"Resource"您要允许的特定密钥的值。 -
修改策略后,选择查看策略.
-
选择 Save changes(保存更改)。
有关更多信息,请参阅 。结合 IAM 策略和Amazon KMS在里面Amazon Key Management Service开发人员指南.
[KMS.3]Amazon KMS不应无意中删除密钥
类别 保护 > 数据保护 > 数据删除保护
严重性 重大
资源类型:计划 AWS::KMS::Key
Amazon Config 规则:kms-cmk-not-scheduled-for-deletion
类型:计划 定期
参数:None(无)
此控件检查是否计划删除 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
类型:计划 触发器
参数:None(无)
此控制检查 Lambda 函数基于资源的策略是否禁止在您的账户之外进行公共访问。
如果从 Amazon S3 调用 Lambda 函数且该策略不包含以下条件,则控制也会失败AWS:SourceAccount.
Lambda 函数不应公开访问,因为这可能允许意外访问存储在该函数中的代码。
中国(北京)或中国(宁夏)区域不支持此控件。
修复
如果 Lambda 函数未能通过此控制,则表示 Lambda 函数的基于资源的策略语句允许公共访问。
要修复此问题,必须更新策略以删除权限或添加AWS:SourceAccount条件。您只能从 Lambda API 中更新基于资源的策略。
以下说明使用控制台查看策略和Amazon Command Line Interface移除权限。
查看 Lambda 函数基于资源的策略
打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/
。 -
在导航窗格中,选择 Functions(函数)。
-
选择函数。
-
请选择权限。基于资源的策略显示了在其他账户或 Amazon 服务尝试访问该函数时应用的权限。
-
检查基于资源的策略。确定有以下内容的政策声明
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(替换)使用 Lambda 函数的名称,以及<function-name>使用要删除的语句的语句 ID。<statement-id>
验证权限是否已更新
打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/
。 -
在导航窗格中,选择 Functions(函数)。
-
选择您更新的函数。
-
请选择权限。
基于资源的策略应更新。如果策略中只有一个语句,则该策略为空。
有关更多信息,请参阅 。使用 的基于资源的策略Amazon Lambda在里面Amazon Lambda开发人员指南.
[Lambda.2] Lambda 函数应使用支持的运行时
类别 保护 > 安全开发
严重性 中
资源类型:计划 AWS::Lambda::Function
Amazon Config 规则:lambda-function-settings-check
类型:计划 触发器
参数:
-
runtime:nodejs16.x, nodejs14.x, nodejs12.x, python3.9, python3.8, python3.7, ruby2.7, java11, java8, java8.al2, go1.x, dotnetcore3.1, dotnet6
此控件检查运行时的 Lambda 函数设置是否与为每种语言支持的运行时设置的预期值相匹配。此控件检查以下运行时的功能设置:nodejs16.x,nodejs14.x,nodejs12.x,python3.9,python3.8,python3.7,ruby2.7,java11,java8,java8.al2,go1.x,dotnetcore3.1,以及dotnet6.
这些区域有:Amazon Config规则忽略包类型为的函数Image.
Lambda 运行时围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建。当安全更新不再支持某个运行时组件时,Lambda 会弃用该运行时。虽然您无法创建使用已弃用运行时的函数,但函数仍可用于处理调用事件。确保您的 Lambda 函数是最新的,不要使用 out-of-date 运行时环境。
要了解有关此控件检查支持的语言的支持的运行时的更多信息,请参阅Amazon Lambda运行时在里面Amazon Lambda开发人员指南.
中国(北京)或中国(宁夏)区域中不支持此控件。
修复
有关支持的运行时和弃用计划的更多信息,请参阅运行时支持策略”””””” 部分Amazon Lambda开发人员指南. 将运行时迁移到最新版本时,请遵循语言发布者的语法和指导。
[Lambda.4] Lambda 函数应配置死信队列(已停用)
该控件停用。
[Lambda.5] VPC Lambda 函数应在多个可用区中运行
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型:计划 AWS::Lambda::Function
Amazon Config 规则:lambda-vpc-multi-az-check
类型:计划 触发器
参数:None(无)
此控件检查 Lambda 是否关联了多个可用区。如果只有一个可用区与 Lambda 关联,则规则失败。
跨多个可用区部署资源是一种Amazon确保架构内高可用性的最佳实践。可用性是机密性、完整性和可用性三合一安全模型的核心支柱。所有 Lambda 函数都应部署多可用区,以确保单个故障区域不会导致操作完全中断。
修复
要通过控制台在多个可用区部署 Lambda 函数,请执行以下操作:
打开Amazon Lambda控制台在https://console.aws.amazon.com/lambda/
来自的函数在 Lambda 控制台的页面中选择一个函数。
选择 Configuration(配置),然后选择 VPC。
选择 Edit(编辑)。
如果该功能最初未连接到 VPC,请从下拉菜单中选择一个 VPC。如果该函数最初未连接到 VPC,请选择至少一个安全组连接到该函数
注意 函数执行角色必须具有调用的权限
CreateNetworkInterface在 EC2。选择 Save(保存)。
[NetworkFirewall.3] Network Firewall 策略应至少关联一个规则组
类别 保护 > 安全网络配置
严重性 中
资源类型:计划 AWS::NetworkFirewall::FirewallPolicy
Amazon Config 规则:netfw-policy-rule-group-associated
类型:计划 触发器
参数:None(无)
此控件检查Network Firewall 策略是否有任何关联的状态或无状态规则组。如果未分配无状态或有状态的规则组,则控制将失败。
防火墙策略定义防火墙如何监控和处理 Amazon Virtual Private Cloud (Amazon VPC) 中的流量 配置无状态和有状态规则组有助于过滤数据包和流量,并定义默认流量处理。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要向Network Firewall 策略添加规则组,请参阅更新防火墙策略在里面Amazon Network Firewall开发人员指南. 有关创建和管理规则组的信息,请参阅规则组数Amazon Network Firewall.
[NetworkFirewall.4] 对于完整的数据包,Network Firewall 策略的默认无状态操作应为丢弃或转发
类别 保护 > 安全网络配置
严重性 中
资源类型:计划 AWS::NetworkFirewall::FirewallPolicy
Amazon Config 规则:netfw-policy-default-action-full-packets
类型:计划 触发器
参数:
statelessDefaultActions: aws:drop,aws:forward_to_sfe
此控件检查Network Firewall 策略中完整数据包的默认无状态操作是丢弃还是转发。如果控制通过Drop要么Forward被选中,如果出现以下情况,则失败Pass已选中。
防火墙策略定义了您的防火墙如何监控和处理 Amazon VPC 中的流量。您可以配置无状态和有状态的规则组来过滤数据包和流量。默认值为Pass可能允许意外流量。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更改防火墙策略,请执行以下操作:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,在Network Firewall,选择防火墙策略.
-
选择要编辑的防火墙策略名称。这会将您带到防火墙策略的详细信息页面。
-
中无状态默认操作,选择编辑. 然后选择Drop要么转发到有状态的规则组作为完整数据包的默认操作.
[NetworkFirewall.5] 对于分段数据包,Network Firewall 策略的默认无状态操作应为丢弃或转发
类别 保护 > 安全网络配置
严重性 中
资源类型:计划 AWS::NetworkFirewall::FirewallPolicy
Amazon Config 规则:netfw-policy-default-action-fragment-packets
类型:计划 触发器
参数:
statelessFragDefaultActions (Required) : aws:drop, aws:forward_to_sfe
此控件检查Network Firewall 策略中分段数据包的默认无状态操作是丢弃还是转发。如果控制通过Drop要么Forward被选中,如果出现以下情况,则失败Pass已选中。
防火墙策略定义了您的防火墙如何监控和处理 Amazon VPC 中的流量。您可以配置无状态和有状态的规则组来过滤数据包和流量。默认值为Pass可能允许意外流量。
以下区域支持:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要更改防火墙策略,请执行以下操作:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,在Network Firewall,选择防火墙策略.
-
选择要编辑的防火墙策略名称。这会将您带到防火墙策略的详细信息页面。
-
中无状态默认操作,选择编辑. 然后选择Drop要么转发到有状态的规则组作为分段数据包的默认操作.
[NetworkFirewall.6] 无状态Network Firewall 规则组不应为空
类别 保护 > 安全网络配置
严重性 中
资源类型:计划 AWS::NetworkFirewall::RuleGroup
Amazon Config 规则:netfw-stateless-rule-group-not-empty
Schedule:计划 触发器
参数:None(无)
此控件检查是否存在无状态规则组Amazon Network Firewall包含规则。如果规则组中没有规则,则该规则将失败。
规则组包含定义您的防火墙如何处理 VPC 中流量的规则。当防火墙策略中存在空的无状态规则组时,可能会给人以该规则组将处理流量的印象。但是,当无状态规则组为空时,它不处理流量。
修复
要向Network Firewall 规则组添加规则,请执行以下操作:
登录Amazon管理控制台并通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
在导航窗格中,在Network Firewall,选择Network Firewall 规则组.
在Network Firewall 规则组页面上,选择要编辑的规则组的名称。此会将您转入防火墙规则组详细信息页面。
对于无状态规则组,选择编辑规则向规则组添加规则。
[OpenSearch1] OpenSearch 域应启用静态加密
类别 保护 > 数据保护 > 静态数据加密
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-encrypted-at-rest
Schedule:计划 触发器
参数:None(无)
此控件检查是否 OpenSearch 域有 encryption-at-rest 配置已启用。如果未启用静态加密,检查将失败。
为了增加敏感数据的安全层,您应该配置 OpenSearch 静态加密的服务域。配置静态数据加密,Amazon KMS存储和管理您的加密密钥。要执行加密,Amazon KMS使用具有 256 位密钥的高级加密标准算法 (AES-256)。
了解相关更多信息 OpenSearch 静态服务加密,请参阅Amazon 中的静态数据加密 OpenSearch 服务在里面亚马逊 OpenSearch 服务 开发人员指南.
修复
默认情况下,域不对数据进行静态加密,并且您无法配置现有的域以使用该功能。要启用该功能,您必须创建另一个域并迁移数据。
有关创建域的信息,请参阅创建和管理Amazon OpenSearch 服务域在亚马逊 OpenSearch 服务开发人员指南。
对静态数据进行加密需要Amazon Amazon OpenSearch 1.0 或更高版本。有关为 Amazon 加密静态数据的更多信息 OpenSearch,请参阅Amazon 中的静态数据加密 OpenSearch 服务在里面亚马逊 OpenSearch 服务开发人员指南.
[OpenSearch2] OpenSearch 域应该在 VPC 中
类别 保护 > 安全网络配置 > VPC 中的资源
严重性 重大
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-in-vpc-only
Schedule:计划 触发器
参数:None(无)
此控件检查是否 OpenSearch 域位于 VPC 中。它不会通过评估 VPC 子网路由配置来确定公有访问权限。
您应该确保 OpenSearch 域未连接到公有子网。请参阅基于资源的策略在亚马逊 OpenSearch 服务开发人员指南。您还应该确保根据建议的最佳实践配置了 VPC。请参阅VPC 的安全最佳实践在Amazon VPC 用户指南中。
OpenSearch 在 VPC 中部署的域可以通过私有域与 VPC 资源通信Amazon网络,无需遍历公共互联网。此配置通过限制对传输中数据的访问来提高安全状况。VPC 提供多种网络控制来安全访问 OpenSearch 域,包括网络 ACL 和安全组。Security Hub 建议你迁移公共版 OpenSearch 域到 VPC 以利用这些控件。
修复
如果您创建一个具有公有终端节点的域,则以后无法将其放置在 VPC 中。您必须创建一个新的域,然后迁移数据。反之亦然。如果在 VPC 中创建一个域,则该域不能具有公有终端节点。
您必须创建另一个域或禁用该控制。
请参阅启动您的Amazon ur OpenSearch VPC 中的服务域在亚马逊 OpenSearch 服务开发人员指南。
[OpenSearch3] OpenSearch 域应加密节点之间发送的数据
类别 保护 > 数据保护 > 加密传输中的数据
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-node-to-node-encryption-check
Schedule:计划 触发器
参数:None(无)
此控件检查是否 OpenSearch 域有 node-to-node 加密启用。如果出现以下情况,此控制将失败 node-to-node 域上已禁用加密。
HTTPS (TLS) 可用于帮助防止潜在攻击者使用以下方式窃听或操纵网络流量 person-in-the-middle 或类似的攻击。只允许通过 HTTPS (TLS) 进行加密连接。启用 node-to-node encryption for OpenSearch 域确保群集内部通信在传输过程中得到加密。
此配置可能会降低性能。在启用此选项之前,您应该注意并测试性能权衡。
修复
否ode-to-node 只能在新域上启用加密。要修复此发现,请使用以下命令创建一个新域否ode-to-node 加密启用并将您的数据迁移到新域。按照说明进行操作创建新域在亚马逊 OpenSearch 服务开发人员指南,并确保您选择了否ode-to-node 加密创建新域时的选项。然后关注使用快照迁移数据将您的数据迁移到新域。
[OpenSearch4] OpenSearch 登录到时出现域错误 CloudWatch 应启用日志
类别 识别 > 记录
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-logs-to-cloudwatch
Schedule:计划 触发器
参数:
logtype = 'error'
此控件检查是否 OpenSearch 域配置为向发送错误日志 CloudWatch 日志。如果错误登录到,则此控件将失败 CloudWatch 未为域启用。
你应该启用错误日志 OpenSearch 域名并将这些日志发送到 CloudWatch 用于保留和响应的日志。域错误日志可以帮助进行安全和访问审计,也可以帮助诊断可用性问题。
修复
有关如何启用日志发布的信息,请参见启用日志发布(控制台)在亚马逊 OpenSearch 服务开发人员指南。
[OpenSearch5] OpenSearch 域应启用审核日志
类别 识别 > 记录
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-audit-logging-enabled
Schedule:计划 触发器
参数:
cloudWatchLogsLogGroupArnList(可选). Security Hub 不填充此参数。逗号分隔列表 CloudWatch 应为审核日志配置的日志组。
这条规则是NON_COMPLIANT如果 CloudWatch 的日志日志组 OpenSearch此参数列表中未指定域。
此控件检查是否 OpenSearch 域已启用审核日志。如果出现以下情况,则此控件将失败 OpenSearch 域未启用审核日志。
审核日志是高度可定制的。它们允许你跟踪你的用户活动OpenSearch 集群,包括身份验证成功和失败,请求OpenSearch、索引更改和传入的搜索查询。
修复
有关启用审核日志的详细说明,请参阅启用审核日志在亚马逊 OpenSearch 服务开发人员指南。
[OpenSearch.6] OpenSearch 域应拥有至少三个数据节点
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-data-node-fault-tolerance
Schedule:计划 触发器
参数:None(无)
此控件检查是否 OpenSearch 域配置了至少三个数据节点和zoneAwarenessEnabled是true. 此控件失败了 OpenSearch 域instanceCount小于 3 或zoneAwarenessEnabled是false.
网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 OpenSearch 域需要至少三个数据节点才能实现高可用性和容错能力。部署 OpenSearch 具有至少三个数据节点的域可确保节点出现故障时群集运行。
修复
修改中数据节点的数量 OpenSearch 域
登录Amazon控制台并打开亚马逊 OpenSearch 服务控制台位于https://console.aws.amazon.com/es/
. 下面我的域名,选择要编辑的域的名称,然后选择编辑.
下面数据节点设置节点数转换为大于的数字
3. 如果您要部署到三个可用区,请将该数字设置为三的倍数,以确保在可用区之间均匀分布。选择 Submit(提交)。
[OpenSearch.7] OpenSearch 域应启用精细访问控制
类别 保护 > 安全访问管理 > 敏感的 API 操作受限
严重性 高
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-access-control-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查是否 OpenSearch 域已启用精细访问控制。如果未启用精细访问控制,则控制将失败。精细访问控制要求advanced-security-options在里面 OpenSearch 参数update-domain-config待启用。
精细访问控制提供了用于控制对 Amazon 上数据的访问的其他方法 OpenSearch 服务 。
以下区域支持:
-
非洲(开普敦)
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要启用精细访问控制,请参阅Amazon 中的精细访问控制 OpenSearch 服务在里面亚马逊 OpenSearch 服务开发人员指南.
[OpenSearch.8] 连接到 OpenSearch 域应该使用 TLS 1.2 加密
类别 保护 > 数据保护 > 加密 data-in-transit
严重性 中
资源类型 AWS::OpenSearch::Domain
Amazon Config 规则:opensearch-https-required
Schedule:计划 触发器
参数:None(无)
此控件检查是否连接到 OpenSearch 网域必须使用 TLS 1.2。如果出现以下情况,则检查失败 OpenSearch 域TLSSecurityPolicy不是Policy-Min-TLS-1-2-2019-07.
HTTPS (TLS) 可用于帮助防止潜在攻击者使用 person-in-the-middle 或类似的窃听或操纵网络流量的攻击。只允许通过 HTTPS (TLS) 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试您的应用程序,以了解性能概况和 TLS 的影响。与以前版本的 TLS 相比,TLS 1.2 提供了多项安全增强功能。
修复
要启用 TLS 加密,请使用UpdateDomainConfig用于配置的 API 操作DomainEndpointOptions为了设置TLSSecurityPolicy. 有关更多信息,请参阅 。否ode-to-node 加密在亚马逊 OpenSearch 服务开发人员指南。
[RDS.1] RDS 快照应为私有快照
类别 保护 > 安全网络配置
严重性 重大
资源类型 AWS::RDS::DBSnapshot,AWS::RDS::DBClusterSnapshot
Amazon Config 规则:rds-snapshots-public-prohibited
Schedule:计划 触发器
参数:None(无)
此控件检查 Amazon RDS 快照是否公开。如果 RDS 快照是公共的,则控制失败。该控件对 RDS 实例、Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群进行评估。
RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。
除非有意这样做,否则 RDS 快照不得为公有快照。如果您将未加密的手动快照作为公有快照进行共享,则所有人都可使用此快照Amazon账户。这可能会导致 RDS 实例意外的数据泄露。
请注意,如果将配置更改为允许公有访问,则 Amazon Config 规则可能在长达 12 小时内无法检测到更改。在 Amazon Config 规则检测到更改之前,即使配置违反了规则,检查也会通过。
要了解有关共享数据库快照的更多信息,请参阅共享数据库快照在里面Amazon RDDS on.
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
要修复此问题,请更新您的 RDS 快照以删除公共访问权限。
删除 RDS 快照的公有访问权限
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
导航到 Snapshots (快照),然后选择要修改的公有快照
-
从 Actions (操作) 中,选择 Share Snapshots (共享快照)
-
从 DB snapshot visibility (数据库快照可见性) 中,选择 Private (私有)
-
在 DB snapshot visibility (数据库快照可见性) 下,选择 all (全部)。
-
选择 Save(保存)。
[RDS.2] Amazon RDS 数据库实例应禁止公共访问,具体决定是 PubliclyAccessible 配置
类别 保护 > 安全网络配置
严重性 重大
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-instance-public-access-check
Schedule:计划 触发器
参数:None(无)
此控件通过评估 Amazon RDS 实例来检查是否可以公开访问PubliclyAccessible实例配置项目中的字段。
Neptune 数据库实例和 Amazon DocumentDB 集群没有PubliclyAccessible标记且无法进行评估。但是,这种控制仍然可以为这些资源生成调查结果。你可以抑制这些发现。
RDS 实例配置中的 PubliclyAccessible 值指示是否可以公开访问数据库实例。如果使用 PubliclyAccessible 配置了数据库实例,则它是一个面向 Internet 的实例并具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。如果无法公开访问数据库实例,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。
除非您打算将 RDS 实例配置为可公开访问,否则不应将 RDS 实例配置为PubliclyAccessible值。这样做可能会导致不必要的流量流向您的数据库实例。
修复
要修复此问题,请更新您的 RDS 数据库实例以删除公有访问权限。
从 RDS 数据库实例中删除公有访问权限
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
导航到 Databases (数据库),然后选择公有数据库。
-
选择 Modify(修改)。
-
下面连接,扩展其他连接配置.
-
下面公有访问权限,选择不可公开访问.
-
选择 Continue(继续)。
-
下面调度修改,选择立即应用.
-
选择修改数据库实例。
有关更多信息,请参阅 。在 VPC 中使用数据库实例在里面Amazon RDDS on.
[RDS.3] RDS 数据库实例应启用静态加密
类别 保护 > 数据保护 > 静态数据加密
严重性 中
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-storage-encrypted
Schedule:计划 触发器
参数:None(无)
此控件检查您的 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 RDDS on.
修复
有关在 Amazon RDS 中加密数据库实例的信息,请参阅对 Amazon RDS 资源进行加密在里面Amazon RDDS on.
[RDS.4] 应对 RDS 集群快照和数据库快照进行静态加密
类别 保护 > 数据保护 > 静态数据加密
严重性 中
资源类型 AWS::RDS::DBClusterSnapshot, AWS::RDS::DBSnapshot
Amazon Config 规则:rds-snapshots-encrypted
Schedule:计划 触发器
参数:None(无)
此控件检查 RDS 数据库快照是否已加密。
此控件适用于 RDS 数据库实例。但是,它也可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群的快照生成调查结果。如果这些发现没有用处,那么你可以抑制它们。
对静态数据进行加密可降低未经身份验证的用户访问存储在磁盘上的数据的风险。应对 RDS 快照中的数据进行静态加密,以增加安全性。
修复
您可以使用 Amazon RDS 控制台来修复此问题。
对未加密的 RDS 快照进行加密
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择快照。
-
在下面找到要加密的快照手册要么系统.
-
选中要加密的快照旁边的复选框。
-
选择操作,然后选择复制快照.
-
下面新的数据库快照标识符,键入新快照的名称。
-
下面加密SELECT启用加密.
-
选择用于加密快照的 KMS 密钥。
-
选择 Copy Snapshot (复制快照)。
-
创建新快照后,删除原始快照。
-
对于Backup 保留期,选择非零正值。例如,30 天。
[RDS.5] RDS 数据库实例应配置多个可用区
类别 恢复 > 弹性 > 高可用性
严重性 中
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-multi-az-support
Schedule:计划 触发器
参数:None(无)
此控件检查您的 RDS 数据库实例是否启用了高可用性。
应针对多个可用区 (AZ) 配置 RDS 数据库实例。这确保了存储的数据的可用性。如果可用区出现问题以及在 RDS 常规 RDS 维护期间,多可用区部署允许自动进行故障转移。
修复
要修复此问题,请更新数据库实例以启用多个可用区。
为一个数据库实例启用多个可用区
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。
-
选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。
-
下面实例规格,设置多可用区部署到是.
-
选择继续然后查看修改摘要。
-
(可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置在里面Amazon RDDS on.
-
在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance (修改数据库实例) 保存更改。
[RDS.6] 应为 RDS 数据库实例和集群配置增强监控
类别 检测 > 检测服务
严重性 低
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-enhanced-monitoring-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查您的 RDS 数据库实例是否启用了增强监控。
在 Amazon RDS 中,增强监控可以更快地响应底层基础设施的性能变化。这些性能变化可能导致数据缺乏可用性。增强监控提供您的 RDS 数据库实例所运行的操作系统的实时指标。Agent 安装在该实例上。与从虚拟机管理程序层相比,代理可以更准确地获取指标。
若您想了解数据库实例上不同进程或线程对 CPU 的使用差异,增强监测指标非常有用。有关更多信息,请参阅 。增强监控在里面Amazon RDDS on.
修复
有关如何为数据库实例启用增强监控的详细说明,请参阅设置和启用增强监控在里面Amazon RDDS on.
[RDS.7] RDS 群集应启用删除保护
类别 保护 > 数据保护 > 数据删除保护
严重性 低
资源类型 AWS::RDS::DBCluster
Amazon Config 规则:rds-cluster-deletion-protection-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查 RDS 集群是否已启用删除保护。
此控件适用于 RDS 数据库实例。但是,它也可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群生成调查结果。如果这些发现没有用处,那么你可以抑制它们。
启用群集删除保护是防止未经授权的实体意外删除或删除数据库的额外保护层。
启用删除保护后,无法删除 RDS 集群。在删除请求成功之前,必须禁用删除保护。
以下区域支持:
-
China (Beijing)
-
China (Ningxia)
-
中东(巴林)
-
南美洲(圣保罗)。
修复
要修复此问题,请更新您的 RDS 数据库集群以启用删除保护。
为 RDS 数据库集群启用删除保护
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择数据库,然后选择要修改的数据库集群。
-
选择 Modify(修改)。
-
下面删除保护,选择启用删除保护.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。选项是在下一个计划的维护时段中应用这些信息要么立即应用.
-
选择 Modify Cluster。
[RDS.8] RDS 数据库实例应启用删除保护
类别保护 > 数据保护 > 数据删除保护
严重性 低
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-instance-deletion-protection-enabled
Schedule:计划 触发器
参数:
-
databaseEngines:mariadb,mysql,oracle-ee,oracle-se2,oracle-se1,oracle-se,postgres,sqlserver-ee,sqlserver-se,sqlserver-ex,sqlserver-web
此控件检查使用所列数据库引擎之一的 RDS 数据库实例是否启用了删除保护。
启用实例删除保护是防止未经授权的实体意外删除或删除数据库的额外保护层。
启用删除保护后,无法删除 RDS 数据库实例。在删除请求成功之前,必须禁用删除保护。
修复
要修复此问题,请更新您的 RDS 数据库实例以启用删除保护。
为 RDS 数据库实例启用删除保护
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择数据库,然后选择要修改的数据库实例。
-
选择 Modify(修改)。
-
下面删除保护,选择启用删除保护.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。选项是在下一个计划的维护时段中应用这些信息要么立即应用.
-
选择修改数据库实例。
[RDS.9] 应启用数据库日志记录
类别 识别 > 记录
严重性 中
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-logging-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查以下 Amazon RDS 日志是否已启用并发送到 CloudWatch 日志:
-
Oracle:(警报、审计、跟踪、侦听器)
-
PostgreSQL:(Postgresql,升级)
-
MySQL:(审计、错误、常规、 SlowQuery)
-
MariaDB:(审计、错误、常规、 SlowQuery)
-
SL Server:(错误,代理)
-
Aurora:(审计、错误、常规、 SlowQuery)
-
Aurora-MySQL:(审计、错误、常规、 SlowQuery)
-
Aurora-PostgreSQL:(Postgresql,升级)。
RDS 数据库应启用相关日志。数据库日志记录提供向 RDS 发出的请求的详细记录。数据库日志可以帮助进行安全和访问审计,也可以帮助诊断可用性问题。
以下区域不支持此控件:
-
非洲(开普敦)
-
亚太地区(大阪)
-
中国(宁夏)
-
欧洲(米兰)
修复
日志选项包含在与 RDS 数据库集群或实例关联的数据库参数组中。要在使用数据库引擎的默认参数组时启用日志记录,必须创建一个具有所需参数值的新数据库参数组。然后,您必须将客户数据库参数组与数据库集群或实例关联。
启用 MariaDB、MySQL 或 PostgreSQL 日志并将其发布到 CloudWatch 来自的日志Amazon Web Services Management Console,在自定义数据库参数组中设置以下参数:
|
数据库引擎 |
参数 |
|---|---|
|
MariaDB |
MariaDB 还需要一个自定义选项组,如下所述。 |
|
MySQL |
|
|
PostgreSQL |
|
创建自定义数据库参数组
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择参数组。
-
选择创建参数组。将显示创建参数组窗口。
-
在参数组系列列表,选择一个数据库参数组系列。
-
在类型列表,选择数据库参数组.
-
中Group name,输入新数据库参数组的名称。
-
中说明,输入新数据库参数组的描述。
-
选择 Create(创建)。
使用控制台为 MariaDB 日志创建新选项组
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择选项组。
-
选择创建组。
-
在创建选项组窗口中,执行以下操作:
-
对于 Name (名称),输入选项组的名称,在 Amazon 账户内该名称需具有唯一性。此名称只能包含字母、数字和连字符。
-
对于说明,输入选项组的简要说明。此说明用于显示说明。
-
对于引擎,选择需要的数据库引擎。
-
对于主引擎版本,请选择所需的数据库引擎主版本。
-
-
要继续,请选择创建。
-
选择您刚创建的选项组的名称。
-
选择添加选项。
-
选择MARIADB_AUDIT_PLUGIN来自 的选项名称列表。
-
将
SERVER_AUDIT_EVENTS设置为CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML, QUERY_DCL。 -
选择添加选项。
将 SQL Server 数据库、Oracle 数据库或 PostgreSQL 日志发布到 CloudWatch 来自的日志Amazon Web Services Management Console
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases(数据库)。
-
选择要修改的数据库实例。
-
选择修改。
-
下面日志导出,选择要开始发布到的所有日志文件 CloudWatch 日志。
日志导出仅适用于支持发布到的数据库引擎版本 CloudWatch 日志。
-
选择 Continue(继续)。然后在摘要页面上,选择修改数据库实例.
将新的数据库参数组或数据库选项组应用于 RDS 数据库实例
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases(数据库)。
-
选择要修改的数据库实例。
-
选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。
-
下面数据库选项,根据需要更改数据库参数组和数据库选项组。
-
完成更改后,选择继续. 查看修改摘要。
-
(可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置在里面Amazon RDDS on.
-
选择修改数据库实例以保存更改。
[RDS.10] 应为 RDS 实例配置 IAM 身份验证
类别 保护 > 安全访问管理 > 无密码身份验证
严重性 中
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-instance-iam-authentication-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查 RDS 数据库实例是否启用了 IAM 数据库身份验证。
IAM 数据库身份验证允许使用身份验证令牌而不是密码对数据库实例进行身份验证。数据库的出站和进站网络流量使用 SSL 加密。有关更多信息,请参阅 。IAM 数据库身份验证在里面Amazon Aurora 用户指南.
以下区域不支持此控件:
-
Africa (Cape Town)
-
Asia Pacific (Hong Kong)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
修复
要修复此问题,请更新数据库实例以启用 IAM 身份验证。
如欲为现有数据库实例启用 IAM 身份验证
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库实例。
-
选择 Modify(修改)。
-
下面Database authentication,选择密码和 IAM 数据库身份验证.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。选项是在下一个计划的维护时段中应用这些信息要么立即应用.
-
对于集群,选择修改数据库实例.
[RDS.11] Amazon RDS 实例应启用自动备份
类别 恢复 > 弹性 > 启用备份
严重性 中
资源类型 AWS::RDS::DBCluster
Amazon Config 规则:db-instance-backup-enabled
Schedule:计划 触发器
参数:
backupRetentionMinimum:7
此控制检查Amazon Relational Database Service 实例是否启用了自动备份以及备份保留期是否大于或等于七天。如果未启用备份且保留期少于 7 天,则控制将失败。
备份可帮助您更快地从安全事件中恢复,并增强系统的弹性。Amazon RDS 提供了一种配置每日完整实例卷快照的简便方法。有关 Amazon RDS 自动备份的更多详细信息,请参阅使用备份在Amazon RDS 用户指南中。
亚太地区(大阪)不支持此控件。
修复
立即启用自动备份
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。
-
选择修改打开修改数据库实例页面。
-
下面Backup 保留期,请选择正非零值,例如 30 天,然后选择继续.
-
SELECT调度修改部分,并选择在何时应用修改:可以选择在下一个计划的维护时段中应用这些信息要么立即应用.
-
然后,在确认页面上,选择修改数据库实例可保存更改并启用自动备份。
[RDS.12] 应为 RDS 集群配置 IAM 身份验证
类别 保护 > 安全访问管理 > 无密码身份验证
严重性 中
资源类型 AWS::RDS::DBCluster
Amazon Config 规则:rds-cluster-iam-authentication-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查 Amazon RDS 数据库集群是否启用了 IAM 数据库身份验证。
IAM 数据库身份验证允许对数据库实例进行免密码身份验证。身份验证使用身份验证令牌。数据库的出站和进站网络流量使用 SSL 加密。有关更多信息,请参阅 。IAM 数据库身份验证在里面Amazon Aurora 用户指南.
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
中东(巴林)
-
南美洲(圣保罗)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以从 Amazon RDS 控制台为数据库集群启用 IAM 身份验证。
如欲为现有数据库集群启用 IAM 身份验证
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库集群。
-
选择 Modify(修改)。
-
下面数据库选项SELECT启用 IAM 数据库身份验证.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改:在下一个计划的维护时段中应用这些信息要么立即应用.
-
选择修改集群。
[RDS.13] 应启用 RDS 自动次要版本升级
类别 检测 > 漏洞和补丁管理
严重性 高
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-automatic-minor-version-upgrade-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查是否为 RDS 数据库实例启用了自动次要版本升级。
启用自动次要版本升级可确保安装关系数据库管理系统 (RDBMS) 的最新次要版本更新。这些升级可能包括安全补丁和错误修复。及时安装补丁是保护系统的重要一步。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以从 Amazon RDS 控制台为数据库实例启用次要版本升级。
为现有数据库实例启用自动次要版本升级
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库实例。
-
选择 Modify(修改)。
-
下面维护SELECT是为了自动次要版本升级.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改:在下一个计划的维护时段中应用这些信息要么立即应用.
-
选择修改数据库实例。
[RDS.14] Amazon Aurora 集群应启用回溯功能
类别 恢复 > 弹性 > 启用备份
严重性 中
资源类型 AWS::RDS::DBCluster
Amazon Config 规则:aurora-mysql-backtracking-enabled
Schedule:计划 触发器
参数:None(无)
此控件检查 Amazon Aurora 集群是否启用了回溯功能。
备份可帮助您更快地从安全事件中恢复。它们还增强了系统的弹性。Aurora 回溯将数据库恢复到某个时间点的所需时间缩短。它不需要数据库恢复即可执行此操作。
有关在 Aurora 中回溯的更多信息,请参阅回溯 Aurora 数据库集群在里面Amazon Aurora 用户指南.
以下区域不支持此控件:
-
Africa (Cape Town)
-
Asia Pacific (Hong Kong)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
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
Schedule:计划 触发器
参数:None(无)
此控件检查您的 RDS 数据库集群是否启用了高可用性。
应为多个可用区配置 RDS 数据库集群,以确保存储的数据的可用性。部署到多个可用区允许在出现可用区可用性问题和定期 RDS 维护事件期间自动进行故障转移。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
中东(巴林)
-
南美洲(圣保罗)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此控制,请为多个可用区配置数据库集群。
为数据库集群启用多可用区
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择数据库,然后选择要修改的数据库实例。
-
选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。
-
下面实例规格,设置多可用区部署到是.
-
选择继续,查看修改摘要。
-
(可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置在里面Amazon RDDS on.
在确认页面上,检查您的更改。如果更改正确无误,请选择修改数据库实例.
[RDS.16] 应将 RDS 数据库集群配置为将标签复制到快照
类别 识别 > 列表
严重性 低
资源类型 AWS::RDS::DBCluster
Amazon Config 规则:rds-cluster-copy-tags-to-snapshots-enabled(由Security Hub 开发的自定义规则)
Schedule:计划 触发器
参数:None(无)
此控件检查是否将 RDS 数据库集群配置为在创建快照时将所有标签复制到快照。
确定和清点 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您的所有 RDS 数据库集群,以便评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库集群相同。启用此设置可确保快照继承其父数据库集群的标签。
以下区域不支持此控件:
-
中国(北京)
-
中东(巴林)
-
南美洲(圣保罗)
修复
为数据库集群启用自动标签复制到快照的功能
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库集群。
-
选择 Modify(修改)。
-
下面备份SELECT将标签复制到快照.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。你可以选择其中一个在下一个计划的维护时段中应用这些信息要么立即应用.
[RDS.17] 应将 RDS 数据库实例配置为将标签复制到快照
类别 识别 > 列表
严重性 低
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-instance-copy-tags-to-snapshots-enabled(由Security Hub 开发的自定义规则)
Schedule:计划 触发器
参数:None(无)
此控件检查是否将 RDS 数据库实例配置为在创建快照时将所有标签复制到快照。
确定和清点 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您的所有 RDS 数据库实例,以便评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库实例相同。启用此设置可确保快照继承其父数据库实例的标签。
修复
为数据库实例启用自动标签复制到快照的功能
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库实例。
-
选择 Modify(修改)。
-
下面备份SELECT将标签复制到快照.
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。你可以选择其中一个在下一个计划的维护时段中应用这些信息要么立即应用.
[RDS.18] 应在 VPC 中部署 RDS 实例
类别 保护 > 安全网络配置 > VPC 中的资源
严重性 高
资源类型 AWS::RDS::DBInstance
Amazon Config 规则:rds-deployed-in-vpc(由Security Hub 开发的自定义规则)
Schedule:计划 触发器
参数:None(无)
此控件检查是否在 EC2-VPC 上部署了 Amazon RDS 实例。
VPC 提供多种网络控制来安全访问 RDS 资源。这些控制包括 VPC 终端节点、网络 ACL 和安全组。要利用这些控件,我们建议您在 EC2-VPC 上创建 RDS 实例。
修复
有关如何将 RDS 实例移至 VPC 的详细说明,请参阅更新数据库实例的 VPC在里面Amazon RDDS on.
[RDS.19] 应为关键集群事件配置 RDS 事件通知订阅
类别 检测 > 检测服务 > 应用程序监控
严重性 低
资源类型 AWS::RDS::EventSubscription
Amazon Config 规则:rds-cluster-event-notifications-configured(由Security Hub 开发的自定义规则)
Schedule:计划 触发器
参数:None(无)
此控件检查是否存在为以下源类型、事件类别键值对启用通知的 Amazon RDS 事件订阅。
DBCluster: ["maintenance","failure"]
RDS 事件通知使用 Amazon SNS 让您知道 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的附加信息,请参阅使用 Amazon RDS 事件通知在里面Amazon RDDS on.
修复
订阅 RDS 集群事件通知
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择事件订阅。
-
下面事件订阅,选择创建事件订阅.
-
在创建事件订阅对话框下,执行下列操作:
-
对于名称,输入事件通知订阅的名称。
-
对于将通知发送至,为 SNS 主题选择现有的 Amazon SNS ARN。要使用新主题,请选择创建一个主题来输入主题的名称和收件人列表。
-
对于源类型,选择集群.
-
下面要包括的实例SELECT所有集群.
-
下面要包括的事件类别SELECT特定事件类别. 如果您选择,则控件也会通过所有活动类别.
-
Select保养和失败.
-
选择 Create(创建)。
-
[RDS.20] 应为关键数据库实例事件配置 RDS 事件通知订阅
类别 检测 > 检测服务 > 应用程序监控
严重性 低
资源类型 AWS::RDS::EventSubscription
Amazon Config 规则:rds-instance-event-notifications-configured(由Security Hub 开发的自定义规则)
Schedule:计划 触发器
参数:None(无)
此控件检查是否存在为以下源类型、事件类别键值对启用通知的 Amazon RDS 事件订阅。
DBInstance: ["maintenance","configuration change","failure"]
RDS 事件通知使用 Amazon SNS 让您知道 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的附加信息,请参阅使用 Amazon RDS 事件通知在里面Amazon RDDS on.
修复
订阅 RDS 实例事件通知
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择事件订阅。
-
下面事件订阅,选择创建事件订阅.
-
在创建事件订阅对话框下,执行下列操作:
-
对于名称,输入事件通知订阅的名称。
-
对于将通知发送至,为 SNS 主题选择现有的 Amazon SNS ARN。要使用新主题,请选择创建一个主题来输入主题的名称和收件人列表。
-
对于源类型,选择实例.
-
下面要包括的实例SELECT所有实例.
-
下面要包括的事件类别SELECT特定事件类别. 如果您选择,则控件也会通过所有活动类别.
-
Select保养,配置更改,以及失败.
-
选择 Create(创建)。
-
[RDS.21] 应为关键数据库参数组事件配置 RDS 事件通知订阅
类别 检测 > 检测服务 > 应用程序监控
严重性 低
资源类型:计划 AWS::RDS::EventSubscription
Amazon Config 规则:rds-pg-event-notifications-configured(由Security Hub 开发的自定义规则)
计划类型:计划 触发器
参数:None(无)
此控件检查是否存在为以下源类型、事件类别键值对启用通知的 Amazon RDS 事件订阅。
DBParameterGroup: ["configuration change"]
RDS 事件通知使用 Amazon SNS 让您知道 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的附加信息,请参阅使用 Amazon RDS 事件通知在里面Amazon RDDS on.
修复
订阅 RDS 数据库参数组事件通知
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择事件订阅。
-
下面事件订阅,选择创建事件订阅.
-
在创建事件订阅对话框下,执行下列操作:
-
对于名称,输入事件通知订阅的名称。
-
对于将通知发送至,为 SNS 主题选择现有的 Amazon SNS ARN。要使用新主题,请选择创建一个主题来输入主题的名称和收件人列表。
-
对于源类型,选择参数组.
-
下面要包括的实例SELECT所有参数组.
-
下面要包括的事件类别SELECT特定事件类别. 如果您选择,则控件也会通过所有活动类别.
-
Select配置更改.
-
选择 Create(创建)。
-
[RDS.22] 应为关键数据库安全组事件配置 RDS 事件通知订阅
类别 检测 > 检测服务 > 应用程序监控
严重性 低
资源类型:计划 AWS::RDS::EventSubscription
Amazon Config 规则:rds-sg-event-notifications-configured(由Security Hub 开发的自定义规则)
计划类型:计划 触发器
参数:None(无)
此控件检查是否存在为以下源类型、事件类别键值对启用通知的 Amazon RDS 事件订阅。
DBSecurityGroup: ["configuration change","failure"]
RDS 事件通知使用 Amazon SNS 让您知道 RDS 资源的可用性或配置的变化。这些通知允许快速响应。有关 RDS 事件通知的附加信息,请参阅使用 Amazon RDS 事件通知在里面Amazon RDDS on.
修复
订阅 RDS 数据库安全组事件通知
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择事件订阅。
-
下面事件订阅,选择创建事件订阅.
-
在创建事件订阅对话框下,执行下列操作:
-
对于名称,输入事件通知订阅的名称。
-
对于将通知发送至,为 SNS 主题选择现有的 Amazon SNS ARN。要使用新主题,请选择创建一个主题来输入主题的名称和收件人列表。
-
对于源类型,选择安全组.
-
下面要包括的实例SELECT所有安全组.
-
下面要包括的事件类别SELECT特定事件类别. 如果您选择,则控件也会通过所有活动类别.
-
Select配置更改和失败.
-
选择 Create(创建)。
-
[RDS.23] RDS 数据库和集群不应使用数据库引擎的默认端口
类别 保护 > 安全网络配置
严重性 低
资源类型:计划 AWS::RDS::DBInstance
Amazon Config 规则:rds-no-default-ports(由Security Hub 开发的自定义规则)
计划类型:计划 触发器
参数:None(无)
此控件检查 RDS 集群或实例是否使用数据库引擎默认端口以外的端口。
如果您使用已知端口部署 RDS 集群或实例,则攻击者可以猜测有关该集群或实例的信息。攻击者可以将此信息与其他信息结合使用来连接到 RDS 集群或实例或获取有关您的应用程序的其他信息。
更改端口时,还必须更新用于连接旧端口的现有连接字符串。您还应检查数据库实例的安全组,确保它包含允许在新端口上连接的入口规则。
修复
修改现有数据库实例的默认端口
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择 Databases(数据库)。
-
选择要修改的数据库实例
-
选择 Modify(修改)。
-
下面数据库选项,更改数据库端口改为非默认值。
-
选择 Continue(继续)。
-
下面调度修改,选择何时应用修改。你可以选择其中一个在下一个计划的维护时段中应用这些信息要么立即应用.
-
对于集群,选择修改集群. 例如,选择修改数据库实例.
[RDS.24] RDS 数据库集群应使用自定义管理员用户名
类别 识别 > 资源配置
严重性 中
资源类型:计划 AWS::RDS:DBCluster
Amazon Config 规则:rds-cluster-default-admin-check
计划类型:计划 触发器
参数:None(无)
此控件检查 Amazon RDS 数据库集群是否已将管理员用户名从其默认值更改为其他值。如果管理员用户名设置为默认值,则此规则将失效。
创建 Amazon RDS 数据库时,应将默认管理员用户名更改为唯一值。默认用户名是众所周知的,应在创建 RDS 数据库期间进行更改。更改默认用户名可降低意外访问的风险。
修复
要更改与 Amazon RDS 数据库集群关联的管理员用户名,创建新的 RDS 数据库集群并在创建数据库时更改默认管理员用户名。
[RDS.25] RDS 数据库实例应使用自定义管理员用户名
类别 识别 > 资源配置
严重性 中
资源类型:计划 AWS::RDS::DBInstance
Amazon Config 规则:rds-instance-default-admin-check
计划类型:计划 触发器
参数:None(无)
此控件检查您是否将 Amazon Relational Database Service (Amazon RDS) 数据库实例的管理用户名从默认值更改了。如果管理用户名设置为默认值,则控制失败。
Amazon RDS 数据库上的默认管理用户名是众所周知的。创建 Amazon RDS 数据库时,应将默认管理用户名更改为唯一值,以降低意外访问的风险。
修复
要更改与 RDS 数据库实例关联的管理用户名,首先创建新的 RDS 数据库实例. 在创建数据库时更改默认管理用户名。
[Redshift.1] Amazon Redshift 集群应禁止公共访问
类别 保护 > 安全网络配置 > 资源不可公开访问
严重性 重大
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-cluster-public-access-check
计划类型:计划 触发器
参数:None(无)
此控件可检查 Amazon Redshift 集群是否可公开访问。它会评估PubliclyAccessible群集配置项目中的字段。
这些区域有:PubliclyAccessibleAmazon Redshift 集群配置的属性表示集群是否可以公开访问。当集群配置为PubliclyAccessible设置true,这是一个面向 Internet 的实例,具有可解析为公有 IP 地址的可公开解析 DNS 名称。
当无法公开访问集群时,它将是一个带有 DNS 名称的内部实例,可解析为私有 IP 地址。除非您打算让集群可以公开访问,否则不应将集群配置为PubliclyAccessible设置true.
修复
要修复此问题,请更新您的 Amazon Redshift 集群以禁用公共访问权限。
禁用对 Amazon Redshift 集群的公开访问
打开位于 https://console.aws.amazon.com/redshift/
的 Amazon Redshift 控制台。 -
在导航菜单中,选择集群,然后选择包含要修改的安保组的集群的名称。
-
选择操作,然后选择修改公开访问的设置.
-
下面允许 VPC 外部的实例和设备通过集群终端节点连接到您的数据库,选择否.
-
选择 Confirm(确认)。
[Redshift.2] 与 Amazon Redshift 集群的连接应在传输过程中进行加密
类别 保护 > 数据保护 > 加密传输中的数据
严重性 中
资源类型:计划 AWS::Redshift::Cluster,AWS::Redshift::ClusterParameterGroup
Amazon Config 规则:redshift-require-tls-ssl
计划类型:计划 触发器
参数:None(无)
此控制检查是否需要连接到 Amazon Redshift 集群才能在传输中使用加密。如果 Amazon Redshift 集群参数,则检查失败require_SSL未设置为 1。
TLS 可以用来帮助防止潜在的攻击者使用 person-in-the-middle 或类似的窃听或操纵网络流量的攻击。只允许通过 TLS 进行加密连接。加密传输中的数据可能会影响性能。您应该使用此功能测试您的应用程序,以了解性能概况和 TLS 的影响。
欧洲(米兰)不支持此控件。
修复
要修复此问题,请更新参数组以要求加密。
修改参数组
打开位于 https://console.aws.amazon.com/redshift/
的 Amazon Redshift 控制台。 -
在导航菜单中,选择Config,然后选择工作负载管理:计划工作负载管理页面。
-
选择要修改的参数组。
-
选择参数.
-
选择编辑参数然后设置
require_ssl至 1. -
输入您的更改,然后选择Save(保存).
[Redshift.3] Amazon Redshift 集群应启用自动快照
类别 恢复 > 弹性 > 启用备份
严重性 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-backup-enabled
计划类型:计划 触发器
参数:
-
MinRetentionPeriod = 7
此控件检查 Amazon Redshift 集群是否启用了自动快照。它还检查快照保留期是否大于或等于七。
备份可帮助您更快地从安全事件中恢复。它们增强了系统的弹性。默认情况下,Amazon Redshift 会定期拍摄快照。此控件会检查是否启用了自动快照并保留至少七天。有关 Amazon Redshift 自动快照的更多详细信息,请参阅自动快照在里面Amazon Redshift 管理指南.
以下区域不支持此控件:
-
非洲(开普敦)
-
亚太地区(大阪)
-
亚太地区(悉尼)
-
中国(宁夏)
-
欧洲(米兰)
修复
要修复此问题,请将快照保留期至少更新为 7。
修改快照保留期
打开位于 https://console.aws.amazon.com/redshift/
的 Amazon Redshift 控制台。 -
在导航菜单中,选择集群,然后选择要修改的集群的名称。
-
选择 Edit(编辑)。
-
下面备份,设置快照保留值为 7 或更大。
-
选择 Modify Cluster。
[Redshift.4] Amazon Redshift 集群应启用审计日志
类别 识别 > 记录
严重性 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-cluster-audit-logging-enabled(由Security Hub 开发的自定义规则)
计划类型:计划 触发器
参数:
-
loggingEnabled = true
此控件检查 Amazon Redshift 集群是否启用了审计日志。
Amazon Redshift 审核日志提供了有关集群中的连接和用户活动的更多信息。这些数据可以在 Amazon S3 中存储和保护,有助于安全审计和调查。有关更多信息,请参阅 。数据库审计日志记录在里面Amazon Redshift 管理指南.
修复
启用集群审计日志
打开位于 https://console.aws.amazon.com/redshift/
的 Amazon Redshift 控制台。 -
在导航菜单中,选择集群,然后选择要修改的集群的名称。
-
选择维护和监控.
-
下面审核日志,选择编辑.
-
设置启用审计日志记录到是,然后输入日志目标存储桶的详细信息。
-
选择 Confirm(确认)。
[Redshift.6] Amazon Redshift 应该启用到主要版本的自动升级
错误类别 检测 > 漏洞和补丁管理
错误类别 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-cluster-maintenancesettings-check
计划类型:计划 触发器
参数:
-
allowVersionUpgrade = true
此控件检查是否为 Amazon Redshift 集群启用了自动主要版本升级。
启用自动主要版本升级可确保在维护时段内安装 Amazon Redshift 集群的最新主要版本更新。这些更新可能包括安全补丁和错误修复。及时安装补丁是保护系统的重要一步。
中东(巴林)不支持此控件。
修复
要修复此问题,请从Amazon CLI,使用Amazon Redshiftmodify-cluster命令来设置--allow-version-upgrade属性。
aws redshift modify-cluster --cluster-identifierclustername--allow-version-upgrade
WHER是您的 Amazon Redshift 集群的名称。clustername
[Redshift.7] Amazon Redshift 集群应使用增强型 VPC 路由
错误类别 保护 > 安全网络配置 > API 私有访问
错误类别 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-enhanced-vpc-routing-enabled
计划类型:计划 触发器
参数:None(无)
此控件检查 Amazon Redshift 集群是否具有EnhancedVpcRouting已启用。
增强型 VPC 路由强制所有COPY和UNLOAD集群和数据存储库之间的流量将通过您的 VPC。然后,您可以使用安全组和网络访问控制列表等 VPC 功能来保护网络流量。您还可以使用 VPC 流日志监控网络流量。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关详细的补救说明,请参阅启用增强型 VPC 路由在里面Amazon Redshift 管理指南.
[Redshift.8] Amazon Redshift 集群不应使用默认的管理员用户名
错误类别 识别 > 资源配置
错误类别 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-default-admin-check
计划类型:计划 触发器
参数:None(无)
此控件检查 Amazon Redshift 集群是否已将管理员用户名从其默认值更改为其他值。如果 Redshift 集群的管理员用户名设置为,则此控制将失败awsuser.
创建 Redshift 集群时,应将默认管理员用户名更改为唯一值。默认用户名是众所周知的,应在配置时进行更改。更改默认用户名可降低意外访问的风险。
修复
创建了 Amazon Redshift 集群后,则不能再更改其管理员用户名。要创建新集群,请按照说明操作这里.
[Redshift.9] Redshift 集群不应使用默认的数据库名称
错误类别 识别 > 资源配置
错误类别 中
资源类型:计划 AWS::Redshift::Cluster
Amazon Config 规则:redshift-default-db-name-check
计划类型:计划 触发器
参数:None(无)
此控件检查 Amazon Redshift 集群是否已将数据库名称从其默认值更改为其他值。如果 Redshift 集群的数据库名称设置为,则控制将失败dev.
创建 Redshift 集群时,应将默认数据库名称更改为唯一值。默认名称是众所周知的,应在配置时更改。例如,如果在 IAM 策略条件中使用知名名称,则该名称可能会导致无意访问。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
创建了 Amazon Redshift 集群后,则不能更改该集群的数据库名称。有关创建新集群的说明,请参阅Amazon Redshift 入门在里面Amazon Redshift 入门指南.
[S3.1] 应启用 S3 阻止公有访问设置
错误类别 保护 > 安全网络配置
错误类别 中
资源类型:计划 Amazon帐户
Amazon Config 规则:s3-account-level-public-access-blocks-periodic
计划类型:计划 定期
参数:
-
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 Simple S.
以下区域不支持此控件:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要修复此问题,请启用 Amazon S3 阻止公有访问。
启用 Amazon S3 阻止公有访问
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
选择 Block public access (account settings) (阻止公有访问(账户设置))。
-
选择 Edit(编辑)。
-
SelectBlock(阻止)所有公有访问权限.
-
选择 Save changes(保存更改)。
有关更多信息,请参阅 。使用 Amazon S3 阻止公有访问在里面Amazon Simple Simple S.
[S3.2] S3 存储桶应禁止公开读取访问
错误类别 保护 > 安全网络配置
错误类别 重大
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-public-read-prohibited
计划类型:计划 定期触发,变更触发
参数:None(无)
该控制检查 S3 存储桶是否允许公共读取访问。它评估阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL)。
有些使用案例要求互联网上的每个人都能够从您的 S3 存储桶中读取数据。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开读取。
修复
要修复此问题,请更新您的 S3 存储桶以删除公有访问权限。
从 S3 存储桶中删除公有访问权限
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择存储桶。
-
选择要更新的 S3 存储桶的名称。
-
选择Permissions (权限)然后选择阻止公有访问.
-
选择 Edit(编辑)。
-
SelectBlock(阻止)所有公有访问权限. 然后选择 Save(保存)。
-
如果出现提示,输入
confirm,然后选择 Confirm (确认)。
[S3.3] S3 存储桶应禁止公开写入访问
错误类别 保护 > 安全网络配置
错误类别 重大
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-public-write-prohibited
计划类型:计划 定期触发,变更触发
参数:None(无)
该控制检查 S3 存储桶是否允许公共写入访问。它会对阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL) 进行评估。
有些使用案例要求互联网上的每个人都能写入您的 S3 存储桶。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开写入。
修复
要修复此问题,请更新您的 S3 存储桶以删除公有访问权限。
删除 S3 存储桶的公开访问权限
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择存储桶。
-
选择要更新的 S3 存储桶的名称。
-
选择Permissions (权限)然后选择阻止公有访问.
-
选择 Edit(编辑)。
-
SelectBlock(阻止)所有公有访问权限. 然后选择 Save(保存)。
-
如果出现提示,输入
confirm,然后选择 Confirm (确认)。
[S3.4] S3 存储桶应启用服务器端加密
错误类别 保护 > 数据保护 > 静态数据加密
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-server-side-encryption-enabled
计划类型:计划 触发器
参数:None(无)
此控制会检查您的 S3 存储桶是否已启用 Amazon S3 默认加密,或者 S3 存储桶策略是否明确拒绝未经服务器端加密的放置对象请求。
要为 S3 存储桶中的敏感数据增加安全层,您应使用服务器端加密来保护静态数据。Amazon S3 使用唯一的密钥来加密每个数据元。作为额外的保护,Amazon S3 会使用定期轮换的根密钥对密钥本身进行加密。Amazon S3 服务器端加密使用可用的最强数据块密码之一、256 位高级加密标准 (AES-256) 来加密您的数据。
要了解更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据在里面Amazon Simple Simple S.
修复
要修复此问题,请更新您的 S3 存储桶以启用默认加密。
对 S3 存储桶启用默认加密
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择存储桶。
-
从列表中选择 S3 存储桶。
-
请选择属性。
-
选择 Default encryption。
-
要进行加密,请选择以下任一选项AES-256要么Amazon-KMS.
-
选择AES-256使用由 Amazon S3 托管的密钥进行默认加密。有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅Amazon Simple Simple S.
-
选择Amazon-KMS使用由管理的密钥Amazon KMS用于默认加密。然后从列表中选择一个根密钥Amazon KMS您创建的根密钥。
键入要使用的 Amazon KMS 密钥的 Amazon 资源名称 (ARN)。你可以找到你的 ARNAmazon KMS在 IAM 控制台下键入加密密钥. 或者,您可以从下拉列表中选择一个键名。
重要 如果您将 Amazon KMS 选项用于默认加密配置,则您需要遵循 Amazon KMS 的 RPS(每秒请求数)配额。有关以下内容的更多信息Amazon KMS配额以及如何请求增加配额,请参阅Amazon Key Management Service开发人员指南.
有关创建 dational 的更多信息Amazon KMS钥匙,看看Amazon Key Management Service开发人员指南.
有关使用的更多信息Amazon KMS通过 Amazon S3,请参阅Amazon Simple Simple S.
在启用默认加密时,您可能需要更新存储桶策略。有关从存储桶策略转换为默认加密的更多信息,请参阅Amazon Simple Simple S.
-
-
选择 Save(保存)。
有关默认 S3 存储桶加密的更多信息,请参阅Amazon Simple Simple S.
[S3.5] S3 存储桶应要求请求才能使用安全套接字层
错误类别 保护 > 安全访问管理
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-ssl-requests-only
计划类型:计划 触发器
参数:None(无)
此控制检查 S3 存储桶是否有要求请求使用安全套接字层 (SSL) 的策略。
S3 存储桶应具有要求所有请求的策略 (Action: S3:*) 在 S3 资源策略中仅接受通过 HTTPS 传输数据,由条件密钥指示aws:SecureTransport.
修复
要修复此问题,请更新 S3 存储桶的权限策略。
配置 S3 bucket以拒绝不安全传输
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
导航到不合规存储桶,然后选择存储桶名称。
-
选择 Permissions,然后选择 Bucket Policy。
-
在下面的政策中添加类似的政策声明。Replace(替换)
awsexamplebucket使用要修改的存储桶的名称。{ "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": "*" } ] } -
选择 Save(保存)。
有关更多信息,请参阅知识中心文章要符合,我要使用什么 S3 策略?Amazon Config规则 s3-bucket-ssl-requests-only?
[S3.6] 向其他人授予Amazon S3 权限Amazon应限制存储桶策略中的账户
错误类别 保护 > 安全访问管理 > 敏感的 API 操作操作受限
错误类别 高
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-blacklisted-actions-prohibited
计划类型:计划 触发器
参数:
-
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 存储桶的规则。参数向外部账户授予对未包含在操作模式中的操作模式的访问权限blacklistedactionpatterns列表。
修复
要修复此问题,请编辑 S3 存储桶策略以删除权限。
编辑 S3 存储桶策略
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在Bucket name列表中,选择要为其编辑策略的 S3 存储桶的名称。
-
选择 Permissions,然后选择 Bucket Policy。
-
在存储桶策略编辑器文本框中,执行下面的任意一项操作:
-
删除向其他人授予对被拒绝操作的访问权限的语句Amazon账户
-
从语句中删除允许的被拒绝的操作
-
-
选择 Save(保存)。
[S3.8] 应在存储区级别启用 S3 阻止公有访问设置
错误类别 保护 > 安全访问管理 > 访问控制
错误类别 高
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-level-public-access-prohibited
计划类型:计划 触发器
参数:
-
excludedPublicBuckets(可选)-以逗号分隔的已知允许公有 S3 存储桶名称列表。
此控件检查 S3 存储桶是否应用了存储分区级别的公共访问阻止。如果将以下任一设置设置为,则此控制会失败false:
-
ignorePublicAcls -
blockPublicPolicy -
blockPublicAcls -
restrictPublicBuckets
在 S3 存储桶级别阻止公有访问可提供控制,以确保对象永远不会获得公共访问权限。通过访问控制列表 (ACL) 和/或存储桶策略向存储桶和对象授予公有访问权限。
除非您打算公开访问您的 S3 存储桶,否则应配置存储桶级别 Amazon S3 阻止公有访问功能。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关如何在存储段级别删除公有访问权限的信息,请参阅阻止对您的 Amazon S3 存储的公有访问在里面Amazon S3 用户指南中).
[S3.9] 应启用 S3 存储桶服务器访问日志记录
错误类别 识别 > 记录
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-logging-enabled
计划类型:计划 触发器
参数:None(无)
此控件检查是否为 S3 存储桶启用了服务器访问日志。在启用日志记录后,Amazon S3 会将源存储桶的访问日志传输到选定的目标存储桶。目标存储桶必须位于源存储桶所在的相同 Amazon 区域中且不得具有默认保留周期配置。如果启用了服务器访问日志,则此控制通过。目标日志存储桶不需要启用服务器访问日志记录,您应该取消对此存储桶的发现。
服务器访问日志记录详细地记录对存储桶提出的各种请求。服务器访问日志可以帮助进行安全和访问审计。有关更多信息,请参阅 。Amazon S3 的安全最佳实践:启用 Amazon S3 服务器访问日志记录.
修复
启用 S3 存储桶访问日志记录
登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 从列表中选择存储桶。
请选择属性。
在 Server access logging(服务器访问日志记录)下,请选择 Edit(编辑)。
下面Server access logging (服务器访问日志记录),选择启用. 然后,选择保存更改.
[S3.10] 启用版本控制的 S3 存储桶应配置生命周期策略
错误类别 识别 > 记录
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-version-lifecycle-policy-check
计划类型:计划 触发器
参数:None(无)
此控制检查启用了 Amazon Simple Storage Service (Amazon S3) 版本的存储桶是否配置了生命周期策略 如果未启用 Amazon S3 生命周期策略,则此规则将失败。
建议在 Amazon S3 存储桶上配置生命周期规则,因为这些规则可以帮助您定义您希望 Amazon S3 在对象的生命周期内执行的操作。
修复
有关在 Amazon S3 存储桶上配置生命周期的更多信息,请参阅在存储桶上设置生命周期配置和管理存储生命周期.
[S3.11] S3 存储桶应启用事件通知
错误类别 识别 > 记录
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-event-notifications-enabled
计划类型:计划 触发器
参数:None(无)
此控件检查是否在 Amazon S3 存储桶上启用了 S3 事件通知。如果未在存储桶上启用 S3 事件通知,则此控制将失败。
通过启用事件通知,当发生特定事件时,您会在 Amazon S3 存储桶上收到警报。例如,您可以收到对象创建、对象移除和对象恢复的通知。这些通知可以提醒相关团队注意可能导致未经授权的数据访问的意外或故意修改。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关检测 S3 存储桶和对象更改的信息,请参阅Amazon S3 事件通知在里面Amazon S3 用户指南中).
[S3.12] 不应使用 S3 访问控制列表 (ACL) 来管理用户对存储桶的访问权限
错误类别 保护 > 安全访问管理 > 访问控制
错误类别 中
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-bucket-acl-prohibited
计划类型:计划 触发器
参数:None(无)
此控制检查 Amazon S3 存储桶是否通过 ACL 提供用户权限。如果将 ACL 配置为管理 S3 存储区上的用户访问权限,则控制会失败。
ACL 是早于 IAM 的传统访问控制机制。我们建议使用 IAM 策略或 S3 存储桶策略而不是 ACL,以便更轻松地管理对 S3 存储桶的访问。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关管理 S3 存储桶访问权限的更多信息,请参阅存储桶策略和用户策略在里面Amazon S3 用户指南中). 有关如何查看您当前 ACL 权限的详细信息,请参阅访问控制列表 (ACL) 概述在里面Amazon S3 用户指南中).
[S3.13] S3 存储桶应配置生命周期策略
错误类别 保护 > 数据保护
错误类别 低
资源类型:计划 AWS::S3::Bucket
Amazon Config 规则:s3-lifecycle-policy-check
计划类型:计划 触发器
参数:None(无)
此控件检查是否为 Amazon S3 存储桶配置了生命周期策略。如果没有为 S3 存储桶配置生命周期策略,则此控制将失败。
在 S3 存储桶上配置生命周期规则定义您希望 S3 在对象的生命周期内执行的操作。例如,您可以将对象转换为另一个存储类别,存档对象,或在指定时期后删除它们。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关在 Amazon S3 存储桶上配置生命周期策略的信息,请参阅在存储桶上设置生命周期配置并请参阅管理存储生命周期在里面Amazon S3 用户指南中).
[SageMaker1] SageMaker 笔记本电脑实例不应直接访问互联网
错误类别 保护 > 安全网络配置
错误类别 高
资源类型:计划 AWS::SageMaker::NotebookInstance
Amazon Config 规则:sagemaker-notebook-no-direct-internet-access
计划类型:计划 定期
参数:None(无)
此控件检查是否禁用了直接互联网接入 SageMaker 笔记本实例。为此,它会检查是否DirectInternetAccess该笔记本实例的字段已禁用。
如果你配置你的 SageMaker 没有 VPC 的实例,则默认情况下,您的实例上启用了直接互联网访问。您应该使用 VPC 配置您的实例,并将默认设置更改为禁用-通过 VPC 访问 Internet.
要使用笔记本电脑训练或托管模型,您需要访问互联网。要启用互联网访问,请确保您的 VPC 有 NAT 网关并且您的安全组允许出站连接。要了解有关如何将笔记本实例连接到 VPC 中的资源的更多信息,请参阅将笔记本实例Connect 到 VPC 中的资源在里面亚马逊 SageMaker 开发人员指南.
您还应确保访问您的 SageMaker 配置仅限于授权用户。限制用户的 IAM 修改权限 SageMaker 设置和资源。
以下区域不支持此控件:
-
非洲(开普敦)
-
China (Beijing)
-
China (Ningxia)
-
欧洲(米兰)
-
Amazon GovCloud (美国东部)
修复
请注意,在创建笔记本实例后,您无法更改互联网访问设置。必须停止、删除和重新创建它。
要配置 SageMaker 拒绝直接访问互联网的笔记本实例
-
导航到笔记本实例.
-
删除启用了直接互联网接入的实例。选择实例,选择操作,然后选择停止。
在实例停止后选择操作,然后选择删除.
-
选择创建笔记本实例。提供配置详情。
-
展开网络部分,然后选择 VPC、子网和安全组。下面直接访问 Internet 访问,选择禁用-通过 VPC 访问 Internet.
-
选择创建笔记本实例。
有关更多信息,请参阅 。将笔记本实例Connect 到 VPC 中的资源在里面亚马逊 SageMaker 开发人员指南.
[SecretsManager.1] Secrets Manager 密钥应启用自动轮换
错误类别 保护 > 安全开发
错误类别 中
资源类型:计划 AWS::SecretsManager::Secret
Amazon Config 规则:secretsmanager-rotation-enabled-check
计划类型:计划 触发器
参数:None(无)
此控件检查密钥是否存储在Amazon Secrets Manager配置为自动旋转。
Secrets Manager 帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储密钥、自动加密密钥、控制对密钥的访问以及安全、自动地轮换密钥。
Secrets Manager 可以轮换密钥。您可以使用轮换将长期机密替换为短期机密。轮换您的密钥限制了未经授权的用户可以使用已泄露的密钥的时间。因此,您应该经常轮换机密。要了解有关旋转的更多信息,请参阅轮换你的Amazon Secrets Manager秘密在里面Amazon Secrets Manager用户指南.
修复
要修复此问题,请为密钥启用自动轮换。
启用自动轮换
在 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台 -
要查找需要轮换的密钥,请在搜索字段中输入密钥名称。
-
选择要轮换的密钥,这将显示密钥详细信息页面。
-
下面轮换配置,选择编辑轮换换值.
-
From编辑旋转配置,选择启用自动轮换.
-
对于选择轮换间隔,请选择旋转间隔。
-
选择一个 Lambda 函数进行轮换。有关自定义 Lambda 轮换函数的信息,请参阅了解和自定义您的 Lambda 轮换函数在里面Amazon Secrets Manager用户指南.
-
要配置轮换的密钥,请选择下一页.
要了解有关 Secrets Manager 轮换的更多信息,请参阅轮换你的Amazon Secrets Manager秘密在里面Amazon Secrets Manager用户指南.
[SecretsManager.2] 配置为自动轮换的 Secrets Manager 密钥应成功轮换
错误类别 保护 > 安全开发
错误类别 中
资源类型:计划 AWS::SecretsManager::Secret
Amazon Config 规则:secretsmanager-scheduled-rotation-success-check
Schedule 类型 触发器
参数:None(无)
此控件检查是否Amazon Secrets Manager密钥已根据轮换时间表成功轮换。如果出现以下情况,则控制失败RotationOccurringAsScheduled是false. 该控件不评估未配置轮换的密钥。
Secrets Manager 帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储密钥、自动加密密钥、控制对密钥的访问以及安全、自动地轮换密钥。
Secrets Manager 可以轮换密钥。您可以使用轮换将长期机密替换为短期机密。轮换您的密钥限制了未经授权的用户可以使用已泄露的密钥的时间。因此,您应该经常轮换机密。
除了将密钥配置为自动轮换外,您还应确保根据轮换时间表成功轮换这些密钥。
要了解有关旋转的更多信息,请参阅轮换你的Amazon Secrets Manager秘密在里面Amazon Secrets Manager用户指南.
修复
如果自动轮换失败,则 Secrets Manager 可能在配置中遇到了错误。
要在 Secrets Manager 中轮换密钥,您可以使用 Lambda 函数来定义如何与拥有密钥的数据库或服务交互。
有关如何诊断和修复与密钥轮换相关的常见错误的帮助,请参阅问题排查Amazon Secrets Manager轮换密钥在里面Amazon Secrets Manager用户指南.
[SecretsManager.3] 移除未使用的Secrets Manager 密钥
错误类别 保护 > 安全访问管理
错误类别 中
资源类型 AWS::SecretsManager::Secret
Amazon Config 规则:secretsmanager-secret-unused
Schedule 类型 定期
参数:None(无)
此控件检查您的密钥是否在指定的天数内被访问。默认值为 90 天。如果在规定的天数内未访问密钥,则此控制将失败。
删除未使用的密钥与轮换密钥同样重要。未使用的密钥可能会被其以前的用户滥用,他们不再需要访问这些密钥。此外,随着越来越多的用户获得访问密钥的权限,可能有人对其进行了错误的处理并将其泄露给未经授权的实体,这增加了滥用的风险。删除未使用的密钥有助于撤消不再需要的用户的秘密访问权限。它还有助于降低使用Secrets Manager 的成本。因此,定期删除未使用的密钥至关重要。
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以从 Secrets Manager 控制台中删除非活动密钥。
删除非事件密钥
在 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台 -
要找到密钥,请在搜索框中输入密钥名称。
-
选择要删除的密钥。
-
下面Schedule,来自操作,选择删除密钥:.
-
下面计划删除密钥,输入在删除密钥之前等待的天数。
-
选择计划删除。
[SecretsManager.4] Secrets Manager 密钥应在指定的天数内轮换
错误类别 保护 > 安全访问管理
严重性:中
资源类型 AWS::SecretsManager::Secret
Amazon Config 规则:secretsmanager-secret-periodic-rotation
Schedule 类型 定期
参数:
-
轮换周期:默认为 90 天
此控件检查您的密钥是否在 90 天内至少轮换过一次。
轮换密钥可以帮助你降低未经授权使用你的密钥的风险Amazon账户。示例包括数据库凭证、密码、第三方 API 密钥,甚至是任意文本。如果您很长一段时间未更改密钥,密钥泄露的可能性就会增大。
随着越来越多的用户获得访问密钥的权限,更有可能有人不当处理该密钥并将其泄露给未经授权的实体。密钥可能会通过日志和缓存数据泄露出去。密钥可能会共享用于调试目的,但在调试完成后未更改或撤销。出于所有这些原因,密钥应该频繁地轮换。
你可以在中配置你的密钥以实现自动轮换Amazon Secrets Manager. 通过自动轮换,您可以将长期机密替换为短期机密,从而显著降低泄露的风险。
Security Hub 建议你启用Secrets Manager 的轮换。要了解有关旋转的更多信息,请参阅轮换你的Amazon Secrets Manager秘密在里面Amazon Secrets Manager用户指南.
以下区域不支持此控件:
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以在 Secrets Manager 控制台中启用自动密钥轮换。
启用密钥轮换
在 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台 -
要找到密钥,请在搜索框中输入密钥名称。
-
选择要显示的密钥。
-
下面轮换配置,选择编辑轮换换值.
-
From编辑旋转配置,选择启用自动轮换.
-
From选择轮换间隔,选择旋转间隔。
-
选择用于轮换的 Lambda 函数。
-
选择 Next(下一步)。
-
将密钥配置为自动轮换后,在轮换配置,选择立即轮换密钥.
[SNS.1] SNS 主题应使用以下方法进行静态加密Amazon KMS
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型 AWS::SNS::Topic
Amazon Config 规则:sns-encrypted-kms
Schedule 类型 触发器
参数:None(无)
此控件使用以下命令检查 SNS 主题是否已静态加密Amazon KMS.
对静态数据进行加密可降低存储在磁盘上的数据被未经身份验证的用户访问的风险Amazon. 它还添加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,需要有 API 权限才能解密数据,然后才能读取数据。SNS 主题应进行静态加密,以增加安全层。有关更多信息,请参阅 。静态加密在里面Amazon简单通知服务开发者指南.
修复
要修复此问题,请更新您的 SNS 主题以启用加密。
加密未加密的 SNS 主题
通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home
。 -
在导航窗格中,选择 Topics(主题)。
-
选择要加密的主题的名称。
-
选择 Edit(编辑)。
-
下面加密,选择启用加密.
-
选择用于加密主题的 KMS 密钥。
-
选择 Save changes(保存更改)。
[SNS.2] 应为发送到主题的通知消息启用传送状态日志功能
类别:识别 > 记录
严重性:中
资源类型 AWS::SNS::Topic
Amazon Config 规则:sns-topic-message-delivery-notification-enabled
Schedule 类型 触发器
参数:None(无)
此控件检查是否启用日志记录,以了解发送到 Amazon SNS 主题的终端节点的通知消息的传输状态。如果未启用邮件的传送状态通知,则此控制将失败。
日志记录是保持服务的可靠性、可用性和性能的重要方面。记录消息传送状态有助于提供操作见解,例如:
了解消息是否已传输到 Amazon SNS 终端节点。
识别从 Amazon SNS 终端节点发送到 Amazon SNS 的响应。
确定消息停留时间(发布时间戳与将消息转交给 Amazon SNS 终端节点之间的时间差)。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要为主题配置传送状态日志,请参阅Amazon SNS 消息传输状态在里面Amazon简单通知服务开发者指南.
[SQS.1] 应对 Amazon SQS 队列进行静态加密
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型 AWS::SQS::Queue
Amazon Config 规则:sqs-queue-encrypted(由Security Hub 开发的自定义规则)
Schedule 类型 触发器
参数:None(无)
此控件检查 Amazon SQS 队列是否已静态加密。如果您使用 Amazon SQS 托管密钥 (SSE-SQS) 或Amazon Key Management Service(Amazon KMS)
服务器端加密 (SSE) 允许您在加密队列中传输敏感数据。为了保护队列中的消息内容,SSE 使用 KMS 密钥。有关更多信息,请参阅 。静态加密在里面Amazon Simple Queue.
修复
有关使用 SSE 管理 SSE 的信息Amazon Web Services Management Console,请参阅为队列配置服务器端加密 (SSE)(控制台)在里面Amazon Simple Queue.
[SSM.1] EC2 实例应由以下人员管理Amazon Systems Manager
类别:识别 > 列表
严重性:中
资源类型 AWS::EC2::Instance
Amazon Config 规则:ec2-instance-managed-by-systems-manager
Schedule 类型 触发器发器
参数:None(无)
此控件会检查您账户中已停止和正在运行的 EC2 实例是否由Amazon Systems Manager. Systems Manager 是Amazon您可以用来查看和控制您的服务Amazon基础设施。
为了帮助您维护安全性和合规性,Systems Manager 会扫描已停止和正在运行的托管实例。托管实例是指已配置为与 Systems Manager 一起使用的机器。然后,Systems Manager 会报告其发现的任何违反政策的行为或采取纠正措施。Systems Manager 还帮助您配置和维护托管实例。
要了解更多信息,请参阅Amazon Systems Manager用户指南.
修复
您可以使用 Systems Manager 控制台修复此问题。
确保 EC2 实例由Systems Manager 管理
访问 https://console.aws.amazon.com/systems-manager/
,打开 Amazon Systems Manager 控制台。 -
在导航菜单中,选择快速设置.
-
选择 Create(创建)。
-
下面配置类型,选择主机管理,然后选择下一页.
-
在配置屏幕上,您可以保留默认选项。
您可以选择进行以下更改:
-
如果您使用 CloudWatch 要监控 EC2 实例,请选择安装和配置 CloudWatch 代理人和更新 CloudWatch 每 30 天代理一次.
-
下面目标,选择管理范围以确定应用此配置的账户和区域。
-
下面实例配置文件选项SELECT将所需的 IAM 策略添加到附加到您的实例的现有实例配置文件中.
-
-
选择 Create(创建)。
要确定您的实例是否支持 Systems Manager 关联,请参阅Systems Manager 先决条件在里面Amazon Systems Manager用户指南.
[SSM.2] 由 Systems Manager 管理的所有 EC2 实例都应符合补丁要求
类别:检测 > 检测服务
严重性:高
资源类型 AWS::SSM::PatchCompliance
Amazon Config 规则:ec2-managedinstance-patch-compliance-status-check
Schedule 类型 触发器发器
参数:None(无)
此控件检查 Amazon EC2 Systems Manager 补丁合规性的合规性状态是否为COMPLIANT要么NON_COMPLIANT在实例上安装补丁之后。它仅检查由 Systems Manager Patch Manager 管理的实例。
根据您的组织要求对 EC2 实例进行完全修补,可减少 Amazon 账户面临的攻击面。
以下区域不支持此控件:
-
非洲(开普敦)
-
Europe (Milan)
-
Middle East (Bahrain)
修复
要修复此问题,请在不合规的实例上安装所需的补丁。
修复不合规的补丁
访问 https://console.aws.amazon.com/systems-manager/
,打开 Amazon Systems Manager 控制台。 -
下面节点管理,选择运行命令然后选择运行命令.
-
选择旁边的按钮Amazon-RunPatchBaseline.
-
将 Operation (操作) 改为 Install (安装)。
-
选择 Choose instances manually (手动选择实例),然后选择不合规的实例。
-
在页面底部选择 Run (运行)。
-
在该命令完成后,要监控修补的实例的新合规性状态,请在导航窗格中选择 Compliance (合规性)。
有关使用 Systems Manager 文档为托管实例打补丁的更多信息,请参阅关于适用于修补实例的 SSM 文档和使用 Systems Manager 运行命令运行命令在里面Amazon Systems Manager用户指南.
[SSM.3] 由 Systems Manager 管理的实例的关联合规状态应为COMPLIANT
类别:检测 > 检测服务
严重性:低
资源类型 AWS::SSM::AssociationCompliance
Amazon Config 规则:ec2-managedinstance-association-compliance-status-check
Schedule 类型 触发器发器
参数:None(无)
此控件检查状态是否Amazon Systems Manager协会合规性是COMPLIANT要么NON_COMPLIANT在实例上运行关联之后。如果关联合规状态为,则控制通过COMPLIANT.
状态管理器关联是分配给您的托管实例的配置。该配置定义要在实例上保持的状态。例如,关联可以指定必须在实例上安装并运行防病毒软件,或必须关闭特定端口。
创建一个或多个 State Manager 关联后,您可以立即获得合规性状态信息。您可以在控制台中查看合规性状态,也可以通过回复来查看合规性状态Amazon CLI命令或相应的Systems Manager API 操作。对于关联,“配置合规性” 显示合规性状态 (Compliant要么Non-compliant)。它还显示分配给关联的严重性级别,例如Critical要么Medium.
要了解有关州经理协会合规性的更多信息,请参阅关于州经理协会合规性在里面Amazon Systems Manager用户指南.
非洲(开普敦)或欧洲(米兰)不支持此控件。
修复
关联失败可能与不同的事物有关,包括目标和 SSM 文档名称。要修复此问题,必须首先确定并调查这种关联。然后,您可以更新关联以更正特定问题。
您可以编辑关联以指定新名称、计划、严重级别或目标。编辑关联后,Amazon Systems Manager 将创建新版本。
调查和更新失败的关联
访问 https://console.aws.amazon.com/systems-manager/
,打开 Amazon Systems Manager 控制台。 -
在导航窗格中,在节点管理,选择Fleet Manager.
-
选择具有的实例 ID协会状态的已失败.
-
请选择 View details (查看详细信息)。
-
选择Associations.
-
记下关联的名称协会状态的已失败. 这是你需要调查的关联。在下一步骤中,您需要使用关联名称。
-
在导航窗格中,在节点管理,选择State Manager. 搜索协会名称,然后选择该协会。
-
确定问题后,编辑失败的关联以更正问题。有关如何编辑关联的信息,请参见编辑关联.
有关创建和编辑状态管理器关联的更多信息,请参见在 Systems Manager 中使用关联。在里面Amazon Systems Manager用户指南.
[SSM.4] SSM 文档不应公开
类别:保护 > 安全网络配置 > 资源不可公开访问
严重性:重大
资源类型 AWS::SSM::Document
Amazon Config 规则:ssm-document-not-public
Schedule 类型 定期
参数:None(无)
此控件检查是否Amazon Systems Manager该账户拥有的文件是公开的。如果 SSM 向所有者提交文件,则此控制将失败Self公有的。
公开的 SSM 文档可能允许意外访问您的文档。公开 SSM 文档可以公开有关您的账户、资源和内部流程的宝贵信息。
除非您的使用案例要求启用公开共享,否则 Security Hub 建议您为拥有的 Systems Manager 文件打开阻止公开共享设置Self.
以下区域不支持此控件:
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
有关禁用 SSM 文档的公共访问权限的更多信息,请参阅修改共享 SSM 文档的权限和共享 SSM 文档的最佳做法在里面Amazon Systems Manager用户指南.
[WAF.1]Amazon WAF应启用经典全球 Web ACL 日志记录
类别:识别 > 记录
严重性:中
资源类型 AWS::WAF::WebACL
Amazon Config 规则:waf-classic-logging-enabled
Schedule 类型 定期
参数:None(无)
此控件检查是否启用了日志记录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 (Beijing)
-
China (Ningxia)
-
欧洲(法兰克福)
-
欧洲(爱尔兰)
-
欧洲(伦敦)
-
欧洲(米兰)
-
Europe (Paris)
-
Europe (Stockholm)
-
Middle East (Bahrain)
-
南美洲(圣保罗)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
您可以从 Kinesis Data Firehose 控制台启用 Web ACL 的日志记录。
为 Web ACL 启用日志记录
打开 Kinesis Data Firehose e 控制台https://console.aws.amazon.com/firehose/
. -
创建 Kinesis Data Firehose 传输流。
名称必须以前缀开头
aws-waf-logs-。例如,aws-waf-logs-us-east-2-analytics。使用创建 Kinesis Data Firehose 传输流
PUT来源和您经营所在的地区。如果你捕获了亚马逊的日志 CloudFront,在美国东部(弗吉尼亚北部)创建配送流。有关更多信息,请参阅 。创建 Amazon Kinesis Data Firehose 传输流在里面Amazon Kinesis Data Firehose. -
From服务,选择WAF & Shield. 然后选择切换到Amazon WAFClassic.
-
From筛选,选择全局(CloudFront).
-
选择要为其启用日志记录的 Web ACL。
-
下面日志记录,选择启用日志记录.
-
选择您之前创建的 Kinesis Data Firehose 传输流。您必须选择名称以开头的传输流
aws-waf-logs-。 -
选择启用日志记录。
[WAF.2] WAF 区域规则应至少具有一个条件
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAFRegional::Rule
Amazon Config 规则:waf-regional-rule-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF区域规则至少包含一个条件。如果规则中不存在任何条件,则控制失败。
WAF 区域规则可以包含多个条件。规则的条件允许检查流量并采取定义的操作(允许、阻止或计数)。没有任何条件,交通未经检查即通过。WAF Regional 规则没有条件,但其名称或标签提示允许、封禁或计数,可能会导致错误地假设其中一项操作正在发生。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要向空规则添加条件,请参阅在规则中添加和删除条件在里面Amazon WAF开发人员指南.
[WAF.3] WAF 区域规则组应至少有一条规则
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAFRegional::RuleGroup
Amazon Config 规则:waf-regional-rulegroup-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF区域规则组至少包含一条规则。如果规则组中不存在任何规则,则控制失败。
一个 WAF 区域规则组可以包含多个规则。规则的条件允许检查流量并采取定义的操作(允许、阻止或计数)。没有任何规则,交通未经检查即通过。WAF Regional 规则组没有规则,但其名称或标签提示允许、封禁或计数,可能会导致错误地假设其中一项操作正在发生。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
亚太地区(大阪)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
要向空规则组添加规则和规则条件,请参阅在中添加和删除规则Amazon WAF经典规则组和在规则中添加和删除条件在里面Amazon WAF开发人员指南.
[WAF.4] WAF Classic Regional Web ACL 应至少包含一个规则或规则组
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAFRegional::WebACL
Amazon Config 规则:waf-regional-webacl-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF Classic RegionalWeb ACL 包含任何 WAF 规则或 WAF 规则组。如果 Web ACL 不包含任何 WAF 规则或规则组,则此控制将失败。
WAF 区域 Web ACL 可以包含一组检查和控制 Web 请求的规则和规则组的集合。如果 Web ACL 为空,则网络流量可以在不被 WAF 检测或处理的情况下通过,具体取决于默认操作。
以下区域不支持此控件:
-
亚太地区(雅加达)
-
China (Beijing)
-
China (Ningxia)
-
Amazon GovCloud (美国东部)
-
Amazon GovCloud (美国西部)
修复
向空的 Web ACL 添加规则或规则组
打开Amazon WAF控制台https://console.aws.amazon.com/wafv2/
. -
在导航窗格中,选择切换到Amazon WAFClassic,然后选择Web ACL.
-
对于筛选,选择空的 Web ACL 所在区域。
-
选择空 Web ACL 的名称。
-
选择Rule,然后选择编辑Web ACL.
-
对于Rule,选择一个规则或规则组,然后选择将规则添加到 Web ACL.
-
此时,如果您要向 Web ACL 添加多个规则或规则组,则可以修改 Web ACL 中的规则顺序。
-
选择 Update(更新)。
[WAF.6] WAF 全局规则应至少具有一个条件
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAF::Rule
Amazon Config 规则:waf-global-rule-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF全局规则包含任何条件。如果规则中不存在任何条件,则控制失败。
WAF 全局规则可以包含多个条件。规则的条件允许检查流量并采取已定义的操作(允许、阻止或计数)。没有任何条件,交通未经检查即通过。WAF 全局规则没有条件,但其名称或标签提示允许、封禁或计数,可能会导致错误地假设其中一项操作正在发生。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关创建规则和添加条件的说明,请参阅创建规则和添加条件在里面Amazon WAF开发人员指南.
[WAF.7] WAF 全局规则组应至少有一条规则
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAF::RuleGroup
Amazon Config 规则:waf-global-rulegroup-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF全局规则组至少包含一条规则。如果规则组中不存在任何规则,则控制失败。
一个 WAF 全局规则组可以包含多个规则。规则的条件允许检查流量并采取定义的操作(允许、阻止或计数)。没有任何规则,交通未经检查即通过。WAF 全局规则组没有规则,但其名称或标签提示允许、封禁或计数,可能会导致错误地假设其中一项操作正在发生。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
有关向规则组添加规则的说明,请参阅创建Amazon WAF经典规则组在里面Amazon WAF开发人员指南.
[WAF.8] WAF 全球 Web ACL 应至少包含一个规则或规则组
类别:保护 > 安全网络配置
严重性:中
资源类型 AWS::WAF::WebACL
Amazon Config 规则:waf-global-webacl-not-empty
Schedule 类型 触发器发器
参数:None(无)
此控件检查是否Amazon WAF全局 Web ACL 包含至少一个 WAF 规则或 WAF 规则组。如果 Web ACL 不包含任何 WAF 规则或规则组,则控制失败。
WAF 全球 Web ACL 可以包含一组检查和控制 Web 请求的规则和规则组的集合。如果 Web ACL 为空,则网络流量可以在不被 WAF 检测或处理的情况下通过,具体取决于默认操作。
只有美国东部(弗吉尼亚北部)支持此控件。
修复
向空的 Web ACL 添加规则或规则组
打开Amazon WAF控制台https://console.aws.amazon.com/wafv2/
. -
在导航窗格中,选择切换到Amazon WAFClassic,然后选择Web ACL.
-
对于筛选,选择全局(CloudFront).
-
选择空 Web ACL 的名称。
-
选择Rule,然后选择编辑Web ACL.
-
对于Rule,选择一个规则或规则组,然后选择将规则添加到 Web ACL.
-
此时,如果您要向 Web ACL 添加多个规则或规则组,则可以修改 Web ACL 中的规则顺序。
-
选择 Update(更新)。