AWS 基础安全最佳实践控件 - AWS Security Hub
[ACM.1] 导入的 ACM 证书应在指定时间段后续订[AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用负载均衡器运行状况检查[CloudTrail.1] CloudTrail 应启用并配置至少一个多区域跟踪[CloudTrail.2] CloudTrail 应启用静态加密[CodeBuild.1] CodeBuild GitHub 或 Bitbucket 源存储库 URLs 应使用OAuth[CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证[Config.1] 应启用 AWS Config[DMS.1] Database Migration Service 复制实例不应是公有实例[EC2.1] Amazon EBS 快照不应公开,这取决于所有人都可进行恢复的能力[EC2.2] VPC 默认安全组不应允许入站和出站流量 [EC2.3] 挂载的 EBS 卷应进行静态加密[EC2.4] 停止的 EC2 实例应在指定时间段后删除[EC2.6] 应在所有VPCs中启用 VPC 流日志记录 [EC2.7] 应启用 EBS 默认加密[EC2.8] EC2 实例应使用IMDSv2[EFS.1] Amazon EFS 应配置为使用 AWS KMS 对文件数据静态加密[ELBV2.1] 应用程序负载均衡器 应配置为将所有 HTTP 请求重定向到 HTTPS[EMR.1] Amazon EMR 集群主节点不应具有公有 IP 地址[ES.1] Elasticsearch 域应启用静态加密[GuardDuty.1] 应启用 GuardDuty[IAM.1] IAM 策略不应允许完全“*”管理权限[IAM.2] IAM 用户不应附加 IAM 策略[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次[IAM.4] 不应存在 IAM 根用户访问密钥[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA[IAM.6] 应该为根用户启用硬件 MFA[IAM.7] IAM 用户的密码策略应具有可靠的配置[IAM.8] 应删除未使用的 IAM 用户凭证[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥执行解密操作[KMS.2] IAM 委托人不应具有允许对所有 KMS 密钥执行解密操作的 IAM 内联策略 [Lambda.1] Lambda 函数应禁止其他账户的公开访问[Lambda.2] Lambda 函数应该使用最新的运行时[RDS.1] RDS 快照应为私有快照[RDS.2] RDS 数据库实例应禁止公有访问,这取决于 PubliclyAccessible 配置[RDS.3] RDS 数据库实例应启用静态加密[RDS.4] RDS 集群快照和数据库快照应进行静态加密[RDS.5] 应使用多个可用区配置 RDS 数据库实例[RDS.6] 应该为 RDS 数据库实例和集群配置增强监控[RDS.7] RDS 集群应启用删除保护[RDS.8] RDS 数据库实例应启用删除保护[S3.1] 应启用 S3 阻止公有访问设置[S3.2] S3 存储桶应禁止公开读取访问[S3.3] S3 存储桶应禁止公开写入访问[S3.4] S3 存储桶应启用服务器端加密[S3.5] S3 存储桶应要求请求使用安全套接字层[S3.6] 应限制在存储桶策略中向其他 Amazon S3 账户授予的 AWS 权限[SageMaker.1] SageMaker 笔记本实例不应具有直接 Internet 访问权限[SecretsManager.1] Secrets Manager 密钥应启用自动轮换[SecretsManager.2] 使用自动轮换配置的 Secrets Manager 密钥应成功轮换[SSM.1] EC2 实例应由 AWS Systems Manager 管理[SSM.2] 由 Systems Manager 管理的所有 EC2 实例都应符合修补要求[SSM.3] 由 Systems Manager 管理的实例应具有 COMPLIANT 的关联合规性状态
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

AWS 基础安全最佳实践控件

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

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

  • 严重程度

  • 适用资源

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

  • 补救步骤

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

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

严重性:

资源: ACM 证书

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

参数:

  • daysToExpiration: 30

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

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

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

有关更多信息,请参阅 https://docs.amazonaws.cn/acm/latest/userguide/managed-renewal.html 中的托管续订AWS Certificate Manager 用户指南。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国 (宁夏)

  • 欧洲(米兰)

Remediation

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

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

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

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

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

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

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

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

重要

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

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

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

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

类别: 标识 > 清单

严重性: Low

资源类型: AutoScaling AutoScalingGroup

AWS 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.amazonaws.cn/ec2/

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

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

  4. 选择 Edit (编辑)

  5. Health checks (运行状况检查) 下,对于 Health check type (运行状况检查类型),选择 ELB

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

  7. 选择页面底部的更新

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

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

类别: Identity (标识) > Logging (日志记录)

严重性:

资源: Account

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

参数:

  • readWriteType: ALL

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

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

  • API 调用方的身份

  • API 调用的时间

  • API 调用方的源 IP 地址

  • 请求参数

  • AWS 服务返回的响应元素

CloudTrail 提供了账户的 AWS API 调用历史记录,包括从 AWS 管理控制台、AWS SDKs 和命令行工具进行的 API 调用。历史记录还包括来自更高级别 AWS 服务(如 AWS CloudFormation)的 API 调用。

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

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

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

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

Remediation

在 CloudTrail 中创建新的跟踪

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 如果以前未使用过 CloudTrail,请选择 Get Started Now (立即开始使用)

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

  4. 输入跟踪的名称。

  5. 对于 Apply trail to all regions (对所有区域应用跟踪),选择 Yes (是)

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

    1. 要为 CloudTrail 日志创建新的 S3 存储桶,对于 Create a new S3 bucket (创建新的 S3 存储桶),请选择 Yes (是),然后输入新 S3 存储桶的名称。

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

  7. 选择 Advanced (高级)。对于 Enable log file validation (启用日志文件验证),选择 Yes (是)

  8. 选择创建

更新 CloudTrail 中的现有跟踪

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

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

  4. 对于 Trail settings (跟踪设置),请选择铅笔图标。

  5. 对于 Apply trail to all regions (对所有区域应用跟踪),选择 Yes (是),然后选择 Save (保存)

  6. 对于 Management events (管理事件),请选择铅笔图标。

  7. 对于 Read/Write events (读写事件),选择 All (全部),然后选择 Save (保存)

  8. 对于 Storage location (存储位置),请选择铅笔图标。

  9. 对于 Enable log file validation (启用日志文件验证),选择 Yes (是),然后选择 Save (保存)

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

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

严重性:

资源: CloudTrail 跟踪

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

参数:

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

为了增加敏感 CloudTrail 日志文件的安全性,您应使用带有 AWS KMS 托管密钥 (SSE-KMS) 的服务器端加密来对 CloudTrail 日志文件进行静态加密。请注意,默认情况下,CloudTrail 提交到您存储桶的日志文件是用 Amazon S3 托管加密密钥 (SSE-S3) 通过 Amazon 服务器端加密进行加密的

Remediation

为 CloudTrail 日志启用加密

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. 选择要更新的跟踪。

  4. Storage location (存储位置) 下,选择铅笔图标以编辑设置。

  5. 对于 Encrypt log files with SSE-KMS (使用 SSE-KMS 加密日志文件),选择 Yes (是)

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

    • 要创建密钥,请选择 Yes (是),然后在 KMS key (KMS 密钥) 字段中输入密钥的别名。密钥在与存储桶相同的区域中创建。

    • 要使用现有密钥,请选择 No (否),然后从 KMS 密钥列表中选择密钥。

    注意

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

  7. 选择 Save (保存)

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

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

类别: 保护 > 安全开发

严重性: 重大

资源:CodeBuild 项目

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

参数:

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

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

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

Remediation

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

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

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

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

  4. 选择从 GitHub/Bitbucket 断开连接

  5. 选择使用 OAuth 连接,然后选择连接到 GitHub / Bitbucket

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

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

  8. 选择 Update source (更新源)

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

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

类别: 保护 > 安全开发

严重性: 重大

资源:CodeBuild 项目

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

参数:

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

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

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

Remediation

删除环境变量

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

  2. 展开 Build (构建)

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

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

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

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

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

将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中,然后从构建规范中检索它们

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

  2. 展开 Build (构建)

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

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

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

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

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

  8. 返回到 CodeBuild 控制台,然后选择 Create environmental variable (创建环境变量)

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

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

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

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

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

有关更多信息,请参阅 https://docs.amazonaws.cn/codebuild/latest/userguide/build-env-ref-env-vars.html 中的构建环境中的环境变量AWS CodeBuild 用户指南。

[Config.1] 应启用 AWS Config

类别: 标识 > 清单

严重性:

资源: Account

AWS Config 规则:

参数:

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

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

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

注意

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

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

要了解更多信息,请参阅 中的 AWS Config 入门AWS Config Developer Guide

Remediation

配置 AWS Config 设置

  1. 通过以下网址打开 AWS Config 控制台:https://console.amazonaws.cn/config/

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

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

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

    1. Resource types to record (要记录的资源类型) 下,选择 Record all resources supported in this region (记录此区域支持的所有资源)Include global resources (e.g., AWS IAM resources) (包括全局资源(例如 AWS IAM 资源)

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

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

    4. AWS Config role (IAM 角色) 下,选择 Create AWS Config service-linked role (创建 IAM 服务相关角色)Choose a role from your account (从您的账户中选择一个角色),然后选择要使用的角色。

  5. 选择 Next (下一步)

  6. AWS Config rules (CloudWatch 规则) 页面上,选择 Skip (跳过)

  7. 选择 Confirm (确认)

有关从 AWS Config 使用 AWS CLI 的更多信息,请参阅 中的AWS Config启用 AWS Config Developer Guide

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

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

严重性: 重大

资源: DMS:ReplicationInstance

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

参数:

该控制检查 AWS DMS 复制实例是否公有。为此,它会检查 PubliclyAccessible 字段的值。

私有复制实例具有无法从复制网络外部访问的私有 IP 地址。当源数据库和目标数据库位于同一网络中时,复制实例应具有私有 IP 地址。该网络还必须使用 VPN、AWS Direct Connect 或 VPC 对等连接到复制实例的 VPC。要了解有关公有和私有复制实例的更多信息,请参阅 https://docs.amazonaws.cn/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate 中的公有和私有复制实例AWS Database Migration Service 用户指南。

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

注意

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

Remediation

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

配置 AWS DMS 复制实例设置以阻止公有访问

  1. https://console.amazonaws.cn/dms/ 打开 AWS Database Migration Service 控制台。

  2. 导航到复制实例,然后删除公有实例。选择实例,选择 Actions,然后选择 delete

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

  4. 要禁用公有访问,请确保未选择 Publicly accessible (公开访问)

  5. 选择创建

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

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

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

严重性: 重大

资源: Account

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

参数:

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

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

注意

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

Remediation

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

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

  4. 选择 Private (私有)

  5. (可选)添加授权账户的 AWS 账号以与之共享快照,然后选择 Add Permission (添加权限)

  6. 选择 Save (保存)

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

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

严重性:

资源: EC2 安全组

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

参数:

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

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

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

Remediation

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

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

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

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

  3. 为资源创建一组最小权限安全组。有关如何创建安全组的详细信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups 中的创建安全组Amazon VPC 用户指南。

  4. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  5. 在 Amazon EC2 控制台上,将使用默认安全组的资源的安全组更改为您创建的最小权限安全组。请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#SG_Changing_Group_Membership 中的更改实例的安全组Amazon VPC 用户指南。

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

从默认安全组中删除规则

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

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

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

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

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

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

有关更多信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups 中的使用安全组Amazon VPC 用户指南。

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

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

严重性:

资源: EC2 卷

AWS Config 规则:encrypted-volumes

参数:

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

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

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

注意

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

Remediation

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

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

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

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

类别: 标识 > 清单

严重性:

资源: EC2 实例

AWS Config 规则:ec2-stopped-instance

参数:

  • allowedDays: 30

该控制检查任何 EC2 实例是否已停止超过允许的天数。如果 EC2 实例的停止时间超过了允许的最大时间段(默认为 30 天),则该检查失败。

失败的结果表示 EC2 实例长时间未运行。这会产生安全风险,因为 EC2 实例未主动维护(已分析、修补、更新)。如果它稍后启动,则缺少正确的维护可能会导致您的 AWS 环境中出现意外的问题。要在一段时间内安全地将 EC2 实例维护为未运行状态,请定期启动该实例以进行维护,然后在维护后将其停止。理想情况下,这是一个自动化过程。

注意

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

Remediation

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

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

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

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

终止 EC2 实例 (控制台)

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择实例,然后依次选择 ActionsInstance StateTerminate

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

终止 EC2 实例(AWS CLI、Windows PowerShell 工具)

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

要了解有关终止实例的更多信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console 中的终止实例Amazon EC2 用户指南(适用于 Linux 实例)。

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

类别: Identity (标识) > Logging (日志记录)

严重性:

资源: EC2 VPC

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

参数:

  • trafficType: REJECT

该控制检查是否为 Amazon VPC 找到和启用 VPCs 流日志。 流量类型设置为 Reject

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

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

默认情况下,该记录包括 IP 地址流的不同组件的值,包括源、目标和协议。有关日志字段的更多信息和说明,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/flow-logs.html 中的 VPC 流日志Amazon VPC 用户指南。

Remediation

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

启用 VPC 流日志记录

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. Virtual Private Cloud 下,选择 Your VPCs (您的环境)

  3. 选择要更新的 VPC。

  4. 在页面底部,选择 Flow Logs (流日志)

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

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

  7. 对于 Destination log group (目标日志组),选择要使用的日志组。

  8. 对于 IAM role (IAM 角色),选择要使用的 IAM 角色。

  9. 选择创建

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

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

严重性:

资源类型:AWS Account

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

参数:

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

为您的账户启用加密后,将对 Amazon EBS 卷和快照副本进行静态加密。这为数据增加了一层额外的保护。有关更多信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default 中的默认加密Amazon EC2 用户指南(适用于 Linux 实例)。

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

Remediation

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

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

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 在页面的右上角,选择 Account Attributes, EBS encryption (账户属性,EBS 加密)

  4. 选择管理

  5. 选择 Enable (启用)。您可以将别名为 AWS 的 alias/aws/ebs 托管 CMK 保留为默认加密密钥,或选择对称客户托管 CMK。

  6. 选择更新 EBS 加密

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

类别: 保护 > 网络安全

严重性:

资源类型: EC2 实例

AWS Config 规则:ec2-imdsv2-check

参数:

该控制检查您的 EC2 实例元数据版本是否配置了实例元数据服务版本 2 (IMDSv2)。如果 HttpTokens 设置为 IMDSv2 必需,则控制通过。 如果 HttpTokens 设置为 optional,则控制失败。

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

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

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

  • 打开反向代理

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

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

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

注意

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

Remediation

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

在请求实例元数据时,如果要求在现有实例上使用 IMDSv2,请修改 Amazon EC2 元数据选项。按照 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html 中的为现有实例配置实例元数据选项Amazon EC2 用户指南(适用于 Linux 实例)中的说明操作。

要在启动新实例时要求在它上使用 IMDSv2,请按照 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html 中的Amazon EC2 用户指南(适用于 Linux 实例)为新实例配置实例元数据选项中的说明操作。

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

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch instance (启动实例),然后选择 Launch instance (启动实例)

  3. Configure Instance Details 步骤中,在 Advanced Details 下,对于 Metadata version,选择 V2 (token required)

  4. 选择 Review and Launch

如果您的软件使用 IMDSv1,您可以重新配置软件以使用 IMDSv2。 有关详细信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-transition-to-version-2 中的转换为使用实例元数据服务版本 2Amazon EC2 用户指南(适用于 Linux 实例)。

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

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

严重性:

资源: EFS 文件系统

AWS Config 规则:efs-encrypted-check

参数:

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

请注意,此控件不会为 KmsKeyIdefs-encrypted-check 使用 参数。 它仅检查 Encrypted 的值。

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

注意

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

Remediation

有关如何加密新的 Amazon EFS 文件系统的详细信息,请参阅 https://docs.amazonaws.cn/efs/latest/ug/encryption-at-rest.html 中的静态加密数据Amazon Elastic File System 用户指南。

[ELBV2.1] 应用程序负载均衡器 应配置为将所有 HTTP 请求重定向到 HTTPS

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

严重性:

资源: Elbv2 负载均衡器

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

参数:

该控制检查是否在 Application Load Balancer 的所有 HTTP 侦听器上都配置了 HTTP 到 HTTPS 重定向。如果 Application Load Balancer 的一个或多个 HTTP 侦听器未配置 HTTP 到 HTTPS 重定向,则检查失败。

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

要了解更多信息,请参阅 Application Load Balancer 中的 的侦听器。Application Load Balancer 用户指南

注意

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

Remediation

将 HTTP 请求重定向到 应用程序负载均衡器 上的 HTTPS

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. Choose an 应用程序负载均衡器.

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

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

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

  7. 选择 HTTPS,然后输入 443

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

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

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

严重性:

资源类型: EMR:Cluster

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

参数:

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

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

注意

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

Remediation

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

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

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

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

要修复此调查结果,您需要在 VPC 私有子网中创建新集群。有关如何在 VPC 私有子网中启动集群的信息,请参阅 https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-vpc-launching-job-flows.html 中的在 VPC 中启动集群Amazon EMR 管理指南。

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

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

严重性:

资源:Elasticsearch 域

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

参数:

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

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

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

注意

某些实例类型(例如 t.small 和 t.medium)不支持静态数据加密。有关详细信息,请参阅 https://docs.amazonaws.cn/elasticsearch-service/latest/developerguide/aes-supported-instance-types.html 中的支持的实例类型Amazon Elasticsearch Service 开发人员指南。

Remediation

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

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

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

[GuardDuty.1] 应启用 GuardDuty

类别: 检测 > 检测服务

严重性:

资源: Account

AWS Config 规则:guardduty-enabled-centralized

参数:

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

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

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国 (宁夏)

  • 欧洲(米兰)

  • 中东(巴林)

  • AWS GovCloud(美国东部)

Remediation

启用 GuardDuty

  1. https://console.amazonaws.cn/guardduty/ 打开 GuardDuty 控制台。

  2. 选择开始使用

  3. 选择 EnableGuardDuty

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

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

严重性:

资源:IAM 策略

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

参数:

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

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

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

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

您应删除语句中包含 "Effect": "Allow" with "Action": "*" over "Resource": "*" 的 IAM 策略。

Remediation

修改 IAM 策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择策略

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

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

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

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

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

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

严重性: Low

资源:IAM 用户

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

参数:

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

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

Remediation

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

创建 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

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

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

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

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

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

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

将用户添加到 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Groups (组)

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

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

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

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

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

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

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

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

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

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

严重性:

资源:IAM 用户

AWS Config 规则:access-keys-rotated

参数:

  • maxAccessKeyAge: 90

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

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

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

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

要了解有关保护访问密钥和账户的更多信息,请参阅 AWS 中的管理 访问密钥的最佳实践AWS General Reference。另请参阅博客文章在使用编程访问时保护 AWS 账户的指南

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

访问密钥包含一个访问密钥 ID 和一个私有访问密钥。它们用于签署您向 AWS 发出的编程请求。AWS 用户需要使用自己的访问密钥从 AWS、适用于 Windows AWS CLI 的工具、PowerShell AWS 或直接使用 SDKs 为各个 APIs 服务调用 AWS 以通过编程方式调用 。

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

注意

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

Remediation

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

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/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 根用户访问密钥

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

严重性: 重大

资源: Account

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

参数:

该控制检查根用户访问密钥是否可用。

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

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

注意

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

Remediation

停用或删除访问密钥

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

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

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

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

  5. 对于任何现有密钥,执行以下操作之一:

    • 为了防止使用密钥对账户进行身份验证,请选择 Make Inactive (转为非活跃)

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

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

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

严重性:

资源:IAM 用户

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

参数:

该控制检查是否为使用控制台密码的所有 IAM 用户启用 AWS Multi-Factor Authentication (MFA)。

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

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

Remediation

为用户配置 MFA

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

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

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

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

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

要了解如何将 MFA 设置委派给用户,请参阅博客文章 How to Delegate Management of Multi-Factor Authentication to AWS IAM Users (如何将 Multi-Factor Authentication 管理委派给 AWS IAM 用户)

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

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

严重性: 重大

资源: Account

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

参数:

该控制检查是否已启用您的 AWS 账户,以使用 根用户 凭证通过 Multi-Factor Authentication (MFA) 硬件设备登录。

虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html 中的启用虚拟多重验证 (MFA) 设备(控制台)IAM 用户指南。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West).

Remediation

为根账户启用基于硬件的 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 用户的密码策略应具有可靠的配置

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

严重性:

资源: Account

AWS Config 规则:iam-password-policy

参数:

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 14

  • PasswordReusePrevention: 24

  • MaxPasswordAge: 90

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

  • RequireUppercaseCharacters: true

  • RequireLowercaseCharacters: true

  • RequireSymbols: true

  • RequireNumbers: true

  • MinimumPasswordLength: 14

  • PasswordReusePrevention: 24

  • MaxPasswordAge: 90

要访问 AWS 管理控制台,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合身份验证,而不是创建 IAM 用户。联合允许用户使用其现有企业凭证登录 AWS 管理控制台。使用 AWS Single Sign-On (AWS SSO) 创建或联合用户身份,然后将 IAM 角色代入到账户。

要了解有关身份提供商和联合身份验证的更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_providers.html 中的身份提供商和联合IAM 用户指南。要了解 AWS SSO 的更多信息,请参阅 AWS Single Sign-On 用户指南

如果您需要使用 IAM 用户,Security Hub 建议您强制创建强用户密码。您可以在 AWS 账户上设置密码策略,以指定密码的复杂性要求和强制轮换期。当您创建或更改密码策略时,大多数密码策略设置会在用户下次更改其密码时实施。某些设置将立即实施。要了解更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html 中的为 IAM 用户设置账户密码策略IAM 用户指南。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

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

  3. 选择 Prevent password reuse (防止密码重复使用)。对于 Number of passwords to remember (记住的密码数量),输入 24

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

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

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

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

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

  9. 选择 启用密码过期 (Enable password expiration)。对于 Password expiration period (in days) (密码有效期 (天)),请输入 90

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

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

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

严重性:

资源:IAMUser

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

参数:

  • maxCredentialUsageAge: 90

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

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

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

Remediation

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

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

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

禁用非活动账户的凭证

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

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

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

  5. 对于至少 90 天内未使用的每个登录凭证和访问密钥,请选择 Make inactive (转为非活跃)

[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥执行解密操作

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

严重性:

资源:IAM 策略

AWS Config 规则:iam_customer_policy_blocked_kms_actions

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查 IAM 客户托管策略的默认版本是否允许委托人对所有资源使用 AWS KMS 解密操作。该控制使用 Zelkova(一个自动推理引擎)来验证和提醒您可能会授予对 AWS 账户之间密钥广泛访问权限的策略。

如果允许对所有 KMS 密钥执行 kms:Decryptkms:ReEncryptFrom 操作,则此控制将失败。该控制评估附加和未附加的客户托管策略。它不会检查内联策略或 AWS 托管策略。

借助 AWS KMS,您可以控制哪些人可以使用您的客户主密钥 (CMK) 并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。按照安全最佳实践,AWS 建议您允许最小权限。换言之,您只应为身份授予 kms:Decryptkms:ReEncryptFrom 权限,并且仅为执行任务所需的密钥授予权限。否则,用户可能会使用不适合您的数据的密钥。

不是授予对所有密钥的权限,而是确定用户访问加密数据所需的最小密钥集。然后,设计仅允许用户使用这些密钥的策略。例如,不允许对所有 KMS 密钥的 kms:Decrypt 权限。相反,对于您的账户,请仅允许对特定区域中的密钥使用 kms:Decrypt。通过采用最低特权原则,您可以降低意外泄露数据的风险。

Remediation

要修复此问题,请修改 IAM 客户托管策略以限制对密钥的访问。

修改 IAM 客户托管策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在 IAM 导航窗格中,选择 Policies (策略)

  3. 选择要修改的策略旁边的箭头。

  4. 选择 Edit policy (编辑策略)

  5. 选择 JSON 选项卡。

  6. “Resource” 值更改为您希望允许的特定键。

  7. 修改策略后,选择 Review policy (查看策略)

  8. 选择保存更改

有关更多信息,请参阅 中的IAM将 AWS KMS 策略与 结合使用。AWS Key Management Service Developer Guide

[KMS.2] IAM 委托人不应具有允许对所有 KMS 密钥执行解密操作的 IAM 内联策略

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

严重性:

资源:

  • IAM 角色

  • IAM 用户

  • IAM 组

AWS Config 规则:iam_inline_policy_blocked_kms_actions

参数:

  • kms:ReEncryptFrom, kms:Decrypt

检查嵌入到您的 IAM 身份(角色、用户或组)中的内联策略是否允许对所有 KMS 密钥执行 AWS KMS 解密操作。该控制使用 Zelkova(一个自动推理引擎)来验证和警告您有关可授予对 AWS 账户中的密钥的广泛访问权限的策略。

如果允许对内联策略中的所有 KMS 密钥执行 kms:Decryptkms:ReEncryptFrom 操作,则此控制将失败。

借助 AWS KMS,您可以控制哪些人可以使用您的客户主密钥 (CMK) 并访问您的加密数据。IAM 策略定义身份(用户、组或角色)可以对哪些资源执行哪些操作。按照安全最佳实践,AWS 建议您允许最小权限。换言之,您只应为身份授予所需的权限,并且仅为执行任务所需的密钥授予这些权限。否则,用户可能会使用不适合您的数据的密钥。

确定用户访问加密数据所需的最小密钥集,而不是授予对所有密钥的权限。然后,设计仅允许用户使用这些密钥的策略。例如,不允许对所有 KMS 密钥的 kms:Decrypt 权限。相反,仅对您的账户在特定区域中的密钥允许它们。通过采用最低特权原则,您可以降低意外泄露数据的风险。

Remediation

要修复该问题,请修改内联策略以限制对密钥的访问。

修改 IAM 内联策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在 IAM 导航窗格中,选择 Users (用户)Groups (组)Roles (角色)

  3. 选择要修改其 IAM 内联策略的用户、组或角色的名称。

  4. 选择要修改的策略旁边的箭头。

  5. 选择 Edit policy (编辑策略)

  6. 选择 JSON 选项卡。

  7. "Resource" 值更改为您希望允许的特定键。

  8. 修改策略后,选择 Review policy (查看策略)

  9. 选择保存更改

有关更多信息,请参阅 中的IAM将 AWS KMS 策略与 结合使用。AWS Key Management Service Developer Guide

[Lambda.1] Lambda 函数应禁止其他账户的公开访问

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

严重性: 重大

资源:Lambda 函数

AWS Config 规则:lambda-function-public-access-prohibited

参数:

该控制检查 Lambda 函数基于资源的策略是否禁止您账户之外的公开访问。

Lambda 函数不应可公开访问,因为这可能允许意外访问存储在函数中的代码。

注意

或 中国(北京) 区域中不支持此控制。中国 (宁夏)

Remediation

如果 Lambda 函数无法进行此控制,则它会指示 Lambda 函数的基于资源的策略语句允许公有访问。

要修复该问题,您必须更新策略。您只能从 Lambda API 更新基于资源的策略。这些说明使用控制台查看策略,并使用 AWS Command Line Interface 删除权限。

查看 Lambda 函数的基于资源的策略

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 在导航窗格中,选择 Functions (函数)

  3. 选择函数。

  4. 选择 Permissions。基于资源的策略显示其他账户或 AWS 服务尝试访问该函数时应用的权限。

  5. 检查基于资源的策略。确定具有使策略成为公有的 Principal 字段值的策略语句。例如,允许 *"*"*{ "AWS": "*" }

    您无法从 控制台编辑策略。要从函数中删除权限,请从 remove-permission 中使用 AWS CLI 命令。

    记下要删除的语句的语句 ID (Sid) 的值。

要使用 AWS CLI 从 Lambda 函数删除权限,请发出 remove-permission 命令。

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

<function-name> 替换为 Lambda 函数的名称,将 <statement-id> 替换为要删除的语句的语句 ID。

验证权限是否已更新

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 在导航窗格中,选择 Functions (函数)

  3. 选择您更新的函数。

  4. 选择 Permissions

    应更新基于资源的策略。如果策略中只有一个语句,则策略为空。

有关更多信息,请参阅 中的AWS Lambda将基于资源的策略用于 AWS Lambda Developer Guide。

[Lambda.2] Lambda 函数应该使用最新的运行时

类别: 保护 > 安全开发

严重性:

资源:Lambda 函数

AWS Config 规则:lambda-function-settings-check

参数:

  • runtime: nodejs12.x, nodejs10.x, python3.8, python3.7, python3.6, python2.7, ruby2.5, ruby2.7, java11, java8,go1.x, dotnetcore2.1, dotnetcore3.1

该控制检查对于支持的各种语言,运行时的 Lambda 函数设置是否匹配最新运行时的预期值集。该控制检查以下运行时: nodejs12.xnodejs10.xpython3.8python3.7python3.6ruby2.5ruby2.7java11java8go1.xdotnetcore2.1dotnetcore3.1

Lambda 运行时是围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建的。当安全更新不再支持某个运行时组件时,Lambda 将弃用该运行时。虽然您无法创建使用已弃用运行时的函数,但函数仍可用于处理调用事件。确保您的 Lambda 函数是最新的,并且不使用过时的运行时环境。

要了解有关该控制检查所有支持语言的最新运行时的更多信息,请参阅 AWS Lambda 中的 运行时。AWS Lambda Developer Guide

注意

或 中国(北京) 区域中不支持此控制。中国 (宁夏)

Remediation

有关支持的运行时和弃用计划的更多信息,请参阅 https://docs.amazonaws.cn/lambda/latest/dg/runtime-support-policy.html运行时支持策略AWS Lambda Developer Guide部分。将运行时迁移到最新版本时,请遵循语言发布者的语法和指导。

[RDS.1] RDS 快照应为私有快照

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

严重性: 重大

资源: RDS 数据库快照

AWS Config 规则:rds-snapshots-public-prohibited

参数:

该控制检查 Amazon RDS 快照是否公有。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

除非有意这样做,否则 RDS 快照不得为公有快照。如果您将未加密的手动快照作为公有快照进行共享,这将使所有 AWS 账户均可使用该快照。这可能会导致 RDS 实例意外的数据泄露。

请注意,如果将配置更改为允许公有访问,则 AWS Config 规则可能在长达 12 小时内无法检测到更改。在 AWS Config 规则检测到更改之前,即使配置违反了规则,检查也会通过。

要了解有关共享数据库快照的更多信息,请参阅 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html 中的共享数据库快照Amazon RDS 用户指南。

注意

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

Remediation

删除 RDS 快照的公有访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 导航到 Snapshots (快照),然后选择要修改的公有快照

  3. Actions (操作) 中,选择 Share Snapshots (共享快照)

  4. DB snapshot visibility (数据库快照可见性) 中,选择 Private (私有)

  5. DB snapshot visibility (数据库快照可见性) 下,选择 all (全部)

  6. 选择 Save (保存)

[RDS.2] RDS 数据库实例应禁止公有访问,这取决于 PubliclyAccessible 配置

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

严重性: 重大

资源: RDS 数据库实例

AWS Config 规则:rds-instance-public-access-check

参数:

该控制通过评估实例配置项中的 PubliclyAccessible 字段,检查是否可以公开访问 Amazon RDS 实例。

RDS 实例配置中的 PubliclyAccessible 值指示是否可以公开访问数据库实例。如果使用 PubliclyAccessible 配置了数据库实例,则它是一个面向 Internet 的实例并具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。如果无法公开访问数据库实例,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。

除非您打算使 RDS 实例可公开访问,否则不应使用 PubliclyAccessible 值配置 RDS 实例。这样做可能允许到数据库实例的不必要流量。

Remediation

从 RDS 数据库实例中删除公有访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 导航到 Databases (数据库),然后选择公有数据库。

  3. 选择修改

  4. Connectivity (连接) 下,展开 Additional connectivity configuration (其他连接配置)

  5. Public access (公有访问) 下,选择 Not publicly access (不可公开访问)

  6. 选择 Continue (继续)

  7. Scheduling of modifications (修改计划) 下,选择 Apply immediately (立即应用)

  8. 选择修改数据库实例

有关更多信息,请参阅 中的在 VPC 中使用数据库实例。Amazon RDS 用户指南

[RDS.3] RDS 数据库实例应启用静态加密

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

严重性:

资源: RDS 数据库实例

AWS Config 规则:rds-storage-encrypted

参数:

该控制检查您的 Amazon RDS 数据库实例是否启用了存储加密。

为了增加 RDS 数据库实例中敏感数据的安全性,您应将 RDS 数据库实例配置为静态加密。要静态加密 RDS DB 数据库实例和快照,请启用 RDS 数据库实例的加密选项。静态加密的数据包括数据库实例的基础存储、其自动化备份、只读副本和快照。

RDS 加密的数据库实例使用开放的标准 AES-256 加密算法,对托管 RDS 数据库实例的服务器上的数据进行加密。在加密数据后,Amazon RDS 将以透明方式处理访问的身份验证和数据的解密,并且对性能产生的影响最小。您无需修改数据库客户端应用程序来使用加密。

Amazon RDS 加密当前可用于所有数据库引擎和存储类型。Amazon RDS 加密对于大多数数据库实例类不可用。要了解不支持 Amazon RDS 加密的数据库实例类,请参阅 中的Amazon RDS加密 资源。Amazon RDS 用户指南

Remediation

有关加密 Amazon RDS 中的数据库实例的信息,请参阅 中的加密 Amazon RDS 资源。Amazon RDS 用户指南

[RDS.4] RDS 集群快照和数据库快照应进行静态加密

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

严重性:

资源类型: DBClusterSnapshot, DBSnapshot

AWS Config 规则:rds-snapshots-encrypted

参数:

该控制检查是否加密了 RDS 数据库快照。

加密静态数据可降低未经身份验证的用户访问存储在磁盘上的数据的风险。RDS 快照中的数据应进行静态加密,以增加一层安全性。

Remediation

您可以使用 Amazon RDS 控制台修复此问题。

加密未加密的 RDS 快照

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Snapshots (快照)

  3. Manual (手动)System (系统) 下查找要加密的快照。

  4. 选中要加密的快照旁边的复选框。

  5. 选择 Actions (操作),然后选择 Copy Snapshot (复制快照)

  6. New DB Snapshot Identifier (新数据库快照标识符) 下,键入新快照的名称。

  7. Encryption (加密) 下,选择 Enable Encryption (启用加密)

  8. 选择要用于加密快照的 KMS 密钥。

  9. 选择 Copy Snapshot

  10. 创建新快照后,删除原始快照。

  11. 对于 Backup Retention Period (备份保留期),请选择正非零值。例如,30 天.

[RDS.5] 应使用多个可用区配置 RDS 数据库实例

类别: Recover > Resilience (恢复 > 弹性) > High availability (高可用性)

严重性:

资源类型: DBInstance

AWS Config 规则:rds-multi-az-support

参数:

该控制检查是否为 RDS 数据库实例启用了高可用性。

RDS 数据库实例应配置为多个可用区 (AZ)。这将确保存储的数据的可用性。多可用区部署允许在可用区可用性和 RDS 维护期间出现问题时实现自动故障转移。

Remediation

为数据库实例启用多个可用区

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择数据库,然后选择要修改的数据库实例。

  3. 选择修改。将显示 Modify DB Instance (修改数据库实例) 页面。

  4. Instance Specifications (实例规范) 下,将 Multi-AZ deployment (多可用区部署) 设置为 Yes (是)

  5. 选择 Continue (继续),然后检查修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html#USER_ModifyInstance.ApplyImmediately 中的使用“立即应用”设置Amazon RDS 用户指南。

  7. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance 保存更改。

[RDS.6] 应该为 RDS 数据库实例和集群配置增强监控

类别: 检测 > 检测服务

严重性: Low

资源类型: DBInstance

AWS Config 规则:rds-enhanced-monitoring-enabled

参数:

该控制检查是否为 RDS 数据库实例启用了增强监控。

在 Amazon RDS 中,增强监控支持更快地响应底层基础设施的性能变化。这些性能变化可能会导致数据不可用。增强监测提供运行 RDS 数据库实例的操作系统的实时指标。实例上安装了代理。代理可以从管理程序层更准确地获取指标。

若您想了解数据库实例上不同进程或线程对 CPU 的使用差异,增强监测指标非常有用。有关更多信息,请参阅 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html 中的增强监测Amazon RDS 用户指南。

Remediation

有关如何为数据库实例启用增强监测的详细说明,请参阅 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling 中的设置和启用增强监测Amazon RDS 用户指南。

[RDS.7] RDS 集群应启用删除保护

类别: 保护 > 数据保护 > 数据删除保护

严重性: Low

资源类型: DBCluster

AWS Config 规则:rds-cluster-deletion-protection-enabled

参数:

该控制检查 RDS 集群是否启用了删除保护。

启用集群删除保护是防止未经授权的实体意外删除或删除数据库的一种额外保护层。

启用删除保护后,无法删除 RDS 集群。在删除请求成功之前,必须禁用删除保护。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • 中东(巴林)

  • 南美洲(圣保罗).

Remediation

为 RDS 数据库集群启用删除保护

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库集群。

  3. 选择修改

  4. Deletion protection (删除保护) 下,选择 Enable deletion protection (启用删除保护)

  5. 选择 Continue (继续)

  6. Scheduling of modifications (修改计划) 下,选择应用修改的时间。选项为 Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)Apply immediately (立即应用)

  7. 选择 Modify Cluster

[RDS.8] RDS 数据库实例应启用删除保护

类别: 保护 > 数据保护 > 数据删除保护

严重性: Low

资源类型: DBInstance

AWS Config 规则:rds-instance-deletion-protection-enabled

参数:

该控制检查您的 RDS 数据库实例是否启用了删除保护。

启用实例删除保护是防止未经授权的实体意外删除或删除数据库的一种额外保护层。

启用删除保护后,无法删除 RDS 数据库实例。在删除请求成功之前,必须禁用删除保护。

Remediation

为 RDS 数据库实例启用删除保护

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。

  3. 选择修改

  4. Deletion protection (删除保护) 下,选择 Enable deletion protection (启用删除保护)

  5. 选择 Continue (继续)

  6. Scheduling of modifications (修改计划) 下,选择应用修改的时间。选项为 Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)Apply immediately (立即应用)

  7. 选择修改数据库实例

[S3.1] 应启用 S3 阻止公有访问设置

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

严重性:

资源: Account

AWS Config 规则:s3-account-level-public-access-blocks

参数:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

该控制检查是否在账户级别配置了以下 Amazon S3 公有访问阻止设置:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

Amazon S3 公共访问阻止旨在为整个 AWS 账户或单个 S3 存储桶级别提供控制,确保对象永远不会具有公有访问权限。通过访问控制列表 (ACL) 和/或存储桶策略向存储桶和对象授予公有访问权限。

除非您打算让 S3 存储桶可公开访问,否则应配置账户级别 Amazon S3 阻止公共访问功能。

要了解更多信息,请参阅 中的Amazon S3使用 阻止公有访问。Amazon Simple Storage Service 开发人员指南

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • 中东(巴林)

Remediation

启用 Amazon S3 阻止公有访问

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择 Block public access (account settings) (阻止公有访问(账户设置))

  3. 选择 Edit (编辑)

  4. 选择 Block all public access (阻止所有公有访问)

  5. 选择保存更改

有关更多信息,请参阅 中的Amazon S3使用 阻止公有访问。Amazon Simple Storage Service 开发人员指南

[S3.2] S3 存储桶应禁止公开读取访问

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

严重性: 重大

资源: S3 存储桶

AWS Config 规则:s3-bucket-public-read-prohibited

参数:

该控制检查 S3 存储桶是否允许公共读取访问。它评估阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL)。

有些使用案例要求互联网上的每个人都能够从您的 S3 存储桶中读取数据。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开读取。

Remediation

删除 S3 存储桶的公开访问权限

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 在左侧导航窗格中,选择 Buckets (存储桶)

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择 Permissions,然后选择 Block public access

  5. 选择 Edit (编辑)

  6. 选择 Block all public access (阻止所有公有访问)。然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.3] S3 存储桶应禁止公开写入访问

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

严重性: 重大

资源: S3 存储桶

AWS Config 规则:s3-bucket-public-write-prohibited

参数:

该控制检查 S3 存储桶是否允许公共写入访问。它会对阻止公有访问设置、存储桶策略和存储桶访问控制列表 (ACL) 进行评估。

有些使用案例要求互联网上的每个人都能写入您的 S3 存储桶。然而,这种情况很少见。为确保数据的完整性和安全性,您的 S3 存储桶不应可公开写入。

Remediation

删除 S3 存储桶的公开访问权限

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 在左侧导航窗格中,选择 Buckets (存储桶)

  3. 选择要更新的 S3 存储桶的名称。

  4. 选择 Permissions,然后选择 Block public access

  5. 选择 Edit (编辑)

  6. 选择 Block all public access (阻止所有公有访问)。然后选择 Save (保存)

  7. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[S3.4] S3 存储桶应启用服务器端加密

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

严重性:

资源: S3 存储桶

AWS 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 存储桶启用默认加密

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 在左侧导航窗格中,选择 Buckets (存储桶)

  3. 从列表中选择 S3 存储桶。

  4. 选择属性

  5. 选择 Default encryption

  6. 对于加密,请选择 AES-256AWS-KMS

    • 选择 AES-256 以使用由 Amazon S3 管理的密钥进行默认加密。有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

    • 选择 AWS-KMS 以使用由 AWS KMS 管理的密钥进行默认加密。然后从已创建的 AWS KMS 主密钥列表中选择一个主密钥。

      键入要使用的 AWS KMS 密钥的 Amazon 资源名称 (ARN)。您可以在 IAM 控制台中的 Encryption keys (加密密钥) 下方找到您的 AWS KMS 密钥的 ARN。或者,您可以从下拉列表中选择一个键名。

      重要

      如果您将 AWS KMS 选项用于默认加密配置,则您需要遵循 AWS KMS 的 RPS(每秒请求数)配额。有关 AWS KMS 配额以及如何请求增加配额的更多信息,请参阅 AWS Key Management Service Developer Guide

      有关创建 AWS KMS 密钥的更多信息,请参阅 AWS Key Management Service Developer Guide

      有关将 AWS KMS 与 Amazon S3 一起使用的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

    在启用默认加密时,您可能需要更新存储桶策略。有关从存储桶策略更改为默认加密的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

  7. 选择 Save (保存)

有关默认 S3 存储桶加密的更多信息,请参阅 Amazon Simple Storage Service 控制台用户指南

[S3.5] S3 存储桶应要求请求使用安全套接字层

严重性:

资源: S3 Bucket

AWS Config 规则:s3-bucket-ssl-requests-only

参数:

该控制检查 S3 存储桶是否具有需要请求使用安全套接字层 (SSL) 的策略。

S3 存储桶应具有要求所有请求 (Action: S3:*) 在 S3 资源策略中仅接受通过 HTTPS 传输数据的策略,如条件键 aws:SecureTransport 所指示。

Remediation

要修复此问题,请更新 S3 存储桶的权限策略。

配置 S3 存储桶以拒绝不安全的传输

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 导航到不合规存储桶,然后选择存储桶名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. 添加与以下策略中的策略语句类似的策略语句。将 awsexamplebucket 替换为您正在修改的存储桶的名称。

    { "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSSLRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }
  5. 选择 Save (保存)

有关更多信息,请参阅知识中心文章我应该使用哪个 S3 存储桶策略遵守 AWS Config 规则 s3-bucket-ssl-requests-only?

[S3.6] 应限制在存储桶策略中向其他 Amazon S3 账户授予的 AWS 权限

类别: 保护 > 安全访问管理 > 受限制的敏感 APIs 操作

严重性:

资源类型: AWS::S3::Bucket

AWS Config 规则:s3-bucket-blacklisted-actions-prohibited

参数:

由 Security Hub 设置的默认参数:

  • blacklistedactionpatterns: s3:DeleteBucketPolicy, s3:PutBucketAcl, s3:PutBucketPolicy, s3:PutEncryptionConfiguration, s3:PutObjectAcl

客户提供的参数:

  • blacklistedactionpatterns。 这是要拒绝的操作模式的逗号分隔列表。例如:s3:PutBucketPolicy and s3:DeleteObject

该控制检查 S3 存储桶策略是否阻止其他 AWS 账户中的委托人对 S3 存储桶中的资源执行拒绝的操作。如果 S3 存储桶策略允许其他 AWS 账户中的委托人执行以下任一操作,则控制将失败:

  • s3:DeleteBucketPolicy

  • s3:PutBucketAcl

  • s3:PutBucketPolicy

  • s3:PutEncryptionConfiguration

  • s3:PutObjectAcl

实施最低权限访问是降低安全风险以及错误或恶意意图的影响的基础。如果 S3 存储桶策略允许来自外部账户的访问,则可能导致数据被内部威胁或攻击者泄露。

参数允许成功评估 S3 存储桶的规则。blacklistedactionpatterns该参数向外部账户授予对 blacklistedactionpatterns 列表中未包含的操作模式的访问权限。

Remediation

要修复此问题,请编辑 S3 存储桶策略以删除权限。

编辑 S3 存储桶策略

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. Bucket name (存储桶名称) 列表中,选择要编辑其策略的 S3 存储桶的名称。

  3. 选择 Permissions,然后选择 Bucket Policy

  4. Bucket policy editor (存储桶策略编辑器) 文本框中,执行下列操作之一:

    • 删除向其他 AWS 账户授予对拒绝的操作的访问权限的语句

    • 从语句中删除允许的被拒绝操作

  5. 选择 Save (保存)

[SageMaker.1] SageMaker 笔记本实例不应具有直接 Internet 访问权限

严重性:

资源: SageMaker:NotebookInstance

AWS Config 规则:sagemaker-notebook-no-direct-internet-access

参数:

该控制检查 SageMaker 笔记本实例是否禁用了直接 Internet 访问。为此,它检查笔记本实例是否禁用了 DirectInternetAccess 字段。

如果您在没有 VPC 的情况下配置 SageMaker 实例,则默认情况下,在您的实例上启用直接 Internet 访问。您应为实例配置 VPC,并将默认设置更改为 Disable – Access the Internet via a VPC

要从笔记本训练或托管模型,您需要 Internet 访问。要启用 Internet 访问,请确保您的 VPC 具有 NAT 网关,并且您的安全组允许出站连接。要了解有关如何将笔记本实例连接到 VPC 中的资源的更多信息,请参阅 https://docs.amazonaws.cn/sagemaker/latest/dg/appendix-notebook-and-internet-access.html 中的将笔记本实例连接到 VPC 中的资源Amazon SageMaker 开发人员指南。

您还应该确保将对 SageMaker 配置的访问权限限制为仅授权用户。限制用户的 IAM 权限以修改 SageMaker 设置和资源。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国 (宁夏)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

Remediation

请注意,在创建笔记本实例后,您无法更改 Internet 访问设置。它必须停止、删除并重新创建。

配置 SageMaker 笔记本实例以拒绝直接 Internet 访问

  1. https://console.amazonaws.cn/sagemaker/ 打开 SageMaker 控制台

  2. 导航到 Notebook instances (笔记本实例)

  3. 删除启用了直接 Internet 访问的实例。选择实例,选择 Actions (操作),然后选择 stop (停止)。

    实例停止后,选择 Actions,然后选择 delete

  4. 选择创建笔记本实例。提供配置详细信息。

  5. 展开网络部分,然后选择 VPC、子网和安全组。在 Direct internet access (直接 Internet 访问) 下,选择 Disable - Access the internet via a VPC (禁用 - 通过 VPC 访问 Internet)

  6. 选择创建笔记本实例

有关更多信息,请参阅 https://docs.amazonaws.cn/sagemaker/latest/dg/appendix-notebook-and-internet-access.html 中的将笔记本实例连接到 VPC 中的资源Amazon SageMaker 开发人员指南。

[SecretsManager.1] Secrets Manager 密钥应启用自动轮换

类别: 保护 > 安全开发

严重性:

资源: Secrets Manager 密钥

AWS Config 规则:secretsmanager-rotation-enabled-check

参数:

该控制检查存储在 AWS Secrets Manager 中的密钥是否配置了自动轮换。

Secrets Manager 可帮助您改善组织的安全状况。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储密钥、自动加密密钥、控制对密钥的访问以及安全地自动轮换密钥。

Secrets Manager 可以轮换密钥。您可以使用轮换将长期密钥替换为短期密钥。轮换您的密钥将限制未经授权的用户可以使用泄露密钥的时间长度。因此,您应该频繁地轮换密钥。要了解有关轮换的更多信息,请参阅 AWS Secrets Manager 中的轮换 密钥AWS Secrets Manager 用户指南。

Remediation

要修复该问题,请为密钥启用自动轮换。

为密钥启用自动轮换

  1. 打开 Secrets Manager 控制台 (https://console.amazonaws.cn/secretsmanager)。

  2. 要查找需要轮换的密钥,请在搜索字段中输入密钥名称。

  3. 选择要轮换的密钥,这将显示密钥详细信息页面。

  4. Rotation configuration (轮换配置) 下,选择 Edit rotation (编辑轮换)

  5. Edit rotation configuration (编辑轮换配置) 中,选择 Enable automatic rotation (启用自动轮换)

  6. 对于 Select Rotation Interval (选择轮换间隔),选择一个轮换间隔。

  7. 选择用于轮换的 Lambda 函数。有关自定义 Lambda 轮换函数的信息,请参阅 中的Lambda了解和自定义 轮换函数。AWS Secrets Manager 用户指南

  8. 要配置用于轮换的密钥,请选择 Next (下一步)

要了解有关 Secrets Manager 轮换的更多信息,请参阅 中的AWS Secrets Manager轮换 密钥。AWS Secrets Manager 用户指南

[SecretsManager.2] 使用自动轮换配置的 Secrets Manager 密钥应成功轮换

类别: 保护 > 安全开发

严重性:

资源: Secrets Manager 密钥

AWS Config 规则:secretsmanager-scheduled-rotation-success-check

参数:

该控制根据轮换计划检查 AWS Secrets Manager 密钥是否成功轮换。如果 RotationOccurringAsScheduledfalse,则控制失败。 该控制不会评估未配置轮换的密钥。

Secrets Manager 可帮助您提高组织的安全性。密钥包括数据库凭证、密码和第三方 API 密钥。您可以使用 Secrets Manager 集中存储密钥、自动加密密钥、控制对密钥的访问以及安全自动轮换密钥。

Secrets Manager 可以轮换密钥。您可以使用轮换将长期密钥替换为短期密钥。轮换您的密钥将限制未经授权的用户可以使用泄露密钥的时间长度。因此,您应该频繁地轮换密钥。

除了将密钥配置为自动轮换之外,您还应确保这些密钥根据轮换计划成功轮换。

要了解有关轮换的更多信息,请参阅 AWS Secrets Manager 中的轮换 密钥AWS Secrets Manager 用户指南。

Remediation

如果自动轮换失败,Secrets Manager 可能遇到与配置相关的错误。

要在 Secrets Manager 中轮换密钥,您可以使用 Lambda 函数来定义如何与拥有密钥的数据库或服务交互。

有关如何诊断和修复与密钥轮换相关的常见错误的帮助,请参阅 AWS Secrets Manager 中的 密钥轮换问题排查。AWS Secrets Manager 用户指南

[SSM.1] EC2 实例应由 AWS Systems Manager 管理

类别: 标识 > 清单

严重性:

资源: EC2 实例

AWS Config 规则:ec2-instance-managed-by-systems-manager

参数:

该控制检查您账户中的 EC2 实例是否由 AWS Systems Manager 管理。Systems Manager 是一项可用于查看和控制 AWS 基础设施的 AWS 服务。

为了帮助您维护安全性和合规性,Systems Manager 扫描您的托管实例。托管实例是配置为与 Systems Manager 一起使用的计算机。随后,Systems Manager 报告或对其检测到的任何策略违规行为采取纠正措施。Systems Manager 还可帮助您配置和维护托管实例。

要了解更多信息,请参阅AWS Systems Manager 用户指南

Remediation

您可以使用 Systems Manager 控制台修复此问题。

确保 EC2 实例由 Systems Manager 管理

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. 选择 Quick setup (快速设置)

  3. 在配置屏幕上,保留默认选项。

  4. 选择 Enable

要确定您的实例是否支持 Systems Manager 关联,请参阅 Systems Manager 中的 先决条件。AWS Systems Manager 用户指南

[SSM.2] 由 Systems Manager 管理的所有 EC2 实例都应符合修补要求

类别: 检测 > 检测服务

严重性:

资源:SSM 修补程序合规性

AWS Config 规则:ec2-managedinstance-patch-compliance-status-check

参数:

该控制检查在实例上安装补丁后,Amazon EC2 Systems Manager 补丁合规性的合规性状态是 COMPLIANT 还是 NON_COMPLIANT。它仅检查 Systems Manager Patch Manager 管理的实例。

根据您的组织要求对 EC2 实例进行完全修补,可减少 AWS 账户面临的攻击面。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • 中东(巴林)

Remediation

修复不合规的补丁

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. Instances & Nodes (实例和节点) 下,选择 Run Command,然后选择 Run command

  3. 选中 AWS-RunPatchBaseline 旁边的按钮。

  4. Operation (操作) 改为 Install (安装)

  5. 选择 Choose instances manually (手动选择实例),然后选择不合规的实例。

  6. 在页面底部选择 Run (运行)

  7. 在该命令完成后,要监控修补的实例的新合规性状态,请在导航窗格中选择 Compliance (合规性)

有关使用 Systems Manager 文档修补托管实例的更多信息,请参阅 中的SSM关于用于修补实例的 文档和Systems Manager使用 Run command 运行命令。AWS Systems Manager 用户指南

[SSM.3] 由 Systems Manager 管理的实例应具有 COMPLIANT 的关联合规性状态

类别: 检测 > 检测服务

严重性: Low

资源: AwsSSMAssociationCompliance

AWS Config 规则:ec2-managedinstance-association-compliance-status-check

参数:

该控制检查在实例上运行关联后,AWS Systems Manager 关联合规性的状态为 COMPLIANT 还是 NON_COMPLIANT。如果关联合规性状态为 COMPLIANT,则控制传递。

State Manager 关联是分配给托管实例的配置。该配置定义要在实例上保持的状态。例如,关联可以指定必须在您的实例上安装并运行防病毒软件,或者必须关闭某些端口。

创建一个或多个 State Manager 关联后,合规性状态信息将立即可供您使用。您可以在控制台中查看合规性状态,也可以查看合规性状态以响应 AWS CLI 命令或相应的 Systems Manager API 操作。对于关联,配置合规性将显示合规性状态(CompliantNon-compliant)。它还显示分配给关联的严重性级别,例如 CriticalMedium

要了解有关 State Manager 关联合规性的更多信息,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/sysman-compliance-about.html#sysman-compliance-about-association 中的关于 State Manager 关联合规性AWS Systems Manager 用户指南。

注意

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

Remediation

失败的关联可能与不同的事物(包括目标和 SSM 文档名称)相关。要修复此问题,您必须先确定并调查关联。然后,您可以更新关联以更正特定问题。

您可以编辑关联以指定新名称、计划、严重级别或目标。编辑关联后,AWS Systems Manager 将创建新版本。

调查和更新失败的关联

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. 在导航窗格中的 Instances & Nodes (实例和节点) 下,选择 Managed Instances (托管实例)

  3. 选择 Association status (关联状态)Failed (失败) 的实例 ID。

  4. 选择查看详细信息

  5. 选择 Associations (关联)

  6. 记下关联(Association status (关联状态)Failed (失败))的名称。这是您需要调查的关联。您需要在下一步中使用关联名称。

  7. 在导航窗格中的 Instances & Nodes 下,选择 State Manager。搜索关联名称,然后选择关联。

  8. 确定问题后,编辑失败的关联以更正问题。有关如何编辑关联的信息,请参阅编辑关联

有关创建和编辑 State Manager 关联的更多信息,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-associations.html 中的在 Systems Manager 中使用关联AWS Systems Manager 用户指南。