

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

# 适用于 DynamoDB 的 Security Hub CSPM 控件
<a name="dynamodb-controls"></a>

这些 AWS Security Hub CSPM 控制措施评估亚马逊 DynamoDB 服务和资源。这些控件可能并非全部可用 AWS 区域。有关更多信息，请参阅 [按地区划分的控件可用性](securityhub-regions.md#securityhub-regions-control-support)。

## [DynamoDB.1] DynamoDB 表应根据需求自动扩展容量
<a name="dynamodb-1"></a>

**相关要求：** NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-2(2), NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5 (2)、nist.800-53.r5 SI-13 (5)

**类别：**恢复 > 弹性 > 高可用性

**严重性：**中

**资源类型：**`AWS::DynamoDB::Table`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-autoscaling-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-autoscaling-enabled.html)

**计划类型：**定期

**参数：**


| 参数 | 说明 | Type | 有效的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  `minProvisionedReadCapacity`  |  DynamoDB 自动扩缩的预置读取容量单位的最小数量  |  整数  |  `1` 到 `40000`  |  无默认值  | 
|  `targetReadUtilization`  |  读取容量的目标使用率百分比  |  整数  |  `20` 到 `90`  |  无默认值  | 
|  `minProvisionedWriteCapacity`  |  DynamoDB 自动扩缩的预置写入容量单位的最小数量  |  整数  |  `1` 到 `40000`  |  无默认值  | 
|  `targetWriteUtilization`  |  写入容量的目标使用率百分比  |  整数  |  `20` 到 `90`  |  无默认值  | 

此控件检查 Amazon DynamoDB 表是否可以根据需要扩展其读取和写入容量。如果表不使用按需容量模式或配置了自动扩缩的预置模式，则控制失败。默认情况下，此控件只需要配置其中一种模式，而不考虑特定的读取或写入容量级别。或者，您可以提供自定义参数值，以便要求特定的读取和写入容量级别或目标利用率。

按需扩展容量可以避免节流异常，这有助于保持应用程序的可用性。使用按需容量模式的 DynamoDB 表仅受 DynamoDB 吞吐量默认表配额的限制。要提高这些配额，您可以向提交支持请求 支持。使用预置模式且具有自动扩缩功能的 DynamoDB 表会根据流量模式动态调整预置的吞吐能力。有关 DynamoDB 请求节流的更多信息，请参阅《Amazon DynamoDB 开发人员指南》**中的[请求节流和容量暴增](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html#ProvisionedThroughput.Throttling)。

### 修复
<a name="dynamodb-1-remediation"></a>

要在容量模式下对现有表启用 DynamoDB 自动扩缩，请参阅《Amazon DynamoDB 开发人员指南》**中的[在现有表上启用 DynamoDB 自动扩缩](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.Console.html#AutoScaling.Console.ExistingTable)。

## [DynamoDB.2] DynamoDB 表应该启用恢复功能 point-in-time
<a name="dynamodb-2"></a>

**相关要求：** NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 CP-9, NIST.800-53.r5 SC-5(2)、nist.800-53.r5 SI-12、nist.800-53.r5 SI-13 (5)

**类别：**恢复 > 弹性 > 启用备份

**严重性：**中

**资源类型：**`AWS::DynamoDB::Table`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-pitr-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-pitr-enabled.html)

**计划类型：**已触发变更

**参数：**无

此控件检查是否为亚马逊 DynamoDB 表启用了 point-in-time恢复 (PITR)。

备份可以帮助您更快地从安全事件中恢复。它们还增强了系统的故障恢复能力。DynamoDB 恢复功能可 point-in-time自动对 DynamoDB 表进行备份。它可以缩短从意外删除或写入操作中恢复的时间。启用 PITR 的 DynamoDB 表可以恢复到过去 35 天内的任何时间点。

### 修复
<a name="dynamodb-2-remediation"></a>

要将 DynamoDB 表恢复到某个时间点，请参阅 *Amazon DynamoDB 开发人员指南*中的[将 DynamoDB 表恢复到某个时间点](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/PointInTimeRecovery.Tutorial.html)。

## [DynamoDB.3] DynamoDB Accelerator（DAX）集群应在静态状态下进行加密
<a name="dynamodb-3"></a>

**相关要求：** NIST.800-53.r5 CA-9(1)、 NIST.800-53.r5 CM-3(6), NIST.800-53.r5 SC-1 3、8、 NIST.800-53.r5 SC-2 8 (1)、 NIST.800-53.r5 SC-7 (10)、nist. NIST.800-53.r5 SC-2 800-53.r5 SI-7 (6)

**类别：**保护 > 数据保护 > 加密 data-at-rest

**严重性：**中

**资源类型：**`AWS::DAX::Cluster`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/dax-encryption-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/dax-encryption-enabled.html)

**计划类型：**定期

**参数：**无

此控件可检查是否对 Amazon DynamoDB Accelerator（DAX）集群进行了静态加密。如果 DAX 集群未进行静态加密，则此控件将失败。

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

### 修复
<a name="dynamodb-3-remediation"></a>

创建集群后，您无法启用或禁用静态加密。您必须重新创建集群才能启用静态加密。有关如何创建启用静态加密的 DAX 集群的详细说明，请参阅 *Amazon DynamoDB 开发人员指南*中的[使用 AWS 管理控制台启用静态加密](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAXEncryptionAtRest.html#dax.encryption.tutorial-console)。

## [DynamoDB.4] 备份计划中应有 DynamoDB 表
<a name="dynamodb-4"></a>

**相关要求：** NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6, NIST.800-53.r5 CP-6(1), NIST.800-53.r5 CP-6(2), NIST.800-53.r5 CP-9, NIST.800-53.r5 SC-5(2)、nist.800-53.r5 SI-12、nist.800-53.r5 SI-13 (5)

**类别：**恢复 > 弹性 > 启用备份

**严重性：**中

**资源类型：**`AWS::DynamoDB::Table`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-resources-protected-by-backup-plan.html](https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-resources-protected-by-backup-plan.html)**``

**计划类型：**定期

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  `backupVaultLockCheck`  |  如果将参数设置为，`true`并且资源使用 AWS Backup 文件库锁定，则控件会生成`PASSED`结果。  |  布尔值  |  `true` 或者 `false`  |  无默认值  | 

此控件评估备份计划是否涵盖了处于 `ACTIVE` 状态的 Amazon DynamoDB 表。如果备份计划不涵盖 DynamoDB 表，则控制失败。如果将`backupVaultLockCheck`参数设置为`true`，则只有在锁定的文件库中备份 DynamoDB 表时，控制才会通过。 AWS Backup 

AWS Backup 是一项完全托管的备份服务，可帮助您集中和自动备份数据 AWS 服务。使用 AWS Backup，您可以创建定义备份要求的备份计划，例如备份数据的频率以及保留这些备份的时间。将 DynamoDB 表纳入备份计划可帮助您保护数据免遭意外丢失或删除。

### 修复
<a name="dynamodb-4-remediation"></a>

*要向备份计划添加 DynamoDB 表，[请参阅开发人员指南中的AWS Backup 为备份计划分配资源](https://docs.aws.amazon.com/aws-backup/latest/devguide/assigning-resources.html)。 AWS Backup *

## [DynamoDB.5] 应标记 DynamoDB 表
<a name="dynamodb-5"></a>

**类别：**识别 > 清单 > 标记

**严重性：**低

**资源类型：**`AWS::DynamoDB::Table`

**AWS Config 规则:**`tagged-dynamodb-table`（自定义 Security Hub CSPM 规则）

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList （最多 6 件商品）  | 1-6 个符合 [AWS 要求](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)的标签键。 |  No default value  | 

此控件可检查 Amazon DynamoDB 表是否具有带特定键的标签，这些键在 `requiredTagKeys` 参数中进行定义。如果表没有任何标签键或者未在 `requiredTagKeys` 参数中指定所有键，则此控件将失败。如果未提供 `requiredTagKeys` 参数，则此控件仅检查是否存在标签键，如果表未使用任何键进行标记，则此控件将失败。自动应用并以 `aws:` 为开头的系统标签会被忽略。

标签是您分配给 AWS 资源的标签，它由密钥和可选值组成。您可以创建标签，以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时，可以将基于属性的访问权限控制（ABAC）作为授权策略实施，该策略根据标签来定义权限。您可以向 IAM 实体（用户或角色）和 AWS 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息，请参阅 [ABAC 有什么用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)？ 在 *IAM 用户指南*中。

**注意**  
请勿在标签中添加个人身份信息（PII）或者其他机密或敏感信息。许多人都可以访问标签 AWS 服务，包括 AWS Billing。有关更多标记最佳做法，请参阅中的为[AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)。*AWS 一般参考*

### 修复
<a name="dynamodb-5-remediation"></a>

要向 DynamoDB 表添加标签，请参阅《Amazon DynamoDB 开发者指南》**中的[在 DynamoDB 中为资源添加标签](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.Operations.html)。

## [DynamodB.6] DynamoDB 表应启用删除保护
<a name="dynamodb-6"></a>

**相关要求：** NIST.800-53.r5 CA-9(1)、 NIST.800-53.r5 CM-2, NIST.800-53.r5 CM-2(2), NIST.800-53.r5 CM-3, NIST.800-53.r5 SC-5 (2)

**类别：**保护 > 数据保护 > 数据删除保护

**严重性：**中

**资源类型：**`AWS::DynamoDB::Table`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-table-deletion-protection-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/dynamodb-table-deletion-protection-enabled.html)**``

**计划类型：**已触发变更

**参数：**无

此控件检查 Amazon DynamoDB 表是否已启用删除保护。如果 DynamoDB 表未启用删除保护，则控制失败。

您可以使用删除保护属性保护 DynamoDB 表免遭意外删除。为表启用此属性有助于确保在管理员执行常规表管理操作期间不会意外删除表。这有助于防止您的常规业务运营受到干扰。

### 修复
<a name="dynamodb-6-remediation"></a>

要为 DynamoDB 表启用删除保护，请参阅《Amazon DynamoDB 开发者指南》**中的[使用删除保护](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection)。

## [DynamoDB.7] DynamoDB Accelerator 集群应在传输过程中进行加密
<a name="dynamodb-7"></a>

**相关要求：** NIST.800-53.r5 AC-17、、3、 NIST.800-53.r5 SC-1 NIST.800-53.r5 SC-2 3 NIST.800-53.r5 SC-8、PCI DSS v4.0.1/4.2.1

**类别：**保护 > 数据保护 > 加密 data-in-transit

**严重性：**中

**资源类型：**`AWS::DAX::Cluster`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/dax-tls-endpoint-encryption.html](https://docs.aws.amazon.com/config/latest/developerguide/dax-tls-endpoint-encryption.html)

**计划类型：**定期

**参数：**无

此控件可检查 Amazon DynamoDB Accelerator（DAX）集群是否在传输过程中进行加密，其端点加密类型设置为 TLS。如果 DAX 集群未在传输过程中进行加密，则此控件将失败。

HTTPS (TLS) 可用于帮助防止潜在的攻击者使用 person-in-the-middle或类似的攻击来窃听或操纵网络流量。应该只允许通过 TLS 加密连接来访问 DAX 集群。但是，加密传输中数据可能会影响性能。您应该在启用加密的情况下测试应用程序，以了解性能概况和 TLS 的影响。

### 修复
<a name="dynamodb-7-remediation"></a>

创建 DAX 集群后，将无法更改 TLS 加密设置。要加密现有 DAX 集群，请创建启用了传输中加密的新集群，将应用程序的流量转移到该集群，然后删除旧集群。有关更多信息，请参阅《Amazon DynamoDB 开发人员指南》**中的[使用删除保护](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection)。