Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

DynamoDB 预防性安全最佳实践

以下最佳实践可帮助预测和预防 Amazon DynamoDB 中的安全事件。

静态加密

DynamoDB 使用存储在 AWS Key Management Service (AWS KMS) 中的加密密钥对存储在表、索引、流和备份中的所有用户数据进行静态加密。这通过保护您的数据免受未经授权的访问,为基础存储提供额外一层数据保护。

您可以指定 DynamoDB 应使用 AWS 拥有的 CMK(默认加密类型)还是 AWS 托管的 CMK 来加密用户数据。有关更多信息,请参阅 Amazon DynamoDB 静态加密

使用 IAM 角色对 DynamoDB 的访问进行身份验证

对于访问 DynamoDB 的用户、应用程序和其他 AWS 服务,它们必须在其 AWS API 请求中包含有效的 AWS 凭证。您不应直接在应用程序或 EC2 实例中存储 AWS 凭证。这些是不会自动轮换的长期凭证,因此,如果它们受到损害,可能会对业务产生重大影响。利用 IAM 角色,您可以获得可用于访问 AWS 服务和资源的临时访问密钥。

有关更多信息,请参阅身份验证

使用 IAM 策略进行 DynamoDB 基本授权

在授予权限时,您要决定谁获得权限,获得对哪些 DynamoDB API 的权限,以及您允许对这些资源执行的具体操作。实施最低权限对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。

将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对 DynamoDB 资源执行操作的权限。

您可以使用以下策略实现这一点:

使用 IAM 策略条件实现精细访问控制

在 DynamoDB 中授予权限时,可以指定确定权限策略如何生效的条件。实施最低权限对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。

您可以在使用 IAM 策略授予权限时指定条件。例如,您可以执行以下操作:

  • 授予权限以允许用户对表或二级索引中的特定项目和属性进行只读访问。

  • 根据用户身份授予权限,以允许用户对表中的特定属性进行只写访问。

有关更多信息,请参阅使用 IAM 策略条件实现精细访问控制

使用 VPC 终端节点和策略访问 DynamoDB

如果您只需要从 Virtual Private Cloud (VPC) 访问 DynamoDB,则应使用 VPC 终端节点来限制仅从所需的 VPC 访问。这样做可以防止流量经过开放的 Internet 并受到该环境的影响。

通过使用 DynamoDB 的 VPC 终端节点,您可以使用以下策略控制和限制访问:

  • VPC 终端节点策略 – 这些策略应用于 DynamoDB VPC 终端节点。它们允许您控制和限制对 DynamoDB 表的 API 访问。

  • IAM 策略 – 通过对附加到 IAM 用户、组或角色的策略使用 aws:sourceVpce 条件,可以强制对 DynamoDB 表的所有访问均通过指定的 VPC 终端节点。

有关更多信息,请参阅 Amazon DynamoDB 的终端节点

考虑使用客户端加密

如果您将敏感或机密数据存储在 DynamoDB 中,您可能希望将该数据加密到尽可能靠近其源的位置,以便在该数据的整个生命周期内对其进行保护。加密传输中和静态敏感数据有助于确保您的明文数据不会提供给任何第三方。

Amazon DynamoDB 加密客户端是一种软件库,可在您将表数据发送到 DynamoDB 之前帮助您保护该数据。

DynamoDB 的核心是加密、签名、验证和解密表项目的项目加密程序。它利用有关表项目的信息和要加密和签名的项目的说明。它将从您选择并配置的加密材料提供程序获取加密材料及加密材料的使用说明。