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

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

Amazon 基础安全最佳实践控件

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

  • 控件适用的类别和子类别

  • 严重程度

  • 适用资源

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

  • 补救步骤

请注意,控制编号中的间隙表示尚未释放的控件。

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

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

严重性:

资源: ACM 证书

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

参数:

  • daysToExpiration: 30

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

ACM 提供的证书将自动续订。如果您使用的是 ACM 提供的证书,则无需轮换 SSL/TLS 证书。ACM 为您管理证书的续订。

ACM 不会自动续订您导入的证书。您必须手动续订导入的证书。

有关更多信息,请参阅 Amazon Certificate Manager 用户指南中的托管续订

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Milan)

Remediation

ACM 为您的 Amazon 颁发的 SSL/TLS 证书提供了托管续订。这包括通过使用 ACM 颁发的公有和私有证书。如果可能,ACM 会自动续订您的证书,而无需您执行任何操作。如果证书与其他Amazon服务,例如 Elastic Load Balancing 或 Amazon CloudFront。如果自发布或上次续订以来已经导出,也可以续订。

如果 ACM 无法自动验证证书中的一个或多个域名,ACM 会通知域拥有者必须手动验证域。域出于以下原因可能需要手动验证。

  • ACM 无法与域建立 HTTPS 连接。

  • 响应 HTTPS 请求时返回的证书与 ACM 要续订的证书不匹配。

如果证书距过期还有 45 天,并且证书中的一个或多个域名需要手动验证,ACM 将通知域拥有者。

通过电子邮件(对于电子邮件验证的证书)

如果上次是通过电子邮件验证证书的,ACM 将针对需要手动验证的每个域名向域拥有者发送一封电子邮件。为确保能够收到此电子邮件,域拥有者必须为每个域正确配置电子邮件。

有关详细信息,请参阅(可选)为域配置电子邮件。此电子邮件包含一个用于执行验证的链接。此链接将在 72 小时后过期。如有必要,您可以使用 ACM 控制台Amazon CLI或 API 请求 ACM 重新发送域验证电子邮件。有关更多信息,请参阅请求证书续订的域验证电子邮件

重要

电子邮件验证的证书在其最后一个手动验证日期的 825 天后自动续订。825 天之后,要继续续订,域拥有者或授权代表必须手动重新验证域的所有权。为了避免此问题,Security Hub 建议您创建新证书并在可能的情况下使用 DNS 验证。如果配置正确,DNS 验证的证书将无限期地重新验证。

通过您的 中的通知 Amazon Personal Health Dashboard

ACM 将通知发送到您的Amazon Personal Health Dashboard通知您证书中有一个或多个域名需要验证,然后才能续订证书。会在您的证书还有 45 天、30 天、15 天、7 天、3 天和 1 天到期时发送这些通知。这些通知仅作提供信息之用。

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

类别: 识别 > 日志记录

严重性:

资源: 阶段 (v1),阶段 (v2)

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

参数:

此控件检查 Amazon API 网关 REST 或 WebSocket API 的所有阶段是否已启用日志记录。如果没有为阶段的所有方法启用日志记录,或者如果loggingLevel既不是ERRORnorINFO

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

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Europe (Milan)

Remediation

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

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

类别: 保护 > 数据保护

严重性:

资源类型: 阶段 (v1)

Amazon Config 规则:api_gw_ssl_enabled

参数:

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

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

类别: 检测 > 检测服务

严重性:

资源类型: 阶段 (v1)

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

参数:

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

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

类别: 保护 > 保护性服务

严重性:

资源: AWS::ApiGateway::Stage

Amazon Config 规则:api_gw_associated_with_waf

参数:

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[APIGateway .5] API Gateway REST API 缓存数据应在静态加密

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

严重性:

资源: 阶段 (v1)

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

参数:

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

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

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

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Asia Pacific (Osaka)

  • Europe (Milan)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

为指定阶段配置 API 缓存

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

  2. 选择 API。

  3. 选择 Stages (阶段)

  4. 阶段列表中,选择要添加缓存的阶段。

  5. 选择 Settings

  6. 选择 启用 API 缓存

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

  8. 选择 Save Changes

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

类别: 识别 > 清单

严重性:

资源类型: AutoScaling AutoScalingGroup

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

参数:

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

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

Remediation

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

启用 Elastic Load Balancing 运行状况检查

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

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

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

  4. 选择 Edit

  5. UVER运行状况检查, 用于运行状况检查类型中,选择ELB

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

  7. 选择页面底部的更新

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

[CloudFront.1] CloudFront 端发行版应该配置一个默认的根对象

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

严重性: 重大

资源: 分配

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

参数:

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

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持该选项:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

[CloudFront.2] CloudFront 分发应该启用源访问标识

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

严重性:

资源: 分配

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

参数:

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

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持该选项:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

[云端前端 3] 云端分发应在传输过程中需要加密

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

严重性:

资源: 分配

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

参数:

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

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

[云端前端 4] CloudFront 分发应配置源故障转移

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

严重性:

资源: 分配

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

参数:

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

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

[云端前端 5] CloudFront 分发应该已启用日志记录

类别: 识别 > 日志记录

严重性:

资源: AWS::CloudFront::Distribution

Amazon Config 规则:cloudfront_accesslogs_enabled

参数:

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

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

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

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[云前沿 6] CloudFront 发行版应该具有Amazon WAFenabled

类别: 保护 > 保护性服务

严重性:

资源: AWS::CloudFront::Distribution

Amazon Config 规则:cloudfront_associated_with_waf

参数:

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

此控件检查 CloudFront 分发是否与Amazon WAF或者Amazon WAFv2 Web ACL。如果分配未与 Web ACL 关联,则控件将失败。

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

注意

只有美国东部 (弗吉尼亚北部) 支持此控制。以下区域不支持:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[CloudTrail.1] 应启用并配置至少一个多区域跟踪

类别: 识别 > 日志记录

严重性:

资源: 账户

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

参数:

  • readWriteType: ALL

该控制检查是否至少有一个多区域 CloudTrail 跟踪。

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

  • API 调用方的身份

  • API 调用的时间

  • API 调用方的源 IP 地址

  • 请求参数

  • Amazon 服务返回的响应元素

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

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

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

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

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

默认情况下,使用Amazon Web Services Management Console是多区域跟踪。

Remediation

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

在 CloudTrail 中创建新的跟踪

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

  2. 如果您以前未使用过 CloudTrail,请选择立即入门

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

  4. 输入跟踪的名称。

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

    1. 要为 CloudTrail 日志创建新的 S3 存储桶,请对于创建新 S3 存储桶中,选择,然后输入新 S3 存储桶的名称。

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

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

  7. 选择创建

更新 CloudTrail 中的现有跟踪

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

  2. 选择 Trails (跟踪)

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

  4. 适用于管理事件中,选择编辑

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

  6. UVERAPI 活动中,选择Read写入

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

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

严重性:

资源: CloudTrail 跟踪

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

参数:

该控制检查是否将 CloudTrail 配置为使用服务器端加密 (SSE)Amazon Key Management Service客户主密钥 (CMK) 加密。如果定义了 KmsKeyId,则检查通过。

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

Remediation

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

为 CloudTrail 日志启用加密

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

  2. 选择 Trails (跟踪)

  3. 选择要更新的跟踪。

  4. UVER一般详细信息中,选择编辑

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

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

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

    • 要使用现有的密钥,请选择SELECT,然后从Amazon KMSalias下,选择密钥。

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

  7. 选择 Save

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

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

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

严重性:

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

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

参数:

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

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

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

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

Remediation

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

启用 CloudTrail 日志文件验证

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

  2. 选择 Trails (跟踪)

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

  4. UVER一般详细信息中,选择编辑

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

  6. 选择保存更改

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

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

类别: 识别 > 日志记录

严重性:

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

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

参数:

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

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

  • API 调用方的身份

  • API 调用的时间

  • API 调用方的源 IP 地址

  • 请求参数

  • 返回的响应元素Amazon服务

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

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

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

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

Remediation

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

启用 CloudTrail 与 CloudWatch Logs 集成

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

  2. 选择 Trails (跟踪)

  3. 选择没有值的跟踪CloudWatch Logs

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

  5. 选择 Enabled

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

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

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

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

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

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

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

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

  8. 选择保存更改

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

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

类别: 保护 > 安全开发

严重性: 重大

资源: CodeBuild 项目

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

参数:

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

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • Europe (Milan)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

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

Remediation

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

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

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

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

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

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

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

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

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

  8. 选择 Update source (更新源)

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

[CodeBuild.2] CodeBuildBuild.2] 不应包含明文凭证

类别: 保护 > 安全开发

严重性: 重大

资源: CodeBuild 项目

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

参数:

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

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

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • Europe (Milan)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

从 CodeBuild 项目中删除环境变量

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

  2. 展开 Build (构建)

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

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

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

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

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

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

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

  2. 展开 Build (构建)

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

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

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

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

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

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

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

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

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

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

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

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

[Config.1] 应启用 Amazon Config

类别: 识别 > 清单

严重性:

资源: 账户

Amazon Config 规则:

参数:

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

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

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

注意

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

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

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

Remediation

在启用Amazon Config,请将其配置为记录所有资源。

配置 Amazon Config 设置

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

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

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

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

    1. UVER要记录的资源类型中,选择记录此区域支持的所有资源包括全局资源(例如AmazonIAM 资源)

    2. UVERAmazon Config角色,请选择CreateAmazon Config服务相关角色或者从您的账户选择一个角色,然后选择要使用的角色。

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

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

  5. 选择 Next (下一步)

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

  7. 选择 Confirm

有关使用Amazon Config来自 的Amazon CLI,请参阅启用Amazon Config中的 Amazon Config 开发人员指南

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

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

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

严重性: 重大

资源: DMS:ReplicationInstance

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

参数:

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

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

您还应确保访问Amazon DMS实例配置仅限于授权用户。要执行此操作,请限制用户的 IAM 权限以修改Amazon DMS设置和资源。

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

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

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

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

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

  5. 选择创建

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

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

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

严重性:

资源:

Amazon Config 规则:dynamodb-autoscaling-enabled

参数:

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

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

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

注意

此控制在AmazonGovCloud(美国东部)或AmazonGovCloud(美国西部)。

Remediation

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

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

类别: 恢复 > 恢复 > 启用备份

严重性:

资源:

Amazon Config 规则:dynamodb-pitr-enabled

参数:

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

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

Remediation

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

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

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

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

  3. 时间点恢复部分,位置在状态中,选择启用

  4. 选择启用以确认更改。

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

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

严重性:

资源: Cluster

Amazon Config 规则:dax_encryption_enabled

参数:

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

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

Remediation

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

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

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

严重性: 重大

资源: 账户

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

参数:

该控制检查 Amazon 弹性块存储快照是否未公开,这取决于所有人都可进行恢复的能力。

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

要修复此问题,请更新 EBS 快照,使其成为私有快照而不是公用快照。

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

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

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

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

  4. 选择 Private (私有)

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

  6. 选择 Save

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

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

严重性:

资源: EC2 安全组

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

参数:

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

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

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

Remediation

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

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

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

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

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

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

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

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

从默认安全组中删除规则

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

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

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

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

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

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

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

[EC2.3] 挂载的 EBS 卷应进行静态加密

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

严重性:

资源: EC2 卷

Amazon Config 规则:encrypted-volumes

参数:

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

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

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

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

类别: 识别 > 清单

严重性:

资源: EC2 实例

Amazon Config 规则:ec2-stopped-instance

参数:

  • allowedDays: 30

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

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

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

终止 EC2 实例(控制台)

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

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

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

  4. 当系统提示您确认时,选择 Yes, Terminate

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

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

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

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

类别: 识别 > 日志记录

严重性:

资源: EC2 VPC

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

参数:

  • trafficType: REJECT

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

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

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

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

Remediation

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

启用 VPC 流日志记录

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

  2. ListVirtual Private Cloud中,选择您的 VPC

  3. 选择要更新的 VPC。

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

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

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

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

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

  9. 选择创建

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

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

严重性:

资源类型: Amazon账户

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

参数:

该控制检查默认情况下是否为 Amazon Elastic Block Store (Amazon EBS) 启用账户级加密。如果未启用帐户级别加密,控件将失败。

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

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

Remediation

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

针对某个区域配置 Amazon EBS 加密的默认加密

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

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

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

  4. 选择管理

  5. 选择 Enable (启用)。您可以将Amazon带有别名的托管 CMKalias/aws/ebs作为默认加密密钥,或者选择对称的客户托管 CMK。

  6. 选择更新 EBS 加密

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

类别: 保护 > 网络安全

严重性:

资源类型: EC2 实例

Amazon Config 规则:ec2-imdsv2-check

参数:

该控制检查您的 EC2 实例元数据版本是否配置了实例元数据服务版本 2 (IMDSv2)。控件传递如果HttpTokens设置为 “IMDSv2” 所需的。控件失败,如果HttpTokens设置为optional

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

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

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

  • 打开反向代理

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

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

要求在启动新实例时使用 IMDSv2,请按照为新实例配置实例元数据选项中的适用于 Linux 实例的 Amazon EC2 用户指南

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

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

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

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

  4. 选择 Review and Launch

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

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

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

严重性:

资源: EC2 实例

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

参数:

此控制检查 EC2 实例是否具有公有 IP 地址。控件将失败,如果publicIp字段中显示,EC2 实例配置项中支持。此控制仅适用于 IPv4 地址。

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

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

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

Remediation

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

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

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

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

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

撤销弹性 IP 地址的关联

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

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

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

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

  5. 选择取消关联

[EC2.10] Amazon EC2 应配置为使用 VPC 终端节点

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

严重性:

资源: EC2 VPC

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

参数:

  • serviceName: ec2

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

为了改善 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 用户指南

Remediation

要解决该问题,您可以创建一个接口 VPC 终端节点到 Amazon EC2。

从亚马逊 VPC 控制台创建到 Amazon EC2 的接口终端节点

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

  2. 在导航窗格中,选择终端节点

  3. 选择 Create Endpoint

  4. 适用于服务类别中,选择Amazon服务

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

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

  7. 完成以下信息。

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

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

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

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

      • enableDnsHostnames

      • enableDnsSupport

      有关更多信息,请参阅 。查看和更新针对 VPC 的 DNS 支持中的Amazon VPC User Guide

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

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

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

      • 适用于下,输入标签值。

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

  8. 选择Create endpoint

创建接口 VPC 终端节点策略

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

  • 可执行操作的委托人

  • 可执行的操作

  • 可对其执行操作的资源

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

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

类别: 保护 > 网络安全

严重性:

资源类型: Amazon EC2 子网

Amazon Config 规则:subnet_auto_assign_public_ip_disabled

参数:

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

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

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

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

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

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

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

类别: 防止 > 网络安全

严重性:

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

Amazon Config 规则:vpc_network_acl_unused_check

参数:

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

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

如果唯一的关系是网络 ACL 的 VPC,则控制失败。

如果列出了其他关系,则控件通过。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

有关如何删除未使用的网络 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 可能会导致双宿主实例,这意味着具有多个子网的实例。这会增加网络安全复杂性,并引入意外的网络路径和访问。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

分离网络接口

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

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

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

  4. 选择要删除的 ENI。

  5. 操作菜单上,选择Detach

  6. 如果您看到提示是否确实要分离以下网络接口?中,选择Detach

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

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

严重性:

资源: AWS::EC2::SecurityGroup

Amazon Config 规则:vpc_sg_open_only_to_authorized_ports

参数:

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

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

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

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

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

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

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

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

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

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

严重性:

资源: AWS::EC2::SecurityGroup

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

参数:

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

不受限制的访问 (0.0.0.0/0) 增加了恶意活动的机会,例如黑客攻击、拒绝服务攻击和数据丢失。

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

  • 3389 (RDP)

  • 第 20 条、第 21 条

  • 22 (SSH)

  • 23 (远程登录)

  • 110 (流行第三次)

  • 143 (地图)

  • 3306 (MySQL)

  • 8080 (代理)

  • 1433、1434

  • 9200 或 9300 (弹性搜索)

  • 5601 (基巴纳)

  • 25 (SMTP)

  • 445 (到岸价格)

  • 135 (经常性)

  • 4333

  • 5432 (后期)

  • 5500(物流中心-高效率-SRVR1)

注意

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[ECS.1] 亚马逊云服务器任务定义应具有安全联网模式和用户定义

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

严重性:

资源: AWS::ECS::TaskDefinition

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

参数:

此控件检查具有主机网络模式的 Amazon ECS 任务定义是否也具有 “特权” 或 “用户” 容器定义。对于具有主机网络模式和容器定义的任务定义,该控件将失败,其中权限 = false 或为空,而 user=root 或为空。

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

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

[ECS.2] 亚马逊云服务器服务不应自动为其分配公有 IP 地址

类别: 保护 > 安全网络配置 > 无法公有访问的资源

严重性:

资源: AWS::ECS::Service

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

参数:

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

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

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

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

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

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

严重性:

资源: EFS 文件系统

Amazon Config 规则:efs-encrypted-check

参数:

该控制检查 Amazon Elastic File System 是否将配置为使用Amazon KMS。在以下情况下,检查失败。

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

[EFS.2] 亚马逊 EFS 卷应在备份计划中

类别: 恢复 > 恢复 > Backup

严重性:

资源类型: EFS FileSystem

Amazon Config 规则:efs_in_backup_plan

参数:

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

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

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Europe (Milan)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

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

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

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

    这些区域有:文件系统详细信息页面。

  3. List常规中,选择编辑

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

  5. 选择保存更改

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

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

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

严重性:

资源类型: Environment

Amazon Config 规则:beanstalk_enhanced_health_reporting_enabled

参数:

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

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

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

[弹性蜂窝 2] 应启用 Elastic Beanstalk 管理平台更新

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

严重性:

资源类型: Environment

Amazon Config 规则:elastic_beanstalk_managed_updates_enabled

参数:

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

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

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

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

严重性:

资源: ELB 负载均衡器

Amazon Config 规则:elb_tls_https_listeners_only

参数:

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

如果 Classic Load Balancer 侦听器配置了 TLS 或 HTTPS 用于前端连接,则控制将通过。

如果监听程序未配置 TLS 或 HTTPS 用于前端连接,则控件将失败。

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

Remediation

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

将所有不兼容的侦听器更改为 TLS/HTTPS 侦听器

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

  2. 在导航窗格中,选择 Load Balancers。然后选择您的 Classic Load Balancer。

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

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

  5. 对于所有已修改的侦听器,在SSL 证书中,选择变更

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

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

  8. 更新所有监听程序后,选择Save

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

类别: 保护 > 网络安全

严重性:

资源类型: ELB 负载均衡器

Amazon Config 规则:alb_http_drop_invalid_header_enabled

参数:

此控件评估Amazon应用程序负载平衡器 (ALB) 来确保它们被配置为删除无效的 HTTP 标头。控件将失败,如果routing.http.drop_invalid_header_fields.enabled设置为false

默认情况下,不会将 ALB 配置为删除无效的 HTTP 标头值。删除这些标头值可防止 HTTP 不同步攻击。

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Asia Pacific (Osaka)

  • Europe (Milan)

Remediation

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

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

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

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

  3. 选择 Application Load Balancer。

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

  5. List删除无效标头字段中,选择启用

  6. 选择 Save

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

类别: 日志系统

严重性:

资源: ELB 负载均衡器

Amazon Config 规则:elb-logging-enabled

参数:

此控件检查应用 Application Load Balancer 和 Classic Load Balancer 是否启用了日志记录。控件失败,如果access_logs.s3.enabledfalse

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

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

Remediation

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

启用访问日志

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

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

  3. 选择 Application Load Balancer。

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

  5. List访问日志中,选择启用

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

  7. 选择 Save

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

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

严重性:

资源: Elbv2 负载均衡器

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

参数:

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

启用删除保护以防止您的 Application Load Balancer 被删除。

Remediation

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

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

从控制台启用删除保护

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

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. Description 选项卡上,选择 Edit attributes

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

  6. 选择 Save

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

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

类别: 恢复 > 弹性

严重性:

资源: AWS::ElasticLoadBalancing::LoadBalancer

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

参数:

此控件检查传统负载均衡器是否启用了连接耗尽。

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

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

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

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

严重性:

资源: Elbv2 负载均衡器

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

参数:

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

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

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

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

  3. 选择 Application Load Balancer。

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

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

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

  7. 选择 HTTPS,然后输入 443

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

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

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

严重性:

资源类型: EMR:Cluster

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

参数:

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

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

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

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

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

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

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

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

[ES.1] 弹性搜索域应在 已启用休息

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

严重性:

资源: Elasticsearch 域

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

参数:

该控制检查 Amazon Elasticsearch Service (Amazon ES) 域是否具有加密条件-at-已启用休息配置。如果未启用静态加密,检查将失败。

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

要了解有关 Elasticsearch 加密的更多信息,请 休息,请参阅静态数据 Amazon Elasticsearch Service中的Amazon Elasticsearch Service 开发人员指南

注意

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

Remediation

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

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

静态数据加密需要 Amazon ES 5.1 或更高版本。有关对 Amazon ES 静态数据进行静态加密的更多信息,请参阅Amazon Elasticsearch Service 开发人员指南

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

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

严重性: 重大

资源类型: Elasticsearch 域

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

参数:

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

VPC 内部署的 Amazon ES 域可以通过私有Amazon网络,而无需遍历公共互联网。此配置通过限制对传输中数据的访问来增强安全状况。VPC 提供了大量网络控制,以保护对 Amazon ES 域的访问,包括网络 ACL 和安全组。Security Hub 建议您将 Amazon ES 公有域迁移到 VPC,以利用这些控制。

Remediation

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

请参阅从公开访问迁移到 VPC 访问中的Amazon Elasticsearch Service 开发人员指南

[ES.3] Amazon Elasticsearch Service 域应对节点之间发送的数据进行加密

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

严重性:

资源类型: Elasticsearch 域

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

参数:

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

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

此配置可能会导致性能损失。在启用此选项之前,您应该了解并测试性能权衡。

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Milan)

Remediation

节点到节点加密只能在新域中启用。要修正此发现,请首先创建新的域节点到节点加密复选框已选中。然后跟随使用快照迁移数据将您的数据迁移到新域。

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

类别: 识别-日志记录

严重性:

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

Amazon Config 规则:elasticsearch_logs_to_cloudwatch

参数:

  • logtype = 'error'

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

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

注意

以下区域不支持此控制:

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[ES.5] 弹性搜索域应启用审核日志记录

类别: 识别 > 日志记录

严重性:

资源: AWS::Elasticsearch::Domain

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

参数:

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

    这个规则是NON_COMPLIANT如果未在此参数列表中指定弹性搜索域的 CloudWatch Logs 组。

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

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

注意

以下区域不支持此控制:

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

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

[ES.6] 弹性搜索域应至少有三个数据节点

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

严重性:

资源: AWS::Elasticsearch::Domain

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

参数:

此控件检查 Elasticsearch 域是否配置了至少三个数据节点和zoneAwarenessEnabledtrue

Elasticsearch 域至少需要三个数据节点才能实现高可用性和容错。部署具有至少三个数据节点的 Elasticsearch 域可确保节点发生故障时的群集操作。

注意

以下区域不支持此控制:

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

修改 Amazon ES 域中数据节点数

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

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

  3. 选择 Edit domain (编辑域)

  4. List数据节点,设置节点数设置为大于或等于 3 的数字。

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

  5. 选择 Submit

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

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

严重性:

资源: AWS::Elasticsearch::Domain

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

参数:

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

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

注意

以下区域不支持此控制:

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

修改 Elasticsearch 域中专用主节点的数量

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

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

  3. 选择 Edit domain (编辑域)

  4. List专用主节点,设置实例类型设置为所需的实例类型。

  5. Set主节点数等于三个或更多。

  6. 选择 Submit

[ES.8] 与弹性搜索域的连接应使用 TLS 1.2 进行加密

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

严重性:

资源: AWS::Elasticsearch::Domain

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

参数:

此控件检查是否需要连接到 Elasticsearch 域才能使用 TLS 1.2。检查失败,如果弹性搜索域TLSSecurityPolicy不是策略最小 TLS-1-2-2019-07。

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

注意

以下区域不支持此控制:

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

要启用 TLS 加密,请使用UpdateElasticsearchDomainConfigAPI 操作来配置DomainEndpointOptions,以便设置TLSSecurityPolicy。有关更多信息,请参阅 。Amazon Elasticsearch Service 开发人员指南

[GuardDuty.1] 应启用 GuardDuty 职责

类别: 检测 > 检测服务

严重性:

资源: 账户

Amazon Config 规则:guardduty-enabled-centralized

参数:

该控制检查是否在您的 GuardDuty 账户和区域中启用了亚马逊卫军职务。

强烈建议您在 GuardDuty 支持的Amazon-区域。这样做将允许 GuardDuty 生成有关未授权或异常活动的结果,甚至在您未主动使用的区域中也可以。这还将允许 GuardDuty Trail 监控全局 CloudTrail 事件Amazon服务(如 IAM)。

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Milan)

  • Middle East (Bahrain)

  • Amazon GovCloud (US-East)

Remediation

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

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

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

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

严重性:

资源: IAM 策略

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

参数:

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

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

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

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

您应删除语句中包含"Effect": "Allow" 替换为"Action": "*"OVER"Resource": "*"

Remediation

要修复该问题,请更新 IAM 策略,使其不允许完全 “*” 管理权限。

修改 IAM 策略

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

  2. 选择策略

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

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

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

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

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

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

严重性:

资源: IAM 用户

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

参数:

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

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

Remediation

要解决该问题,请创建 IAM 组,向该组分配策略,然后将用户添加到该组。策略将应用于组中的每一位用户。

创建 IAM 组

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

  2. 选择 Groups (组),然后选择 Create New Group (创建新组)

  3. 输入要创建的组的名称,然后选择 Next Step (下一步)

  4. 选择要分配给该组的每个策略,然后选择 Next Step (下一步)。选择的策略应包括当前直接附加到用户账户的任何策略。

  5. 将用户添加到组,然后将策略分配给该组。然后,分配给组的策略将分配给组中的每一位用户。

  6. 确认 Review (审核) 页面上的详细信息,然后选择 Create Group (创建组)

有关创建组的更多信息,请参阅。创建 IAM 组中的IAM 用户指南

将用户添加到 IAM 组

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

  2. 选择 Groups (组)

  3. 选择组操作,然后选择 Add Users to Group (向组添加多个用户)

  4. 选择要添加到组的用户,然后选择 Add Users (添加用户)

有关向组中添加用户的更多信息,请参阅在 IAM 组中添加和删除用户中的IAM 用户指南

删除直接附加到用户的策略

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

  2. 选择 Users (用户)

  3. 对于要分离其策略的用户,在 User name (用户名)列中选择其名称。

  4. 对于 Attached directly (直接附加的策略) 下列出的每个策略,选择页面右侧的 X(从用户删除该策略),然后选择删除

  5. 确认用户仍可按预期使用 Amazon 服务。

[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次

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

严重性:

资源: IAM 用户

Amazon Config 规则:access-keys-rotated

参数:

  • maxAccessKeyAge:90

该控制检查是否在 90 天内轮换了活动访问密钥。

我们强烈建议您不要在账户中生成和删除所有访问密钥。建议的最佳做法是创建一个或多个 IAM 角色,或使用联合身份验证。您可以使用这些方法允许用户使用其现有的公司凭证登录 Amazon Web Services Management Console 和 Amazon CLI。

每种方法都有其使用案例。对于现在已有中心目录或计划需要超过当前用户限额的企业,联合身份通常更好。运行在Amazon环境需要访问密钥才能对Amazon资源的费用。

但是,如果需要提供编程访问的资源在 Amazon 内部运行,则最佳做法是使用 IAM 角色。通过角色,您可以授予资源访问权限,而无需在配置中硬编码访问密钥 ID 和私有访问密钥。

要了解有关保护访问密钥和帐户的详细信息,请参阅管理的最佳实践Amazon访问密钥中的Amazon一般参考。另请参阅博客文章在使用编程访问时保护 Amazon 账户的指南

如果您已有访问密钥,Security Hub 建议您每 90 天轮换一次访问密钥。轮换访问密钥可减少他人使用遭盗用账户或已终止账户关联的访问密钥的风险。这还可以确保无法使用可能已丢失、遭破解或被盗用的旧密钥访问数据。轮换访问密钥后,始终更新您的应用程序。

访问密钥包含一个访问密钥 ID 和一个私有访问密钥。它们用于对您向Amazon。Amazon用户需要自己的访问密钥以编程方式调用Amazon来自 的Amazon CLI、Tools (适用于 Windows PowerShell 的工具)Amazon开发工具包,或使用单个 API 操作的直接 HTTP 调用Amazon服务。

如果您的组织使用 Amazon Web Services Single Sign On (Amazon Web Services SSO),则用户可以登录到 Active Directory、内置 Amazon Web Services SSO 目录或连接到 Amazon Web Services SSO 的其他身份提供商 (IdP)。然后,它们可以映射到 IAM 角色,使它们能够在Amazon CLI命令或调用AmazonAPI 操作,无需 IAM 用户访问密钥。要了解更多信息,请参阅配置Amazon CLI要使用的Amazon Web Services Single Sign On中的Amazon Command Line Interface用户指南

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

若要修复此问题,请替换超过 90 天的任何密钥。

确保访问密钥的使用时长不超过 90 天

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

  2. 选择 Users (用户)

  3. 对于显示 Access key age (访问密钥使用期限) 超出 90 天的每个用户,选择用户名来打开该用户的设置。

  4. 选择 Security credentials (安全凭证)

  5. 为用户创建新的密钥:

    1. 选择创建访问密钥

    2. 要保存密钥内容,请下载秘密访问密钥,或者选择 Show (显示),然后从页面中复制该密钥。

    3. 将密钥存储在安全位置以提供给用户。

    4. 选择 Close (关闭)

  6. 更新使用上一个密钥的所有应用程序以使用新密钥。

  7. 对于上一个密钥,请选择 Make inactive (转为非活跃) 来使访问密钥转为非活动状态。用户现在无法使用该密钥发出请求。

  8. 确认使用新密钥的所有应用程序都能按预期工作。

  9. 确认所有应用程序都使用新密钥后,删除以前的密钥。访问密钥一经删除,就无法恢复。

    要删除上一个密钥,请在行末尾选择 X,然后选择 Delete (删除)

[IAM.4] IAM 根用户访问密钥不应存在

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

严重性: 重大

资源: 账户

Amazon Config 规则:iam-root-access-key-check

参数:

该控制检查 root 用户访问密钥是否存在。

根账户是 Amazon 账户中权限最高的用户。Amazon 访问密钥提供对特定账户的编程访问。

Security Hub 建议您删除与根账户关联的所有访问密钥。这会限制可用于破坏账户的向量。它还鼓励创建和使用最小权限的基于角色的账户。

注意

非洲(开普敦)不支持该控制。

Remediation

要修复此问题,请删除 root 用户访问密钥。

删除访问密钥

  1. 登录您的账户使用 Amazon Web Services 账户 根用户凭证。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Access keys (access key ID and secret access key) (访问密钥 (访问密钥 ID 和秘密访问密钥))

  5. 要永久删除密钥,请选择 Delete (删除),然后选择 Yes (是)。您无法恢复已删除的密钥。

  6. 如果有多个 root 用户访问密钥,则对每个密钥重复步骤 4 和 5。

[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA

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

严重性:

资源: IAM 用户

Amazon Config 规则:mfa-enabled-for-iam-console-access

参数:

该控制检查Amazon已为使用控制台密码的所有 IAM 用户启用多重身份验证 (MFA)。

多重身份验证 (MFA) 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 Amazon 网站时,系统会提示输入用户名和密码。此外,系统还会提示用户从他们 Amazon MFA 设备输入身份验证代码。

我们建议为拥有控制台密码的所有账户启用 MFA。MFA 旨在为控制台访问提供更高的安全性。身份验证委托人必须拥有发放具有时效性的密钥的设备,并且必须知道凭证。

Remediation

若要修复此问题,请将 MFA 添加到尚未具有 MFA 的用户。

为用户配置 MFA

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

  2. 选择 Users (用户)

  3. 选择要为其配置 MFA 的用户的User name (用户名)

  4. 选择 Security credentials (安全凭证)

  5. Assigned MFA device (已分配 MFA 设备) 旁边,选择 Manage (管理)

  6. 跟随管理 MFA 设备向导指定适合您环境的设备类型。

要了解如何将 MFA 设置委派给用户,请参阅博客文章如何将多重身份验证的管理委托给AmazonIAM 用户

[IAM.6] 应该为根用户启用硬件 MFA

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

严重性: 重大

资源: 账户

Amazon Config 规则:root-account-hardware-mfa-enabled

参数:

该控制检查您的Amazon账户可使用硬件多重验证 (MFA) 设备通过根用户凭证登录。

虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息,请参阅启用虚拟 Multi-Factor Authentication (MFA) 设备(控制台)中的IAM 用户指南

注意

以下区域不支持此控制。

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • AmazonGovCloud(美国西部)。

Remediation

若要修复此问题,请将基于硬件的 MFA 添加到根帐户。

为根账户启用基于硬件的 MFA

  1. 使用根用户凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Multi-Factor Authentication (MFA)

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的基于硬件(非虚拟)的设备,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

[IAM.7] IAM 用户的密码策略应具有可靠的配置

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

严重性:

资源: 账户

Amazon Config 规则:iam-password-policy

参数:

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 8

该控制检查 IAM 用户的账户密码策略是否使用以下推荐的配置。

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 8

要访问Amazon Web Services Management Console,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合身份验证,而不是创建 IAM 用户。联合允许用户使用其现有的公司凭证登录Amazon Web Services Management Console。使用Amazon Web Services Single Sign On(Amazon Web Services SSO)创建或联合用户,然后将 IAM 角色代入账户。

要了解有关身份提供商和联合的更多信息,请参阅身份提供商和联合中的IAM 用户指南。要了解有关 Amazon Web Services SSO 的更多信息,请参阅 Amazon Web Services Single Sign On 用户指南

如果您需要使用 IAM 用户,Security Hub 建议您强制创建强用户密码。您可以在Amazon帐户,以便指定密码的复杂性要求和强制轮换期。创建或更改密码策略时,大多数密码策略设置会在用户下次更改其密码时实施。一些设置将立即实施。要了解更多信息,请参阅为 IAM 用户设置账户密码策略中的IAM 用户指南

Remediation

若要修复此问题,请更新密码策略以使用建议的配置。

修改密码策略

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

  2. 选择 Account settings (账户设置)

  3. 选择 Requires at least one uppercase letter (至少必须包含一个大写字母)

  4. 选择 Requires at least one lowercase letter (至少必须包含一个小写字母)

  5. 选择 Requires at least one non-alphanumeric character (至少需要一个非字母数字字符)

  6. 选择 Requires at least one number (至少需要一个数字)

  7. 对于 Minimum password length (最短密码长度),请输入 8

  8. 选择 Apply password policy (应用密码策略)

[IAM.8] 应删除未使用的 IAM 用户证书

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

严重性:

资源: IAM 用户

Amazon Config 规则:iam-user-unused-credentials-check

参数:

  • maxCredentialUsageAge:90

该控制检查您的 IAM 用户是否拥有 90 天内尚未使用的密码或活动访问密钥。

IAM 用户可以访问Amazon资源使用不同类型的凭证(例如密码或访问密钥)。

Security Hub 建议您删除或停用 90 天或更长时间未使用的所有凭证。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。

Remediation

要获取监控账户过期凭证所需的一些信息,请使用 IAM 控制台。例如,当您查看账户中的用户时,会显示 Access key age (访问密钥使用期限)Password age (密码使用期限)Last activity (上次活动时间)。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户账户和识别 90 天或更长时间没有活动的账户。您可以通过以下网址下载凭证报告:.csv格式。有关凭证报告的更多信息,请参阅获取您的凭证报告Amazon账户中的IAM 用户指南

确定非活动账户或未使用的凭证后,请使用以下步骤禁用它们。

禁用非活动帐户的凭据

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

  2. 选择 Users (用户)

  3. 选择凭证超过 90 天的用户的名称。

  4. 选择 Security credentials (安全凭证)

  5. 对于至少 90 天内未使用的每个登录凭据和访问密钥,请选择使非活动状态

[IAM.21] 您创建的 IAM 客户管理策略不应允许对服务执行通配符操作

类别: 检测 > 安全访问管理

严重性:

资源: IAM 策略

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

参数:

此控件检查您创建的基于身份的 IAM 策略是否具有允许语句,这些语句使用 * 通配符授予对任何服务的所有操作的权限。如果任何策略语句包含"Effect": "Allow"替换为"Action": "Service:*"

例如,策略中的以下语句会导致查找失败。

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

此控件仅适用于客户托管的 IAM 策略。它不适用于由Amazon。

当您将权限分配给Amazon服务,请务必确定 IAM 策略中允许的 IAM 操作的范围。您应将 IAM 操作限制为仅适用于所需的操作。这可帮助您设置最低权限。如果策略附加到可能不需要权限的 IAM 委托人,那么过度权限的策略可能会导致权限提升。

在某些情况下,您可能希望允许具有类似前缀的 IAM 操作,例如DescribeFlowLogsDescribeAvailabilityZones。在这些授权的情况下,您可以将后缀通配符添加到通用前缀。例如:ec2:Describe*

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

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

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

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

要修复该问题,请更新 IAM 策略,使其不允许完全 “*” 管理权限。

有关如何编辑 IAM 策略的详细信息,请参阅。编辑 IAM 策略中的IAM 用户指南

[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥执行解密操作

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

严重性:

资源: IAM 策略

Amazon Config 规则:iam_customer_policy_blocked_kms_actions

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查 IAM 客户托管策略的默认版本是否允许委托人使用Amazon KMS对全部资源的解密操作。此控件使用叶尔科娃,这是一个自动推理引擎,用于验证和警告您有关策略,这些策略可能允许您在Amazon帐户。

此控件将失败,如果kms:Decrypt或者kms:ReEncryptFrom操作是允许对所有 KMS 密钥执行的。该控件评估已连接和未连接的客户管理策略。它不检查内联策略或Amazon托管策略。

与Amazon KMS,您可以控制哪些人可以使用客户主密钥 (CMK) 并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵守安全最佳实践,Amazon建议您允许最小的权限。换而言之,您应向身份授予kms:Decrypt或者kms:ReEncryptFrom权限,并仅适用于执行任务所需的密钥。否则,用户可能会使用不适合您的数据的密钥。

确定用户访问加密数据所需的最小密钥集,而不是授予所有密钥的权限。然后设计允许用户仅使用这些密钥的策略。例如,不允许kms:Decrypt对所有 KMS 密钥的权限。相反,允许kms:Decrypt仅限于您账户的特定区域中的密钥。通过采用最低权限原则,您可以降低意外泄露数据的风险。

Remediation

要解决此问题,请修改 IAM 客户托管策略以限制对密钥的访问。

修改 IAM 客户托管策略

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

  2. 在 IAM 导航窗格中,选择策略

  3. 选择要修改的策略旁边的箭头。

  4. 选择编辑策略

  5. 选择 JSON 选项卡。

  6. “Resource”值设置为要允许的特定键。

  7. 修改策略后,选择查看策略

  8. 选择保存更改

有关更多信息,请参阅 。将 IAM 策略与Amazon KMS中的Amazon Key Management Service开发人员指南

[KMS.2] IAM 委托人不应具有允许对所有 KMS 密钥进行解密操作的 IAM 内联策略

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

严重性:

资源:

  • IAM 角色

  • IAM 用户

  • IAM 组

Amazon Config 规则:iam_inline_policy_blocked_kms_actions

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查嵌入在您的 IAM 身份(角色、用户或组)中的内联策略是否允许Amazon KMS对所有 KMS 密钥进行解密操作。此控件使用叶尔科娃,这是一个自动推理引擎,用于验证和警告您有关策略,这些策略可能允许您在Amazon帐户。

此控件将失败,如果kms:Decrypt或者kms:ReEncryptFrom操作是允许对内联策略中的所有 KMS 密钥执行的。

与Amazon KMS,您可以控制哪些人可以使用客户主密钥 (CMK) 并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。遵守安全最佳实践,Amazon建议您允许最小的权限。换句话说,您应仅授予身份所需的权限,并仅授予执行任务所需的密钥。否则,用户可能会使用不适合您的数据的密钥。

确定用户访问加密数据所需的最小密钥集,而不是授予所有密钥的权限。然后设计允许用户仅使用这些密钥的策略。例如,不允许kms:Decrypt对所有 KMS 密钥的权限。相反,只允许在您账户的特定区域中的密钥上使用它们。通过采用最低权限原则,您可以降低意外泄露数据的风险。

Remediation

若要修复此问题,请修改内联策略以限制对密钥的访问。

修改 IAM 内联策略

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

  2. 在 IAM 导航窗格中,选择用户Groups,或者角色

  3. 选择要修改 IAM 内联策略的用户、组或角色的名称。

  4. 选择要修改的策略旁边的箭头。

  5. 选择编辑策略

  6. 选择 JSON 选项卡。

  7. "Resource"值设置为要允许的特定键。

  8. 修改策略后,选择查看策略

  9. 选择保存更改

有关更多信息,请参阅 。将 IAM 策略与Amazon KMS中的Amazon Key Management Service开发人员指南

[千米。3]Amazon KMS密钥不应无意中删除

类别: 保护 > 数据保护 > 数据删除保护

严重性: 重大

资源类型: KMS 密钥

Amazon Config 规则:kms-cmk-not-scheduled-for-deletion

参数:

该控制检查Amazon KMS客户管理密钥 (CMK) 已计划删除。如果计划删除 CMK,控制失败。

删除后,CMK 将无法恢复。如果删除 CMK,使用 KMS CMK 加密的数据也将永久无法恢复。如果有意义的数据已在计划删除的 CMK 下加密,请考虑解密数据或使用新的 CMK 重新加密数据,除非您故意执行加密擦除

当计划删除 CMK 时,如果错误地计划删除,则强制执行强制等待期,以允许有时间撤消删除操作。默认等待时间为 30 天,但在计划删除 KMS CMK 时,它可以缩短为 7 天。在等待期间,可以取消计划的删除,KMS CMK 将不会被删除。

有关删除 CMK 的其他信息,请参阅删除客户主密钥中的Amazon Key Management Service开发人员指南

注意

欧洲(米兰)区域不支持该控制。

Remediation

有关取消计划的 KMS CMK 删除的详细修正说明,请参阅取消密钥删除联系计划和取消密钥删除(控制台)中的Amazon Key Management Service开发人员指南 的第一个版本。

[Lambda.1] Lambda 函数策略应禁止公开访问

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

严重性: 重大

资源: Lambda 函数

Amazon Config 规则:lambda-function-public-access-prohibited

参数:

该控制检查 Lambda 函数基于资源的策略是否禁止您账户之外的公开访问。

Lambda 函数不应可公开访问,因为这可能允许意外访问存储在函数中的代码。

注意

中国(北京)或中国(宁夏)区域不支持该控制。

Remediation

如果 Lambda 函数失败此控件,则表示 Lambda 函数的基于资源的策略语句允许公共访问。

要修正此问题,您必须更新策略。您只能从 Lambda API 更新基于资源的策略。这些说明使用控制台查看策略和Amazon Command Line Interface删除权限。

查看 Lambda 函数的基于资源的策略

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Functions(函数)。

  3. 选择函数。

  4. 选择 Permissions。基于资源的策略显示了在其他账户或 Amazon 服务尝试访问该函数时应用的权限。

  5. 检查基于资源的策略。确定具有Principal字段值,以使策略公开。例如,允许"*"或者{ "AWS": "*" }

    您无法从控制台编辑策略。要从函数中删除权限,您可以使用remove-permission命令,从Amazon CLI。

    请注意语句 ID 的值 (Sid),用于要删除的语句。

使用Amazon CLI从 Lambda 函数中删除权限,请发出remove-permission命令。

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

Replace<function-name>使用 Lambda 函数的名称,并使用<statement-id>替换为要删除的语句的语句 ID。

验证是否已更新权限

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Functions(函数)。

  3. 选择您更新的函数。

  4. 选择 Permissions

    基于资源的策略应加以更新。如果策略中只有一个语句,则该策略为空。

有关更多信息,请参阅 。使用 的基于资源的策略Amazon Lambda中的Amazon Lambda开发人员指南

[Lambda.2] Lambda 函数应该使用支持的运行时

类别: 保护 > 安全开发

严重性:

资源: Lambda 函数

Amazon Config 规则:lambda-function-settings-check

参数:

  • runtime: nodejs14.x, nodejs12.x, nodejs10.x, python3.8, python3.7, python3.6, ruby2.7, ruby2.5, java11, java8, java8.al2, go1.x, dotnetcore3.1, dotnetcore2.1

该控制检查对于支持的各种语言,运行时的 Lambda 函数设置是否匹配支持的运行时的预期值集。该控制检查以下运行时:nodejs14.xnodejs12.xnodejs10.xpython3.8python3.7python3.6ruby2.7ruby2.5java11java8java8.al2go1.xdotnetcore3.1dotnetcore2.1

Lambda 运行时是围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建的。当安全更新不再支持某个运行时组件时,Lambda 将弃用该运行时。虽然您无法创建使用已弃用运行时的函数,但函数仍可用于处理调用事件。确保您的 Lambda 函数是最新的,并且不使用过时的运行时环境。

要了解有关此控件检查支持的语言的受支持运行时的详细信息,请参阅Amazon Lambda运行时中的Amazon Lambda开发人员指南

注意

中国(北京)或中国(宁夏)区域不支持该控制。

Remediation

有关支持的运行时间和弃用计划的更多信息,请参阅运行时支持策略的 部分Amazon Lambda开发人员指南。将运行时迁移到最新版本时,请遵循语言发布者的语法和指导。

[Lambda.4] Lambda 函数应该配置死信队列

类别: 识别 > 日志记录

严重性:

资源类型: AWS::Lambda::Function

Amazon Config 规则:lambda-dlq-check

参数:

  • dlqArns(可选)— 必须配置为 Lambda 函数死信队列目标的 Amazon SQS 和 Amazon SNS ARN 的逗号分隔列表。

该控制检查 Lambda 函数是否配置了死信队列。如果 Lambda 函数未配置死信队列,则控制将失败。

作为失败时的目标的替代,您可以使用死信队列配置函数,以保存丢弃的事件供进一步处理。死信队列的作用与出站故障目标相同。当事件的所有处理尝试都失败或者已过期而未处理时使用。

死信队列允许您回顾对 Lambda 函数的错误或失败请求,以调试或识别异常行为。

从安全角度来看,了解功能失败的原因,并确保函数不会因此丢弃数据或损害数据安全性是非常重要的。例如,如果您的函数无法与底层资源通信,则可能是网络中其他地方遭到拒绝服务 (DoS) 攻击的症状。

注意

亚太地区(大阪)或中国(宁夏)区域不支持该控制。

Remediation

您可以从Amazon Lambda控制台。

配置死信队列

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Functions(函数)。

  3. 选择函数。

  4. 选择 Configuration(配置),然后选择 Asynchronous invocation(异步调用)

  5. Asynchronous invocation (异步调用) 下,选择 Edit (编辑)

  6. SetDLQ 资源添加到 Amazon SQS 或 Amazon SNS。

  7. 选择目标队列或主题。

  8. 选择 Save

[RDS.1] RDS 快照应为私有快照

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

严重性: 重大

资源: RDS 数据库快照

Amazon Config 规则:rds-snapshots-public-prohibited

参数:

该控制检查 Amazon RDS 快照是否是公有的。

此控件适用于 RDS 实例。它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群的快照返回调查结果,即使它们没有针对公共可访问性进行评估。如果这些发现没有用,您可以隐藏它们。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

除非有意这样做,否则 RDS 快照不得为公有快照。如果将未加密的手动快照作为公有快照进行共享,这会使所有Amazon帐户。这可能会导致 RDS 实例意外的数据泄露。

请注意,如果将配置更改为允许公有访问,则 Amazon Config 规则可能在长达 12 小时内无法检测到更改。在 Amazon Config 规则检测到更改之前,即使配置违反了规则,检查也会通过。

要了解有关共享数据库快照的更多信息,请参阅。共享数据库快照中的Amazon RDS 用户指南

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

要修复此问题,请更新 RDS 快照以删除公共访问权限。

删除 RDS 快照的公有访问权限

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 导航到 Snapshots (快照),然后选择要修改的公有快照

  3. Actions (操作) 中,选择 Share Snapshots (共享快照)

  4. DB snapshot visibility (数据库快照可见性) 中,选择 Private (私有)

  5. DB snapshot visibility (数据库快照可见性) 下,选择 all (全部)

  6. 选择 Save

[RDS.2] RDS 数据库实例应禁止公有访问,这取决于 PubliclyAccessible 配置

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

严重性: 重大

资源: RDS 数据库实例

Amazon Config 规则:rds-instance-public-access-check

参数:

该控制通过评估 Amazon RDS 实例是否可以公开访问,通过评估 Amazon RDS 实例PubliclyAccessible字段中的实例配置项目。

Neptune 数据库实例和 Amazon DocumentDB 集群没有PubliclyAccessible标志,并且无法进行评估。但是,此控制仍然可以为这些资源生成调查结果。您可以隐藏这些发现。

RDS 实例配置中的 PubliclyAccessible 值指示是否可以公开访问数据库实例。如果使用 PubliclyAccessible 配置了数据库实例,则它是一个面向 Internet 的实例并具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。如果无法公开访问数据库实例,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。

除非您打算让 RDS 实例可以公开访问,否则 RDS 实例不应使用PubliclyAccessible值。这样做可能会允许不必要的流量进入数据库实例。

Remediation

要修复此问题,请更新 RDS 数据库实例以删除公共访问权限。

从 RDS 数据库实例中删除公有访问权限

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 导航到 Databases (数据库),然后选择公有数据库。

  3. 选择修改

  4. List连接,展开其他连接配置

  5. List公有访问权限中,选择不公开访问

  6. 选择 Continue (继续)

  7. List修改中,选择Apply immediately (立即应用)

  8. 选择修改数据库实例

有关更多信息,请参阅 。在 VPC 中使用数据库实例中的Amazon RDS 用户指南

[RDS.3] RDS 数据库实例应启用静态加密

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

严重性:

资源: RDS 数据库实例

Amazon Config 规则:rds-storage-encrypted

参数:

该控制检查您的 Amazon RDS 数据库实例是否启用了存储加密。

此控件适用于 RDS 数据库实例。但是,它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 群集生成结果。如果这些发现没有用,那么你可以抑制它们。

为了增加 RDS 数据库实例中敏感数据的安全性,您应将 RDS 数据库实例配置为静态加密。要静态加密 RDS DB 数据库实例和快照,请启用 RDS 数据库实例的加密选项。静态加密的数据包括数据库实例的基础存储、其自动化备份、只读副本和快照。

RDS 加密的数据库实例使用开放的标准 AES-256 加密算法,对托管 RDS 数据库实例的服务器上的数据进行加密。在加密数据后,Amazon RDS 将以透明方式处理访问的身份验证和数据的解密,并且对性能产生的影响最小。您无需修改数据库客户端应用程序来使用加密。

Amazon RDS 加密当前可用于所有数据库引擎和存储类型。Amazon RDS 加密适用于大多数数据库实例类。要了解不支持 Amazon RDS 加密的数据库实例类,请参阅Amazon RDS 资源加密 Amazon RDS中的Amazon RDS 用户指南

Remediation

有关在 Amazon RDS 中加密数据库实例的信息,请参阅Amazon RDS 资源加密 Amazon RDS中的Amazon RDS 用户指南

[RDSS.4] RDS 群集快照和数据库快照应在静态加密

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

严重性:

资源类型: DBClusterSnapshot、DBSnapshot

Amazon Config 规则:rds-snapshots-encrypted

参数:

该控制检查 RDS DB 快照是否已加密。

此控件适用于 RDS 数据库实例。但是,它也可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 集群的快照生成结果。如果这些发现没有用,那么你可以抑制它们。

静态加密数据可降低未经身份验证的用户访问磁盘上存储的数据的风险。RDS 快照中的数据应在静态加密,以增加安全层。

Remediation

您可以使用 Amazon RDS 控制台修复此问题。

对未加密的 RDS 快照进行加密

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 查找要加密的快照手动或者系统

  4. 选中要加密的快照旁边的复选框。

  5. 选择操作,然后选择复制快照

  6. List新数据库快照标识符中,键入新快照的名称。

  7. List加密,SELECT启用加密

  8. 选择用于加密快照的 KMS 密钥。

  9. 选择 Copy Snapshot

  10. 创建新快照后,删除原始快照。

  11. 适用于备份保留期中,选择一个正非零值。例如,30 天。

[RDS.5] RDS 数据库实例应配置为多个可用区

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

严重性:

资源类型: DBInstance

Amazon Config 规则:rds-multi-az-support

参数:

该控制检查您的 RDS 数据库实例是否启用了高可用性。

RDS 数据库实例应配置为多个可用区 (AZ)。这可确保存储的数据的可用性。如果可用区可用性存在问题,以及在常规 RDS 维护期间,多可用区部署允许自动进行故障切换。

Remediation

要修复此问题,请更新数据库实例以启用多个可用区。

为数据库实例启用多个可用区域

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。

  3. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  4. List实例规格,设置多可用区部署

  5. 选择Continue,然后检查修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南

  7. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance (修改数据库实例) 保存更改。

[RDSS.6] 应为 RDS 数据库实例和群集配置增强型监控

类别: 检测 > 检测服务

严重性:

资源类型: DBInstance

Amazon Config 规则:rds-enhanced-monitoring-enabled

参数:

该控制检查您的 RDS 数据库实例是否启用了增强监控。

在 Amazon RDS 中,增强型监控可以更快地响应底层基础设施的性能变化。这些性能变化可能会导致数据缺乏可用性。增强监测提供 RDS 数据库实例运行的操作系统的实时指标。实例上安装代理。代理可以比从虚拟机管理程序层获取的指标更准确。

若您想了解数据库实例上不同进程或线程对 CPU 的使用差异,增强监测指标非常有用。有关更多信息,请参阅 。增强监测中的Amazon RDS 用户指南

Remediation

有关如何为数据库实例启用增强监控的详细说明,请参阅设置和启用增强监控中的Amazon RDS 用户指南

[RDSS.7] RDS 集群应启用删除保护

类别: 保护 > 数据保护 > 数据删除保护

严重性:

资源类型: DBCluster

Amazon Config 规则:rds-cluster-deletion-protection-enabled

参数:

该控制检查 RDS 群集是否已启用删除保护。

此控件适用于 RDS 数据库实例。但是,它还可以为 Aurora 数据库实例、Neptune 数据库实例和 Amazon DocumentDB 群集生成结果。如果这些发现没有用,那么你可以抑制它们。

启用集群删除保护是一个额外的保护层,防止未经授权的实体意外删除或删除数据库。

启用删除保护后,无法删除 RDS 集群。在删除请求成功之前,必须禁用删除保护。

注意

以下区域不支持此控制。

  • China (Beijing)

  • China (Ningxia)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)。

Remediation

若要修复此问题,请更新 RDS 数据库群集以启用删除保护。

为 RDS 数据库集群启用删除保护

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库,然后选择您要修改的数据库集群。

  3. 选择修改

  4. List删除保护中,选择启用删除保护

  5. 选择 Continue (继续)

  6. List修改中,选择何时应用修改。选项包括:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  7. 选择 Modify Cluster

[RDS.8] RDS 数据库实例应启用删除保护

类别:保护 > 数据保护 > 数据删除保护

严重性:

资源类型: DBInstance

Amazon Config 规则:rds-instance-deletion-protection-enabled

参数:

  • databaseEngines: mariadb,mysql,oracle-ee,oracle-se2,oracle-se1,oracle-se,postgres,sqlserver-ee,sqlserver-se,sqlserver-ex,sqlserver-web

此控件检查使用列出的数据库引擎之一的 RDS 数据库实例是否启用了删除保护。

启用实例删除保护是一个额外的保护层,防止未经授权的实体意外删除或删除数据库。

启用删除保护后,无法删除 RDS 数据库实例。在删除请求成功之前,必须禁用删除保护。

Remediation

要修复此问题,请更新 RDS 数据库实例以启用删除保护。

为 RDS 数据库实例启用删除保护

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库,然后选择要修改的数据库实例。

  3. 选择修改

  4. List删除保护中,选择启用删除保护

  5. 选择 Continue (继续)

  6. List修改中,选择何时应用修改。选项包括:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  7. 选择修改数据库实例

[RDS.9] 应启用数据库日志记录

类别: 识别 > 日志记录

严重性:

资源: DBInstance

Amazon Config 规则:rds_logging_enabled

参数:

此控件检查是否启用了以下 Amazon RDS 日志并将其发送到 CloudWatch Logs:

  • Oracle:(警报、审核、跟踪、侦听程序)

  • PostgreSQL:(后置,升级)

  • MySQL:(审计、错误、常规、慢查询)

  • MariaDB:(审计、错误、常规、慢查询)

  • SQL Server:(错误,代理)

  • Aurora:(审计、错误、常规、慢查询)

  • 极光-MySQL:(审计、错误、常规、慢查询)

  • 极光-后期:(后置,升级)。

RDS 数据库应启用相关日志。数据库日志记录提供了向 RDS 发出的请求的详细记录。数据库日志可以帮助进行安全和访问审核,并有助于诊断可用性问题。

注意

以下区域不支持此控制:

Africa (Cape Town)

Asia Pacific (Osaka)

China (Ningxia)

Europe (Milan)

Remediation

日志记录选项包含在与 RDS 数据库集群或实例关联的数据库参数组中。要在使用数据库引擎的默认参数组时启用日志记录,必须创建一个具有所需参数值的新数据库参数组。然后,您必须将客户数据库参数组与数据库集群或实例关联。

要启用 MariaDB、MySQL 或 PostgreSQL 日志,并从Amazon Web Services Management Console中,在自定义数据库参数组中设置以下参数:

数据库引擎

参数

MariaDB

general_log=1

slow_query_log=1

log_output = FILE

MariaDB 还需要一个自定义选项组,如下所述。

MySQL

general_log=1

slow_query_log=1

log_output = FILE

PostgreSQL

log_statement=all

log_min_duration_statement=minimum query duration (ms) to log

创建自定义数据库参数组

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 选择创建参数组。将显示创建参数组窗口。

  4. 参数组系列表中,选择一个数据库参数组系列。

  5. 类型列表中,选择DB Parameter Group (数据库参数组)

  6. InGroup name中,输入新数据库参数组的名称。

  7. In说明中,输入新数据库参数组的描述。

  8. 选择创建

使用控制台为 MariaDB 日志记录创建新选项组

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择选项组

  3. 选择创建组

  4. 创建选项组窗口中,执行以下操作:

    1. 对于 Name (名称),输入选项组的名称,在 Amazon 账户内该名称需具有唯一性。此名称只能包含字母、数字和连字符。

    2. 对于说明,输入选项组的简要说明。此说明用于显示说明。

    3. 对于引擎,选择需要的数据库引擎。

    4. 对于主引擎版本,请选择所需的数据库引擎主版本。

  5. 要继续,请选择创建

  6. 选择刚才创建的选项组的名称。

  7. 选择添加选项

  8. 选择MARIADB_AUDIT_PLUGIN来自 的选项名称列表。

  9. SERVER_AUDIT_EVENTS 设置为 CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML, QUERY_DCL

  10. 选择添加选项

要将 SQL Server 数据库、Oracle 数据库或 PostgreSQL 日志发布到 CloudWatch Logs,请从Amazon Web Services Management Console

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. List日志导出下面,选择所有日志文件以开始发布到 CloudWatch Logs。

    日志导出仅适用于支持发布到 CloudWatch Logs 的数据库引擎版本。

  6. 选择 Continue (继续)。然后在摘要页面上,选择修改数据库实例

将新的数据库参数组或数据库选项组应用于 RDS 数据库实例

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  5. List数据库选项中,根据需要更改数据库参数组和数据库选项组。

  6. 完成更改后,选择Continue。检查修改摘要。

  7. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南

  8. 选择修改数据库实例以保存更改。

[RDS.10] 应为 RDS 实例配置 IAM 身份验证

类别: 保护 > 安全访问管理 > 无密码身份验证

严重性:

资源: DBInstance

Amazon Config 规则:rds-instance-iam-authentication-enabled

参数:

此控件检查 RDS 数据库实例是否启用了 IAM 数据库身份验证。

IAM 数据库身份验证允许使用身份验证令牌而不是密码对数据库实例进行身份验证。数据库的出站和进站网络流量是使用 SSL 加密的。有关更多信息,请参阅 。IAM 数据库身份验证中的Amazon Aurora 用户指南

注意

以下区域不支持此控制:

Africa (Cape Town)

Asia Pacific (Hong Kong)

Asia Pacific (Osaka)

China (Beijing)

China (Ningxia)

Remediation

要修复该问题,请更新您的数据库实例以启用 IAM 身份验证。

为现有数据库实例启用 IAM 身份验证

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. List数据库选项中,选择启用 IAM 数据库身份验证

  6. 选择 Continue (继续)

  7. List修改中,选择何时应用修改。选项包括:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  8. 对于群集,请选择修改数据库实例

[RDS.12] 应为 RDS 群集配置 IAM 身份验证

类别: 保护 > 安全访问管理 > 无密码身份验证

严重性:

资源类型: DBClusterDBInstance

Amazon Config 规则:rds_cluster_iam_authentication_enabled

参数:

此控件检查 RDS 数据库集群是否启用了 IAM 数据库身份验证。

IAM 数据库身份验证允许对数据库实例进行无密码身份验证。身份验证使用身份验证令牌。数据库的出站和进站网络流量是使用 SSL 加密的。有关更多信息,请参阅 。IAM 数据库身份验证中的Amazon Aurora 用户指南

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

您可以从 Amazon RDS 控制台为数据库集群启用 IAM 身份验证。

为现有数据库集群启用 IAM 身份验证

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库集群。

  4. 选择修改

  5. List数据库选项,SELECT启用 IAM 数据库身份验证

  6. 选择 Continue (继续)

  7. List修改下,选择何时应用修改:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  8. 选择修改集群

[RDS.13] 应启用 RDS 自动次要版本升级

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

严重性:

资源类型: DBInstance

Amazon Config 规则:rds_automatic_minor_version_upgrade_enabled

参数:

此控件检查是否为 RDS 数据库实例启用了自动次版本升级。

启用次版本自动升级可确保安装关系数据库管理系统 (RDBMS) 的最新次版本更新。这些升级可能包括安全修补程序和错误修复。保持最新补丁程序安装是保护系统安全的一个重要步骤。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

您可以从 Amazon RDS 控制台为数据库实例启用次要版本升级。

为现有数据库实例启用自动次要版本升级

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. List维护,SELECT对于 来说为自动次要版本升级

  6. 选择 Continue (继续)

  7. List修改下,选择何时应用修改:Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  8. 选择修改数据库实例

[RDS S.14] Amazon Aurora 集群应启用回溯跟踪功能

类别: 恢复 > 恢复 > 启用备份

严重性:

资源类型: DBCluster

Amazon Config 规则:aurora-mysql-backtracking-enabled

参数:

此控件检查 Amazon Aurora 集群是否启用了回溯跟踪功能。

备份可帮助您更快地从安全事件中恢复。它们还可以增强系统的弹性。Aurora 回溯可减少将数据库恢复到某个时间点的时间。它不需要数据库还原即可执行此操作。

有关 Aurora 中回溯的更多信息,请参阅回溯 Aurora 数据库集群中的Amazon Aurora 用户指南

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Milan)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

有关如何启用 Aurora 回溯跟踪的详细说明,请参阅配置回溯中的Amazon Aurora 用户指南

请注意,您无法在现有群集上启用回溯。相反,您可以创建启用回溯跟踪的克隆。有关 Aurora 回溯的限制的详细信息,请参阅回溯概述

有关回溯追踪定价的信息,请参阅Aurora 定价页

[RDS.15] RDS 数据库群集应配置为多个可用区

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

严重性:

资源类型: DBCluster

Amazon Config 规则:rds-cluster-multi-az-enabled

参数:

该控制检查您的 RDS 数据库群集是否启用了高可用性。

RDS 数据库群集应配置为多个可用区,以确保存储的数据的可用性。部署到多个可用区允许在出现可用区可用性问题时以及在常规 RDS 维护事件期间进行自动故障切换。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

要修复此控制,请为多个可用区配置数据库群集。

为数据库群集启用多可用区

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库,然后选择要修改的数据库实例。

  3. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  4. List实例规格,设置多可用区部署

  5. 选择继续,查看修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 。使用“立即应用”设置中的Amazon RDS 用户指南

    在确认页面上,检查您的更改。如果它们正确无误,请选择修改数据库实例

[RDS.16] RDS 数据库群集应配置为将标签复制到快照

类别: 识别 > 清单

严重性:

资源: DBCluster

Amazon Config 规则:rds-cluster-copy-tags-to-snapshots-enabled(由 Security Hub 开发的自定义规则)

参数:

此控件检查 RDS 数据库群集是否配置为在创建快照时将所有标签复制到快照。

确定和清点您的 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您所有的 RDS 数据库群集,以评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库集群相同。启用此设置可确保快照继承其父数据库集群的标签。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

启用数据库群集的自动标签复制到快照

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库群集。

  4. 选择修改

  5. List备份,SELECT将标签复制到快照

  6. 选择 Continue (继续)

  7. List修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

[RDS.17] RDS 数据库实例应配置为将标签复制到快照

类别: 识别 > 清单

严重性:

资源: DBInstance

Amazon Config 规则:rds-instance-copy-tags-to-snapshots-enabled(由 Security Hub 开发的自定义规则)

参数:

此控件检查 RDS 数据库实例是否配置为在创建快照时将所有标签复制到快照。

确定和清点您的 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您所有的 RDS 数据库实例,以评估它们的安全态势并对潜在的薄弱领域采取措施。快照的标记方式应与其父 RDS 数据库实例相同。启用此设置可确保快照继承其父数据库实例的标签。

注意

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

启用数据库实例的自动标签复制到快照

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. List备份,SELECT将标签复制到快照

  6. 选择 Continue (继续)

  7. List修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

[RDS.18] RDS 实例应部署在 VPC 中

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

严重性:

资源: DBInstance

Amazon Config 规则:rds-deployed-in-vpc(由 Security Hub 开发的自定义规则)

参数:

此控件检查 RDS 实例是否部署在 VPC 中 (EC2-VPC)。

VPC 提供了许多网络控制,以保护对 RDS 资源的访问。这些控件包括 VPC 终端节点、网络 ACL 和安全组。要利用这些控件,我们建议您将 EC2 经典 RDS 实例移动到 EC2-VPC。

注意

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

有关如何将 RDS 实例移动到 VPC 的详细说明,请参阅更新数据库实例的 VPC中的Amazon RDS 用户指南

[RDS.19] 应为关键群集事件配置 RDS 事件通知订阅

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

严重性:

资源: AWS::RDS::EventSubscription

Amazon Config 规则:rds-cluster-event-notifications-configured(由 Security Hub 开发的自定义规则)

参数:

此控件检查 Amazon RDS 事件订阅是否存在为以下源类型、事件类别键值对启用了通知的通知。

DBCluster: ["maintenance","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源的可用性或配置的变化。这些通知可以快速作出反应。有关 RDS 事件通知的其他信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

订阅 RDS 集群事件通知

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. List事件订阅中,选择创建事件订阅

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于将通知发送到,选择 SNS 主题的现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型中,选择集群

    4. List要包含的实例,SELECT所有集群

    5. List要包括的事件类别,SELECT特定事件类别。如果选择所有事件类别

    6. Select维护失败

    7. 选择创建

[RDS.20] 应为关键数据库实例事件配置 RDS 事件通知订阅

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

严重性:

资源: AWS::RDS::EventSubscription

Amazon Config 规则:rds-instance-event-notifications-configured(由 Security Hub 开发的自定义规则)

参数:

此控件检查 Amazon RDS 事件订阅是否存在并为以下源类型、事件类别键值对启用通知的情况下。

DBInstance: ["maintenance","configuration change","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源可用性或配置的变化。这些通知可以快速作出反应。有关 RDS 事件通知的其他信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

订阅 RDS 实例事件通知

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. List事件订阅中,选择创建事件订阅

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于将通知发送到,选择 SNS 主题的现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型中,选择实例

    4. List要包含的实例,SELECT所有实例

    5. List要包括的事件类别,SELECT特定事件类别。如果选择所有事件类别

    6. Select维护配置更改, 和失败

    7. 选择创建

[RDS.21] 应为关键数据库参数组事件配置 RDS 事件通知订阅

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

严重性:

资源: AWS::RDS::EventSubscription

Amazon Config 规则:rds-pg-event-notifications-configured(由 Security Hub 开发的自定义规则)

参数:

此控件检查 Amazon RDS 事件订阅是否存在并为以下源类型、事件类别键值对启用通知的情况下。

DBParameterGroup: ["configuration change"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源可用性或配置的变化。这些通知可以快速作出反应。有关 RDS 事件通知的其他信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

订阅 RDS 数据库参数组事件通知

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. List事件订阅中,选择创建事件订阅

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于将通知发送到,选择 SNS 主题的现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型中,选择参数组

    4. List要包含的实例,SELECT所有参数组

    5. List要包括的事件类别,SELECT特定事件类别。如果选择所有事件类别

    6. Select配置更改

    7. 选择创建

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

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

严重性:

资源: AWS::RDS::EventSubscription

Amazon Config 规则:rds-sg-event-notifications-configured(由 Security Hub 开发的自定义规则)

参数:

此控件检查 Amazon RDS 事件订阅是否存在并为以下源类型、事件类别键值对启用通知的情况下。

DBSecurityGroup: ["configuration change","failure"]

RDS 事件通知使用 Amazon SNS 让您了解 RDS 资源可用性或配置的变化。这些通知可以快速作出反应。有关 RDS 事件通知的其他信息,请参阅使用 Amazon RDS 事件通知中的Amazon RDS 用户指南

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

订阅 RDS 数据库安全组事件通知

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择事件订阅

  3. List事件订阅中,选择创建事件订阅

  4. 创建事件订阅对话框中,执行以下操作:

    1. 对于名称,输入事件通知订阅的名称。

    2. 适用于将通知发送到,选择 SNS 主题的现有 Amazon SNS ARN。要使用新主题,请选择创建主题输入主题的名称和收件人列表。

    3. 适用于源类型中,选择安全组

    4. List要包含的实例,SELECT所有安全组

    5. List要包括的事件类别,SELECT特定事件类别。如果选择所有事件类别

    6. Select配置更改失败

    7. 选择创建

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

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

严重性:

资源: DBInstance

Amazon Config 规则:rds-no-default-ports(由 Security Hub 开发的自定义规则)

参数:

此控件检查 RDS 集群或实例是否使用数据库引擎的默认端口以外的端口。

如果您使用已知端口部署 RDS 集群或实例,攻击者可以猜测有关该集群或实例的信息。攻击者可以将此信息与其他信息结合使用,以连接到 RDS 集群或实例,或获取有关您的应用程序的其他信息。

更改端口时,还必须更新用于连接到旧端口的现有连接字符串。您还应检查数据库实例的安全组,以确保其中包含允许在新端口上连接的入口规则。

注意

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

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

修改现有数据库实例的默认端口

  1. 在处打开 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要修改的数据库实例

  4. 选择修改

  5. List数据库选项,更改数据库端口设置为非默认值。

  6. 选择 Continue (继续)

  7. List修改中,选择何时应用修改。您可以选择Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)或者Apply immediately (立即应用)

  8. 对于群集,请选择修改集群。对于实例,请选择修改数据库实例

[Redshift.1] Amazon Redshift 集群应禁止公开访问

类别: 保护 > 安全网络配置 > 无法公有访问的资源

严重性: 重大

资源: Cluster

Amazon Config 规则:redshift-cluster-public-access-check

参数:

此控件检查 Amazon Redshift 集群是否可以公开访问。它将评估PubliclyAccessible字段中的集群配置项目。

这些区域有:PubliclyAccessible属性指示集群是否可公开访问。当群集配置了PubliclyAccessible设置为true,它是一个面向 Internet 的实例,它具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。

如果无法公开访问集群,则它是一个内部实例,具有解析为私有 IP 地址的 DNS 名称。除非您打算使集群可公开访问,否则不应使用PubliclyAccessible设置为true

Remediation

要解决此问题,请更新您的 Amazon Redshift 集群以禁用公共访问。

禁用 Amazon Redshift 集群的公开访问

  1. 从打开 Amazon Redshift 控制台https://console.aws.amazon.com/redshift/

  2. 在导航菜单中,选择集群,然后选择包含要修改的安全组的集群的名称。

  3. 选择操作,然后选择修改公开访问设置

  4. List允许 VPC 外部的实例和设备通过集群终端节点连接到您的数据库中,选择

  5. 选择 Confirm

[Redshift.2] 与亚马逊 Redshift 集群的连接应在传输过程中加密

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

严重性:

资源: Cluster

Amazon Config 规则:redshift-require-tls-ssl

参数:

此控件检查是否需要连接到 Amazon Redshift 集群才能在传输过程中使用加密。如果 Amazon Redshift 集群参数,则检查失败require_SSL未将设置为 1。

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

注意

欧洲(米兰)不支持该控制。

Remediation

若要修复此问题,请更新要求加密的参数组。

修改参数组

  1. 从打开 Amazon Redshift 控制台https://console.aws.amazon.com/redshift/

  2. 在导航菜单中,选择Config,然后选择工作负载管理以显示工作负载管理页.

  3. 选择您要修改的参数组。

  4. 选择参数

  5. 选择编辑参数然后设置require_ssl设置设置

  6. 输入所做的更改,然后选择Save

[Redshift 3] Amazon Redshift 集群应启用自动快照

类别: 恢复 > 恢复 > 启用备份

严重性:

资源: Cluster

Amazon Config 规则:redshift-backup-enabled

参数:

  • MinRetentionPeriod = 7

此控件检查 Amazon Redshift 集群是否启用了自动快照。它还会检查快照保留期是否大于或等于 7。

备份可帮助您更快地从安全事件中恢复。它们可以增强您的系统的恢复能力。默认情况下,Amazon Redshift 会定期拍摄快照。该控制检查是否启用了自动快照并至少保留七天。有关 Amazon Redshift 自动制作快照的更多信息,请参阅自动快照中的Amazon Redshift 集群管理指南

注意

以下区域不支持此控制:

  • Africa (Cape Town)

  • Asia Pacific (Osaka)

  • 亚太地区(悉尼)

  • China (Ningxia)

  • Europe (Milan)

Remediation

要修复此问题,请将快照保留期至少更新为 7。

修改快照保留期

  1. 从打开 Amazon Redshift 控制台https://console.aws.amazon.com/redshift/

  2. 在导航菜单中,选择集群,然后选择要修改的集群的名称。

  3. 选择 Edit

  4. List备份,设置快照保留设置为 7 或更大的值。

  5. 选择 Modify Cluster

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

类别: 识别 > 日志记录

严重性:

资源: Cluster

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

参数:

  • loggingEnabled = true

此控件检查 Amazon Redshift 集群是否启用了审核日志记录。

Amazon Redshift 审计日志记录可提供有关您的集群中的连接和用户活动的其他信息。这些数据可以在 Amazon S3 中存储和保护,并且可以在安全审核和调查中有所帮助。有关更多信息,请参阅 。数据库审核日志记录中的Amazon Redshift 集群管理指南

注意

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

启用群集审计日志记录

  1. 从打开 Amazon Redshift 控制台https://console.aws.amazon.com/redshift/

  2. 在导航菜单中,选择集群,然后选择要修改的集群的名称。

  3. 选择维护和监控

  4. List审核日志记录中,选择编辑

  5. Set启用审核日志记录,然后输入日志目标存储桶详细信息。

  6. 选择 Confirm

[Redshift.6] 亚马逊 Redshift 应启用主要版本的自动升级

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

严重性:

资源: Cluster

Amazon Config 规则:redshift-cluster-maintenancesettings-check

参数:

  • allowVersionUpgrade = true

此控件检查是否为 Amazon Redshift 集群启用了自动主版本升级。

启用自动主版本升级可确保在维护窗口期间安装 Amazon Redshift 群集的最新主要版本更新。这些更新可能包括安全修补程序和错误修复。保持最新补丁程序安装是保护系统安全的一个重要步骤。

注意

中东 (巴林) 不支持此控制。

Remediation

若要修复此问题,请从Amazon CLI,请使用 Amazon Redshiftmodify-cluster命令设置--allow-version-upgrade属性。

aws redshift modify-cluster --cluster-identifier clustername --allow-version-upgrade

其中clustername是 Amazon Redshift 集群的名称。

[Redshift .7] Amazon Redshift 集群应使用增强的 VPC 路由

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

严重性:

资源类型: Cluster

Amazon Config 规则:redshift_enhanced_vpc_routing_enabled

参数:

该控制检查 Amazon Redshift 集群是否具有EnhancedVpcRouting已启用。

增强型 VPC 路由强制使用所有COPYUNLOAD群集和数据存储库之间的流量来通过您的 VPC。然后,您可以使用安全组和网络访问控制列表等 VPC 功能来保护网络流量。您还可以使用 VPC Flow Logs 监控网络流量。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

有关详细补救说明,请参阅启用增强型 VPC 路由中的Amazon Redshift 集群管理指南

[S3.1] 应启用 S3 阻止公有访问设置

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

严重性:

资源: 账户

Amazon Config 规则:s3-account-level-public-access-blocks

参数:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

该控制检查是否在账户级别配置了以下 Amazon S3 公有访问阻止 Amazon Virtual Block 设置:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

如果所有公共访问阻止设置都设置为true

如果任何设置设置为false,或者未配置任何设置。当设置没有值时,Amazon Config规则无法完成其评估。

Amazon S3 公有访问阻止旨在为整个Amazon账户或单个 S3 存储桶级别,确保对象永远不会具有公共访问权限。通过访问控制列表 (ACL) 和/或存储桶策略向存储桶和对象授予公有访问权限。

除非您打算让 S3 存储桶可公开访问,否则应配置账户级别 Amazon S3 阻止公共访问功能。

要了解更多信息,请参阅使用 Amazon S3 阻止公有访问中的Amazon Simple Storage Service 开发人员指南

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • Europe (Milan)

  • Middle East (Bahrain)

Remediation

要解决该问题,请启用 Amazon S3 阻止公有访问。

启用 Amazon S3 阻止公有访问

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

  2. 选择 Block public access (account settings) (阻止公有访问(账户设置))

  3. 选择 Edit

  4. SelectBlock全部公有访问权限

  5. 选择保存更改

有关更多信息,请参阅 。使用 Amazon S3 阻止公有访问中的Amazon Simple Storage Service 开发人员指南

[S3.2] S3 存储桶应禁止公开读取访问

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

严重性: 重大

资源: S3 存储桶

Amazon Config 规则:s3-bucket-public-read-prohibited

参数:

该控制检查 S3 存储桶是否允许公共读取访问。它评估阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL)。

有些使用案例要求互联网上的每个人都能够从您的 S3 存储桶中读取数据。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开读取。

Remediation

要修复此问题,请更新 S3 存储桶以删除公共访问权限。

从 S3 存储桶中删除公有访问权限

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

  2. 在左侧导航窗格中,选择存储桶

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择Permissions (权限),然后选择阻止公有访问

  5. 选择 Edit

  6. SelectBlock全部公有访问权限。然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.3] S3 存储桶应禁止公开写入访问

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

严重性: 重大

资源: S3 存储桶

Amazon Config 规则:s3-bucket-public-write-prohibited

参数:

该控制检查 S3 存储桶是否允许公共写入访问。它会对阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL) 进行评估。

有些使用案例要求互联网上的每个人都能写入您的 S3 存储桶。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开写入。

Remediation

要修复此问题,请更新 S3 存储桶以删除公共访问权限。

删除 S3 存储桶的公开访问权限

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

  2. 在左侧导航窗格中,依次选择存储桶

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择Permissions (权限),然后选择阻止公有访问

  5. 选择 Edit

  6. SelectBlock全部公有访问权限。然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.4] S3 存储桶应启用服务器端加密

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

严重性:

资源: S3 存储桶

Amazon Config 规则:s3-bucket-server-side-encryption-enabled

参数:

该控制检查 S3 存储桶是否启用了 Amazon S3 默认加密,或检查 S3 存储桶策略是否明确拒绝没有服务器端加密的放置对象请求。

为了增加 S3 存储桶中敏感数据的安全性,您应将存储桶配置为使用服务器端加密,以保护静态数据。Amazon S3 使用唯一的密钥来加密每个数据元。作为额外的保护,它将使用定期轮换的主密钥对密钥本身进行加密。Amazon S3 服务器端加密使用可用的最强数据块密码之一、256 位高级加密标准 (AES-256) 来加密您的数据。

要了解更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据中的Amazon Simple Storage Service 开发人员指南

Remediation

要修复此问题,请更新 S3 存储桶以启用默认加密。

对 S3 存储桶启用默认加密

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

  2. 在左侧导航窗格中,依次选择存储桶

  3. 从列表中选择 S3 存储桶。

  4. 选择属性

  5. 选择 Default encryption

  6. 对于加密,请选择A-256或者Amazon-KM

    • 选择A-256将由 Amazon S3 托管的密钥用于默认加密。有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅Amazon Simple Storage Service 开发人员指南

    • 选择Amazon-KM以使用由Amazon KMS用于默认加密。然后从已创建的 Amazon KMS 主密钥列表中选择一个主密钥。

      键入要使用的 Amazon KMS 密钥的 Amazon 资源名称 (ARN)。您可以找到 ARNAmazon KMS键,在 IAM 控制台下加密钥。或者,您可以从下拉列表中选择一个键名。

      重要

      如果您将 Amazon KMS 选项用于默认加密配置,则您需要遵循 Amazon KMS 的 RPS(每秒请求数)配额。有关 的更多信息Amazon KMS配额以及如何请求增加配额,请参阅Amazon Key Management Service开发人员指南

      有关创建Amazon KMS键,请参阅Amazon Key Management Service开发人员指南

      有关使用的更多信息Amazon KMSAmazon S3,请参阅Amazon Simple Storage Service 开发人员指南

    在启用默认加密时,您可能需要更新存储桶策略。有关从存储桶策略更改为默认加密的更多信息,请参阅Amazon Simple Storage Service 开发人员指南

  7. 选择 Save

有关默认 S3 存储桶加密的更多信息,请参阅Amazon Simple Storage Service 控制台用户指南

[S3.5] S3 存储桶应要求请求使用安全套接字层

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

严重性:

资源: S3Bucket

Amazon Config 规则:s3-bucket-ssl-requests-only

参数:

该控制检查 S3 存储桶是否具有需要请求使用安全套接字层 (SSL) 的策略。

S3 存储桶应具有要求所有请求(Action: S3:*),以仅接受 S3 资源策略中通过 HTTPS 传输数据,由条件键指示aws:SecureTransport

Remediation

若要修复此问题,请更新 S3 存储桶的权限策略。

将 S3 存储桶配置为拒绝非安全传输

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

  2. 导航到不合规的存储桶,然后选择存储桶名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. 在下面的策略中添加类似的策略声明。Replaceawsexamplebucket替换为您要修改的存储桶的名称。

    { "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSSLRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }
  5. 选择 Save

有关更多信息,请参阅知识中心文章要符合Amazon Config规则 s3-bucket-ssl-requests-仅限?

[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列表。

Remediation

要修复此问题,请编辑 S3 存储桶策略以删除权限。

编辑 S3 存储桶策略

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

  2. Bucket name列表中,选择要编辑策略的 S3 存储桶的名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. 存储桶策略编辑器文本框中,执行以下操作之一:

    • 删除将对被拒绝操作的访问权限授予其他Amazon账户

    • 从语句中删除允许的被拒绝操作

  5. 选择 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 阻止公共访问功能。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

有关如何在存储桶级别删除公共访问的信息,请参阅阻止对您的 Amazon S3 存储的公有访问中的Amazon S3 用户指南中)

[SageMaker.1] SageMaker 笔记本实例不应具有直接互联网访问权限

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

严重性:

资源: SageMaker:NotebookInstance

Amazon Config 规则:sagemaker-notebook-no-direct-internet-access

参数:

该控制检查 SageMaker 笔记本实例是否禁用了直接 Internet 访问。要做到这一点,它会检查DirectInternetAccess字段为笔记本实例禁用。

如果您在没有 VPC 的情况下配置 SageMaker 实例,则默认情况下会在您的实例上启用直接互联网访问。您应该使用 VPC 配置您的实例,并将默认设置更改为禁用 — 通过 VPC 访问 Internet

要从笔记本电脑培训或托管模型,您需要互联网连接。要启用 Internet 访问,请确保您的 VPC 拥有 NAT 网关并且安全组允许出站连接。要了解有关如何将笔记本实例连接到 VPC 中的资源的更多信息,请参阅。将笔记本实例 Connect 到 VPC 中的资源中的Amazon SageMaker 开发人员指南

您还应该确保将对 SageMaker 配置的访问限制为仅授权的用户。限制用户的 IAM 权限以修改 SageMaker 设置和资源。

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Milan)

  • Amazon GovCloud (US-East)

Remediation

请注意,创建笔记本实例后,您无法更改 Internet 访问设置。必须停止、删除和重新创建它。

将 SageMaker 笔记本实例配置为拒绝直接访问互联网

  1. 从打开 SageMaker 控制台https://console.aws.amazon.com/sagemaker/

  2. 导航到笔记本实例

  3. 删除启用了直接互联网访问的实例。选择实例,选择操作”,然后选择 “停止”。

    在实例停止后,选择操作,然后选择delete

  4. 选择创建笔记本实例。提供配置详细信息。

  5. 展开网络区域,然后选择 VPC、子网和安全组。List直接 Internet 访问中,选择禁用 — 通过 VPC 访问 Internet

  6. 选择创建笔记本实例

有关更多信息,请参阅 。将笔记本实例 Connect 到 VPC 中的资源中的Amazon SageMaker 开发人员指南

[Secrets Manager .1] 秘密管理器机密应启用自动旋转

类别: 保护 > 安全开发

严重性:

资源: Secrets Manager 密钥

Amazon Config 规则:secretsmanager-rotation-enabled-check

参数:

该控制检查存储在Amazon Secrets Manager配置为自动旋转。

Secrets Manager 可帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 SSecrets Manager 集中存储密文、自动加密密文、控制对密文的访问以及安全、自动地旋转密文。

Secrets Manager 可以旋转秘密。您可以使用旋转来将长期密钥替换为短期密钥。旋转您的秘密可以限制未经授权的用户使用受泄露的密钥的时间。因此,您应该经常旋转机密。要了解有关旋转的更多信息,请参阅旋转您的配方Amazon Secrets Manager密钥中的Amazon Secrets Manager用户指南

Remediation

若要修复此问题,您可以启用自动轮换您的密码。

为密码启用自动旋转

  1. 打开 SSecrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 要查找需要旋转的密钥,请在搜索字段中输入密钥名称。

  3. 选择要旋转的密钥,其中显示机密详细信息页面。

  4. 请参阅旋转配置中,选择编辑旋转

  5. 编辑旋转配置中,选择启用自动旋转

  6. 适用于选择旋转间隔中,选择一个旋转间隔。

  7. 选择一种 Lambda 函数进行旋转。有关自定义 Lambda 旋转函数的信息,请参阅了解和自定义您的 Lambda 旋转功能中的Amazon Secrets Manager用户指南

  8. 要配置旋转密钥,请选择下一步

要了解有关 Secrets Manager 旋转的更多信息,请旋转您的配方Amazon Secrets Manager密钥中的Amazon Secrets Manager用户指南

[Secrets Manager .2] 配置了自动旋转的秘密管理器密码应成功旋转

类别: 保护 > 安全开发

严重性:

资源: Secrets Manager 密钥

Amazon Config 规则:secretsmanager-scheduled-rotation-success-check

参数:

该控制检查Amazon Secrets Manager秘密旋转成功基于轮换计划。控件失败,如果RotationOccurringAsScheduledfalse。该控件不评估未配置旋转的密码。

Secrets Manager 可帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 SSecrets Manager 集中存储密文、自动加密密文、控制对密文的访问以及安全、自动地旋转密文。

Secrets Manager 可以旋转秘密。您可以使用旋转来将长期密钥替换为短期密钥。旋转您的秘密可以限制未经授权的用户使用受泄露的密钥的时间。因此,您应该经常旋转机密。

除了配置密码以自动旋转外,还应确保这些密码根据轮换计划成功旋转。

要了解有关旋转的更多信息,请参阅旋转您的配方Amazon Secrets Manager密钥中的Amazon Secrets Manager用户指南

Remediation

如果自动旋转失败,则 Secrets Manager 可能遇到配置错误。

要在密钥管理器中轮换密钥,您可以使用 Lambda 函数来定义如何与拥有密钥的数据库或服务交互。

有关如何诊断和修复与密钥旋转相关的常见错误的帮助,请参阅故障排除Amazon Secrets Manager轮换密钥中的Amazon Secrets Manager用户指南

[Secrets Manager .3] 删除未使用的秘密管理器机密

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

严重性:

资源类型: Secrets Manager 密钥

Amazon Config 规则:secretsmanager_secret_unused

参数:

该控制检查是否在指定的天数内访问了密钥。默认值为 90 天。如果在定义的天数内甚至访问了一次密钥,则此控制将失败。

删除未使用的机密与旋转机密一样重要。未使用的秘密可能会被他们以前的用户滥用,他们不再需要访问这些秘密。另外,随着越来越多的用户访问密钥,可能会有人处理不当,并将密钥泄露给未经授权的实体,这会增加滥用的风险。删除未使用的密钥有助于撤销不再需要它的用户的秘密访问。它还有助于降低使用 Secrets Manager 的成本。因此,定期删除未使用的机密是至关重要的。

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

您可以从 Secret Manager 控制台中删除非活动密钥。

删除非活动密钥

  1. 打开 SSecrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 要查找密码,请在搜索框中输入密码名称。

  3. 选择要删除的密钥。

  4. 请参阅秘密详细信息, 来自于操作中,选择删除密钥

  5. 请参阅计划密钥删除中,输入密钥删除之前等待的天数。

  6. 选择计划删除

[秘密管理员 .4] Secrets Manager 机密应在指定的天数内轮换

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

严重性:

资源: Secrets Manager 密钥

Amazon Config 规则:secretsmanager_secret_periodic_rotation

参数:

  • 轮换周期:默认为 90 天

该控制检查您的秘密是否在 90 天内被轮换了一次。

旋转的秘密可以帮助您减少未经授权使用您的秘密的风险Amazonaccount. 示例包括数据库凭证、密码、第三方 API 密钥,甚至是任意文本。如果您的密钥有很长一段时间未更改,密钥泄露的可能性就会增大。

随着越来越多的用户访问密钥,可能会越来越多,有人处理不当,并已将密钥泄露给未经授权的实体。密钥可能会通过日志和缓存数据泄露出去。密钥可能会共享用于调试目的,但在调试完成后未更改或撤销。出于所有这些原因,密钥应该频繁地轮换。

您可以将密码配置为自动旋转Amazon Secrets Manager。通过自动旋转,您可以将长期密钥替换为短期密钥,从而显著减少泄露风险。

Security Hub 建议您启用密码 Secrets Manager 码的轮换。要了解有关旋转的更多信息,请参阅旋转您的配方Amazon Secrets Manager密钥中的Amazon Secrets Manager用户指南

注意

以下区域不支持此控制:

  • Asia Pacific (Osaka)

  • China (Beijing)

  • China (Ningxia)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

您可以在 Secret Manager 控制台中启用自动密钥轮换。

启用密钥轮换

  1. 打开 SSecrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 要查找密钥,请在搜索框中输入密钥名称。

  3. 选择要显示的密钥。

  4. 请参阅旋转配置中,选择编辑旋转

  5. 编辑旋转配置中,选择启用自动旋转

  6. 选择旋转间隔中,选择旋转间隔。

  7. 选择用于旋转的 Lambda 函数。

  8. 选择 Next (下一步)

  9. 配置密钥以进行自动旋转后,在旋转配置中,选择立即旋转秘密

[SNS.1] SNS 主题应使用Amazon KMS

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

严重性:

资源: Amazon SNS 主题

Amazon Config 规则:sns-encrypted-kms

参数:

此控件检查 SNS 主题是否使用Amazon KMS。

对静态数据进行加密可降低存储在磁盘上的数据被用户访问的风险Amazon。它还添加了另一组访问控制,以限制未经授权的用户访问数据的能力。例如,在读取数据之前,需要 API 权限才能对数据进行解密。SNS 主题应进行静态加密以增加安全层。有关更多信息,请参阅 。静态加密中的Amazon Simple Notification Service 开发人员指南

Remediation

若要修复此问题,请更新 SNS 主题以启用加密。

对未加密的 SNS 主题进行加密

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择 Topics

  3. 选择要加密的主题的名称。

  4. 选择 Edit

  5. 请参阅加密中,选择启用加密

  6. 选择用于加密主题的 KMS 密钥。

  7. 选择保存更改

[SQS.1] Amazon SQS 队列应在静态加密

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

严重性:

资源: AWS::SQS::Queue

Amazon Config 规则:sqs-queue-encrypted(由 Security Hub 开发的自定义规则)

参数:

  • KmsKeyAliasList (可选). Security Hub 不填充此参数。由逗号分隔的客户托管列表Amazon KMS密钥别名,用于加密队列。

    例如:”alias/myKey“。

    这个规则是NON_COMPLIANT如果用于加密队列的密钥未在此参数列表中指定。

此控件检查 Amazon SQS 队列是否已静态加密。

借助服务器端加密 (SSE),您可以采用加密队列的方式传输敏感数据。为了保护队列中的消息内容,SSE 使用Amazon KMS。有关更多信息,请参阅 。静态加密中的Amazon Elasticue Service 开发人员指南

注意

此控件仍在发布过程中。它可能尚未在支持的所有区域中提供。

Remediation

有关使用Amazon Web Services Management Console,请参阅为队列(控制台)配置服务器端加密 (SSE)中的Amazon Elasticue Service 开发人员指南

[SSM.1] EC2 实例应由Amazon Systems Manager

类别: 识别 > 清单

严重性:

资源: EC2 实例

Amazon Config 规则:ec2-instance-managed-by-systems-manager

参数:

该控制检查您账户中的 EC2 实例是否由Amazon Systems Manager。Systems Manager 是Amazon服务,可用于查看和控制Amazon基础设施。

为了帮助您维护安全性和合规性,Systems Manager 扫描您的托管实例。托管实例是一个配置为与 Systems Manager 一起使用的机器。然后,Systems Manager 就检测到的任何策略违规报告或采取纠正措施。Systems Manager 还可帮助您配置和维护托管实例。

要了解更多信息,请参阅Amazon Systems Manager用户指南

Remediation

您可以使用 Systems Manager 控制台来修复此问题。

确保 EC2 实例由 Systems Manager 管理

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 选择 Quick setup (快速设置)

  3. 在配置屏幕上,保留默认选项。

  4. 选择 Enable

要确定您的实例是否支持 Systems Manager 关联,请参阅Systems Manager 的先决条件中的Amazon Systems Manager用户指南

[SSM.2] 由 Systems Manager 管理的所有 EC2 实例都应符合修补要求

类别: 检测 > 检测服务

严重性:

资源: SSM 补丁合规性

Amazon Config 规则:ec2-managedinstance-patch-compliance-status-check

参数:

该控制检查 Amazon EC2 Systems Manager 补丁合规性的合规性状态是否为COMPLIANT或者NON_COMPLIANT在实例上安装修补程序之后。它仅检查 Systems Manager 管理的实例。

根据您的组织要求对 EC2 实例进行完全修补,可减少 Amazon 账户面临的攻击面。

注意

以下区域不支持此控制。

  • Africa (Cape Town)

  • Europe (Milan)

  • Middle East (Bahrain)

Remediation

要修复此问题,请在不符合要求的实例上安装所需的修补程序。

修复不合规的补丁

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 请参阅节点管理中,选择Run Command,然后选择运行命令

  3. 选择旁边的按钮Amazon-运行补丁基线

  4. Operation (操作) 改为 Install (安装)

  5. 选择 Choose instances manually (手动选择实例),然后选择不合规的实例。

  6. 在页面底部选择 Run (运行)

  7. 在该命令完成后,要监控修补的实例的新合规性状态,请在导航窗格中选择 Compliance (合规性)

有关使用 Systems Manager 文档修补托管实例的更多信息,请参阅关于适用于修补实例的 SSM 文档使用 Systems Manager 运行命令中的Amazon Systems Manager用户指南

[SSM.3] 由 Systems Manager 管理的实例的关联合规性状态应为符合

类别: 检测 > 检测服务

严重性:

资源: AwsSSMAssociationCompliance

Amazon Config 规则:ec2-managedinstance-association-compliance-status-check

参数:

该控制检查Amazon Systems Manager关联合规性COMPLIANT或者NON_COMPLIANT在实例上运行关联之后。如果关联合规性状态为COMPLIANT

状态 Manager 关联是分配给托管实例的配置。该配置定义要在实例上保持的状态。例如,关联可以指定必须在实例上安装并运行防病毒软件,或必须关闭特定端口。

创建一个或多个状态管理器关联之后,合规性状态信息将立即向您提供。您可以在控制台中查看合规性状态,也可以响应Amazon CLI命令或相应的 Systems Manager API 操作。对于关联,配置合规性将显示合规性状态 (Compliant或者Non-compliant)。它还将显示分配给关联的严重性级别,如Critical或者Medium

要了解有关状态管理器关联合规性的更多信息,请关于 State Manager 关联合规性中的Amazon Systems Manager用户指南

注意

非洲(开普敦)或欧洲(米兰)不支持该控制。

Remediation

失败的关联可能与不同的内容相关,包括目标和 SSM 文档名称。若要修复此问题,您必须首先确定并调查该关联。然后,您可以更新关联以更正特定问题。

您可以编辑关联以指定新名称、计划、严重级别或目标。编辑关联后,Amazon Systems Manager 将创建新版本。

调查和更新失败的关联

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中的节点管理中,选择队列管理

  3. 选择具有关联状态已失败

  4. 选择查看详细信息

  5. 选择Associations

  6. 注意关联的名称,该关联具有关联状态已失败。这是您需要调查的关联。您需要在下一个步骤中使用关联名称。

  7. 在导航窗格中的节点管理中,选择状态管理器。搜索关联名称,然后选择关联。

  8. 确定问题后,编辑失败的关联以纠正问题。有关如何编辑关联的信息,请参阅编辑关联

有关创建和编辑状态管理器关联的详细信息,请参阅在 Systems Manager 中使用关联中的Amazon Systems Manager用户指南

[WAF.1]Amazon WAF应启用经典的全局 Web ACL 日志记录

类别: 识别 > 日志记录

严重性:

资源: AWS::WAF::WebACL

Amazon Config 规则:waf-classic-logging-enabled

参数:

该控制检查是否为Amazon WAF全局 Web ACL。如果未为 Web ACL 启用日志记录,此控件将失败。

记录是保持可靠性、可用性和性能的重要环节。Amazon WAF在全球。这是许多组织的业务和合规性要求,并允许您对应用程序行为进行故障排除。它还提供了有关通过 Web ACL 分析的流量的详细信息,该 ACL 附加到Amazon WAF。

注意

注意

以下区域不支持此控制:

  • US East (Ohio)

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

  • 美国西部(俄勒冈)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太区域(东京)

  • Canada (Central)

  • China (Beijing)

  • China (Ningxia)

  • Europe (Frankfurt)

  • 欧洲(爱尔兰)

  • Europe (London)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • 南美洲(圣保罗)

  • Amazon GovCloud (US-East)

  • Amazon GovCloud (US-West)

Remediation

您可以从 Kinesis Data Firehose 控制台启用 Web ACL 的日志记录。

为 Web ACL 启用日志记录

  1. 打开 Kinesis Data Firehose 控制台,网址为https://console.aws.amazon.com/firehose/

  2. 创建 Kinesis Data Firehose 传输流。

    名称必须以前缀开头aws-waf-logs- 例如:aws-waf-logs-us-east-2-analytics

    创建 Kinesis Data Firehose 传输流PUT源和您经营的区域中的 Create。如果您为 Amazon CloudFront 捕获日志,请在美国东部 (弗吉尼亚北部) 创建传送流。有关更多信息,请参阅 。创建 Amazon Kinesis Data Firehose 传输流中的Amazon Kinesis Data Firehose 开发人员指南

  3. 服务中,选择WAF & Shield。然后选择 。切换到Amazon WAFClassic

  4. 筛选条件中,选择全球(CloudFront)

  5. 选择 Web ACL 以启用日志记录。

  6. 请参阅日志记录中,选择Enable logging (启用日志记录)

  7. 选择您之前创建的 Kinesis Data Firehose 传输流。您必须选择名称以开头的传递流aws-waf-logs-

  8. 选择启用日志记录