

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

# 修复 Amazon RDS 实例和集群面临的风险
<a name="exposure-rds"></a>

 Amazon Security Hub 可以为 Amazon RDS 实例和集群生成暴露调查结果。

 在 Security Hub 控制台上，暴露发现中涉及的 Amazon RDS 实例或集群及其识别信息列在发现详情的 “**资源**” 部分中。通过编程方式，您可以通过 Security Hub CSP [GetFindingsV2](https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_GetFindingsV2.html)M API 的操作来检索资源详细信息。

在确定暴露调查发现中涉及的资源后，如果不需要该资源，您可以将其删除。删除不必要的资源可以减少您的曝光概况和 Amazon 成本。如果资源至关重要，请按照这些建议的修复步骤进行操作以帮助降低风险。修复主题根据特征的类型进行划分。

单个暴露调查发现包含在多个修复主题中发现的问题。相反，您只需解决一个修复主题即可解决暴露调查发现并降低其严重性级别。您的风险修复方法取决于您的组织要求和工作负载。

**注意**  
 本主题中提供的补救指南可能需要在其他 Amazon 资源中进行进一步的咨询。

**Contents**
+ [Amazon RDS 实例和集群的配置错误特征](#rds-instance-cluster-misconfiguration)
  + [Amazon RDS 数据库实例配置为公开访问](#public-access-configured)
  + [Amazon RDS 数据库集群有一个公开共享的快照](#publicly-available-rds-cluster-snapshot)
  + [Amazon RDS 数据库实例有一个公开共享的快照](#publicly-available-rds-database-snapshot)
  + [Amazon RDS 数据库实例具有未进行静态加密的快照](#unencrypted-rds-database-snapshot)
  + [Amazon RDS 数据库集群具有未进行静态加密的快照](#unencrypted-rds-cluster-snapshot)
  + [Amazon RDS 数据库实例具有开放式安全组](#open-security-group)
  + [Amazon RDS 数据库实例已禁用 IAM 数据库身份验证](#rds-instance-iam-authentication-disabled)
  + [Amazon RDS 数据库实例使用默认管理员用户名](#rds-instance-default-admin-name-used)
  + [Amazon RDS 数据库集群使用默认管理员用户名](#rds-cluster-misconfiguration-db-cluster-uses-default-admin-username)
  + [Amazon RDS 数据库实例已禁用自动次要版本升级](#rds-instance-minor-version-upgrades-disabled)
  + [Amazon RDS 数据库实例已禁用自动备份](#rds-instance-backups-disabled)
  + [Amazon RDS 数据库实例已禁用删除保护](#rds-instance-deletion-protection-disabled)
  + [Amazon RDS 数据库集群已禁用删除保护](#rds-cluster-misconfiguration-db-cluster-deletion-protection-disabled)
  + [Amazon RDS 数据库实例对数据库引擎使用默认端口](#rds-instance-default-port-in-use)
  + [Amazon RDS 数据库实例不在备份计划的覆盖范围内](#rds-instance-not-in-backup-plan)

## Amazon RDS 实例和集群的配置错误特征
<a name="rds-instance-cluster-misconfiguration"></a>

 下面介绍了 Amazon RDS 实例和集群的错误配置特征和补救步骤。

### Amazon RDS 数据库实例配置为公开访问
<a name="public-access-configured"></a>

 具有公开访问权限的 Amazon RDS 实例可能通过其端点从互联网进行访问。虽然有时实例功能需要公开访问，但这种配置可能会成为尝试访问您的数据库的未经授权用户的潜在攻击向量。可公开访问的数据库可能遭受端口扫描、暴力攻击和漏洞利用尝试。根据标准安全原则，我们建议您限制数据库资源的公开暴露。

1.  **修改公开访问设置** 

    在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。根据您的应用程序架构，评估数据库实例是否需要公开访问。有关更多信息，请参阅 [Setting up public or private access in Amazon RDS](https://docs.amazonaws.cn/AmazonRDS/latest/gettingstartedguide/security-public-private.html)。

### Amazon RDS 数据库集群有一个公开共享的快照
<a name="publicly-available-rds-cluster-snapshot"></a>

 任何人都可以访问公共快照 Amazon Web Services 账户，这可能会将敏感数据暴露给未经授权的用户。任何人 Amazon Web Services 账户 都有权复制这些公共快照并从中创建数据库实例，这可能会导致数据泄露或未经授权的数据访问。按照安全最佳实践，我们建议仅允许受信任 Amazon Web Services 账户 的组织访问您的 Amazon RDS 快照。

**1. 配置 Amazon RDS 快照以实现私有访问**  
 在暴露调查发现中，通过超链接打开资源。有关如何修改快照共享设置的信息，请参阅 *Amazon Aurora 用户指南中的[共享快照](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/aurora-share-snapshot.html#aurora-share-snapshot.Sharing)。*有关如何停止共享快照的信息，请参阅《Amazon Aurora 用户指南》**中的[停止快照共享](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/share-snapshot-stop.html)。

### Amazon RDS 数据库实例有一个公开共享的快照
<a name="publicly-available-rds-database-snapshot"></a>

 任何人都可以访问公共快照 Amazon Web Services 账户，这可能会将敏感数据暴露给未经授权的用户。任何人 Amazon Web Services 账户 都有权复制这些公共快照并从中创建数据库实例，这可能会导致数据泄露或未经授权的数据访问。按照安全最佳实践，我们建议仅允许受信任 Amazon Web Services 账户 的组织访问您的 Amazon RDS 快照。

**配置 Amazon RDS 快照以实现私有访问**  
 在暴露调查发现中，通过超链接打开资源。有关如何修改快照共享设置的信息，请参阅 *Amazon R [DS 用户指南中的共享数据库快照](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)。*有关如何停止共享快照的信息，请参阅 *Amazon R [DS 用户指南中的停止共享数据库快照](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html#USER_ShareSnapshot.Sharing.StopSharing)。* 。

### Amazon RDS 数据库实例具有未进行静态加密的快照
<a name="unencrypted-rds-database-snapshot"></a>

 如果未经授权访问存储层，则未加密的 Amazon RDS 数据库实例快照可能会泄露敏感数据。如果没有加密，快照中的数据可能会因未经授权访问而泄露。这会带来数据泄露和合规性违规的风险。根据安全最佳实践，我们建议对所有数据库资源及其备份进行加密以保持数据机密性。

 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的快照。您无法直接加密现有的未加密快照。相反，请创建未加密快照的加密副本。有关详细说明，请参阅《Amazon Aurora 用户指南》**中的[数据库集群快照复制和加密 Amazon RDS 资源](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/aurora-copy-snapshot.html)。

### Amazon RDS 数据库集群具有未进行静态加密的快照
<a name="unencrypted-rds-cluster-snapshot"></a>

 如果未经授权访问存储层，则未加密的 Amazon RDS 数据库集群快照可能会泄露敏感数据。如果没有加密，快照中的数据可能会因未经授权访问而泄露。这会带来数据泄露和合规性违规的风险。根据安全最佳实践，我们建议对所有数据库资源及其备份进行加密以保持数据机密性。

**1. 创建快照的加密副本**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的快照。您无法直接加密现有的未加密快照。相反，请创建未加密快照的加密副本。有关详细说明，请参阅《Amazon Aurora 用户指南》**中的[数据库集群快照复制和加密 Amazon RDS 资源](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/aurora-copy-snapshot.html)。

### Amazon RDS 数据库实例具有开放式安全组
<a name="open-security-group"></a>

 安全组充当 Amazon RDS 实例的虚拟防火墙以控制入站和出站流量。开放式安全组允许从任何 IP 地址进行不受限制的访问，这可能会使数据库实例遭受未经授权的访问和潜在工具。根据标准安全原则，我们建议将安全组访问限制在特定 IP 地址和端口，以维护最低权限原则。

**查看安全组规则并评测当前配置**  
 在暴露调查发现中，打开数据库实例安全组的资源。评估哪些端口已开放且可从广泛的范围 IP 地址（例如 `(0.0.0.0/0 or ::/0)`）访问。有关查看安全组详细信息的信息，请参阅[DescribeSecurityGroups](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)《*亚马逊弹性计算云 API 参考*》。

**修改安全组规则**  
 修改您的安全组规则，将访问限制于特定的受信任 IP 地址或范围。更新安全组规则时，请考虑通过为每个所需的源 IP 地址范围创建规则或限制对特定端口的访问来区分不同网段的访问要求。要修改安全组规则，请参阅《Amazon EC2 用户指南》**中的[配置安全组规则](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules)。要修改现有 Amazon RDS 数据库实例的默认端口，请参阅《Amazon Aurora 用户指南》**中的[使用控制台、CLI 和 API 修改数据库集群]()。

### Amazon RDS 数据库实例已禁用 IAM 数据库身份验证
<a name="rds-instance-iam-authentication-disabled"></a>

 IAM 数据库身份验证允许您使用 IAM 凭证（而不是数据库密码）对 Amazon RDS 数据库进行身份验证。这提供了多项安全优势，例如集中式访问管理、临时凭证以及无需在应用程序代码中存储数据库密码。IAM 数据库身份验证允许使用身份验证令牌而不是密码对数据库实例进行身份验证。因此，进出数据库实例的网络流量使用 SSL 进行加密。如果没有 IAM 身份验证，数据库通常依赖基于密码的身份验证，这可能会导致密码重复使用和弱密码。根据安全最佳实践，我们建议启用 IAM 数据库身份验证。

**启用 IAM 数据库身份验证**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。您可以在数据库选项中启用 IAM 数据库身份验证。有关更多信息，请参阅《Amazon RDS 用户指南》**中的[启用和禁用 IAM 数据库身份验证](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Enabling.html)。启用 IAM 身份验证后，请更新数据库实例，使其使用 IAM 身份验证而不是基于密码的身份验证。

### Amazon RDS 数据库实例使用默认管理员用户名
<a name="rds-instance-default-admin-name-used"></a>

 对数据库实例使用默认用户名（例如“admin”、“root”）会增加安全风险，因为这些用户名广为人知，并且经常是暴力攻击的目标。默认用户名是可预测的，这使得未经授权的用户更容易尝试访问您的数据库。使用默认用户名时，攻击者只需要获取密码，而无需同时获取用户名和密码即可访问您的数据库。根据安全最佳实践，我们建议对数据库实例使用唯一管理员用户名，以通过模糊机制来增强安全性并降低未经授权访问尝试的风险。

**配置唯一管理员用户名**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。请考虑哪些备份频率、保留期和生命周期规则最适合您的应用程序。

### Amazon RDS 数据库集群使用默认管理员用户名
<a name="rds-cluster-misconfiguration-db-cluster-uses-default-admin-username"></a>

 对数据库实例使用默认用户名（例如“admin”、“root”）会增加安全风险，因为这些用户名广为人知，并且经常是暴力攻击的目标。默认用户名是可预测的，这使得未经授权的用户更容易尝试访问您的数据库。使用默认用户名时，攻击者只需要获取密码，而无需同时获取用户名和密码即可访问您的数据库。根据安全最佳实践，我们建议对数据库实例使用唯一管理员用户名，以通过模糊机制来增强安全性并降低未经授权访问尝试的风险。

**配置唯一管理员用户名**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。您无法更改现有 Amazon RDS 数据库实例的管理员用户名。要创建唯一的管理员名称，您需要创建一个具有自定义用户名的新数据库实例并迁移您的数据。

### Amazon RDS 数据库实例已禁用自动次要版本升级
<a name="rds-instance-minor-version-upgrades-disabled"></a>

 自动次要版本升级可确保您的 Amazon RDS 实例在次要引擎版本升级可用时自动接收升级。这些升级通常包括重要的安全补丁和错误修复，有助于维护数据库的安全性和稳定性。您的数据库面临运行已知安全漏洞的风险，这些漏洞已在较新的次要版本中修复。如果没有自动更新，数据库实例可能会在发现新 CVEs 漏洞时积累安全漏洞。根据安全最佳实践，我们建议为所有 Amazon RDS 实例启用自动次要版本升级。

**启用自动次要版本升级**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。您可以在**维护和备份**选项卡中查看自动次要升级设置。有关更多信息，请参阅 [Amazon RDS for MySQL 的自动次要版本升级](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.Minor.html)。您也可以将维护时段配置为在数据库活动较少的时期内进行。

### Amazon RDS 数据库实例已禁用自动备份
<a name="rds-instance-backups-disabled"></a>

 自动备份为您的 Amazon RDS 实例提供 point-in-time恢复，使您可以将数据库还原到保留期内的任意点。如果禁用自动备份，则当发生恶意删除、数据损坏或其他数据丢失情况时，您将面临数据丢失的风险。如果发生勒索软件攻击、数据库表删除或损坏等恶意活动，则由于能够恢复到事件发生之前的时间点，因此可以减少从事件恢复所需的时间。根据安全最佳实践，我们建议对所有[生产数据库](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.Enabling.html)启用自动备份并设置适当的保留期。

### Amazon RDS 数据库实例已禁用删除保护
<a name="rds-instance-deletion-protection-disabled"></a>

 数据库删除保护是一项有助于防止数据库实例被删除的功能。如果禁用删除保护，任何拥有足够权限的用户都可以删除您的数据库，这可能会导致数据丢失或应用程序停机时间。攻击者可以删除您的数据库，导致服务中断、数据丢失和恢复时间增加。根据安全最佳实践，我们建议为 RDS 数据库实例启用删除保护以防止恶意删除。

**为 Amazon RDS 数据库集群启用删除保护**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库集群。

### Amazon RDS 数据库集群已禁用删除保护
<a name="rds-cluster-misconfiguration-db-cluster-deletion-protection-disabled"></a>

 数据库删除保护是一项有助于防止数据库实例被删除的功能。如果禁用删除保护，任何拥有足够权限的用户都可以删除您的数据库，这可能会导致数据丢失或应用程序停机时间。攻击者可以删除您的数据库，导致服务中断、数据丢失和恢复时间增加。根据安全最佳实践，我们建议为 RDS 数据库集群启用删除保护以防止恶意删除。

**为 Amazon RDS 数据库集群启用删除保护**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库集群。

### Amazon RDS 数据库实例对数据库引擎使用默认端口
<a name="rds-instance-default-port-in-use"></a>

 对数据库引擎使用默认端口的 Amazon RDS 实例可能会面临更高的安全风险，因为这些默认端口广为人知，并且经常是自动扫描工具的目标。将数据库实例修改为使用非默认端口时会通过模糊机制增加额外安全层，使未经授权的用户更难对您的数据库执行自动或针对性攻击。默认端口经常会被未经授权的人员扫描，这可能会导致您的数据库实例成为攻击目标。根据安全最佳实践，我们建议将默认端口更改为自定义端口以降低自动攻击或定向攻击的风险。

 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。

**更新应用程序连接字符串**  
 更改端口后，请更新所有连接到 Amazon RDS 实例的应用程序和服务，以使用新的端口号。

### Amazon RDS 数据库实例不在备份计划的覆盖范围内
<a name="rds-instance-not-in-backup-plan"></a>

 Amazon Backup 是一项完全托管的备份服务，可集中和自动备份数据。 Amazon Web Services 服务如果您的数据库实例不在备份计划的覆盖范围内，则在发生恶意删除、数据损坏或其他数据丢失情况时，您可能会丢失数据。如果发生勒索软件攻击、数据库表删除或损坏等恶意活动，则由于能够恢复到事件发生之前的时间点，因此可以减少从事件恢复所需的时间。根据安全最佳实践，我们建议将 Amazon RDS 实例纳入备份计划以确保数据保护。

**为数据库实例创建和分配备份计划**  
 在暴露调查发现中，通过超链接打开资源。此时将打开受影响的数据库实例。请考虑哪些备份频率、保留期和生命周期规则最适合您的应用程序。