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

DynamoDB 检测性安全最佳实践

Amazon DynamoDB 的以下最佳实践可以帮助检测潜在的安全漏洞和事件。

使用 AWS CloudTrail 监控 AWS 托管 KMS 密钥使用情况

如果您使用 AWS 托管客户主密钥 (CMK) 进行静态加密,则此密钥的使用情况会记录到 AWS CloudTrail 中。通过记录对您的账户所采取的操作,CloudTrail 提供对用户活动的可见性。CloudTrail 可记录每个操作的重要信息,包括请求的发出方、使用的服务、执行的操作、操作的参数以及 AWS 服务返回的响应元素。此信息可帮助您跟踪对 AWS 资源所做的更改并排查操作问题。CloudTrail 更容易确保符合内部政策和监管标准。

您可以使用 CloudTrail 审核密钥使用情况。CloudTrail 可创建日志文件,其中包含您的账户的 AWS API 调用和相关事件的历史记录。这些日志文件包含通过 AWS 管理控制台、AWS SDK 开发工具包和命令行工具,以及通过集成的 AWS 服务发出的所有 AWS KMS API 请求。您可以使用这些日志文件来获取有关使用 CMK 的时间、请求的操作、请求者的身份、发出请求的 IP 地址等信息。有关更多信息,请参阅使用 AWS CloudTrail 记录 AWS KMS API 调用AWS CloudTrail 用户指南

使用 CloudTrail 监控 DynamoDB 控制层面操作

通过记录对您的账户所采取的操作,CloudTrail 提供对用户活动的可见性。CloudTrail 可记录每个操作的重要信息,包括请求的发出方、使用的服务、执行的操作、操作的参数,以及 AWS 服务返回的响应元素。此信息可帮助您跟踪对 AWS 资源所做的更改并解决操作问题。CloudTrail 更容易确保符合内部政策和监管标准。

控制层面操作可让您创建和管理 DynamoDB 表。它们还可让您使用依赖于表的索引、流和其他对象。

当 DynamoDB 中发生活动时,该活动将记录在 CloudTrail 事件中,并与其他 AWS 服务事件一同保存在事件历史记录中。有关更多信息,请参阅使用 AWS CloudTrail 记录 DynamoDB 操作。您可以在 AWS 账户中查看、搜索和下载最新事件。有关更多信息,请参阅AWS CloudTrail 用户指南中的使用 CloudTrail 事件历史记录查看事件

要持续记录 AWS 账户中的事件(包括 DynamoDB 的事件),请创建跟踪。通过跟踪,CloudTrail 可将日志文件传送至 Amazon Simple Storage Service (Amazon S3) 存储桶。默认情况下,在控制台上创建跟踪时,此跟踪应用于所有 AWS 区域。此跟踪在 AWS 分区中记录所有区域中的事件,并将日志文件传送至您指定的 S3 存储桶。此外,您可以配置其他 AWS 服务,进一步分析 CloudTrail 日志中收集的事件数据并采取操作。

考虑使用 DynamoDB 流 监控修改/更新数据层面操作

AWS CloudTrail 不支持记录 DynamoDB 数据层面操作,如 GetItemPutItem。因此,您可能希望考虑使用 Amazon DynamoDB Streams 作为您环境中发生的这些事件的来源。

DynamoDB 与 AWS Lambda 集成,使您能够创建触发器,也就是自动响应 DynamoDB 流 中的事件的代码片段。利用触发器,您可以创建应对 DynamoDB 表中的数据修改的应用程序。

如果您在表中启用 DynamoDB 流,则可以将流 Amazon 资源名称 (ARN) 与您编写的 Lambda 函数关联起来。在修改表中的项目之后,表的流中都将出现一条新记录。AWS Lambda 将轮询流并在检测到新的流记录时同步调用 Lambda 函数。Lambda 函数可以执行您指定的任何操作,例如发送通知或启动工作流程。

有关示例,请参阅教程:将 AWS Lambda 与 Amazon DynamoDB Streams 结合使用。 此示例接收 DynamoDB 事件输入,处理它所包含的消息,并将某些传入事件数据写入 Amazon CloudWatch Logs。

使用 AWS Config 监控 DynamoDB 配置

通过使用 AWS Config,您可以持续监控和记录 AWS 资源的配置更改。AWS Config 还允许您清点 AWS 资源。当检测到原有状态发生更改时,系统将向您发送 Amazon Simple Notification Service (Amazon SNS) 通知,以便您查看更改并采取相应操作。请按照使用控制台设置 AWS Config 中的指导进行操作,确保包含 DynamoDB 资源类型。

您可以将 AWS Config 配置为将配置变更和通知流式传输到 Amazon SNS 主题。例如,在资源更新时,您可以通过电子邮件接收通知,从而能够查看变更。您也可以在 AWS Config 针对您的资源评估自定义规则或托管规则时收到通知。

有关示例,请参阅AWS Config Developer Guide中的 AWS Config 发送给 Amazon SNS 主题的通知

使用 AWS Config 规则监控 DynamoDB 合规性

AWS Config 可持续跟踪资源之间发生的配置更改。它会检查这些更改是否违反了规则中的任何条件。如果某个资源违反了规则,那么 AWS Config 会将该资源和规则标记为不合规。

通过使用 AWS Config 评估资源配置,您可以评估资源配置对内部实践、行业准则和法规的遵循程度。AWS Config 提供 AWS 托管规则,这些预定义的、可自定义的规则供 AWS Config 用于评估 AWS 是否遵循常见最佳实践。

标记您的 DynamoDB 资源以进行识别和自动化

您可以以标签的形式为您的 AWS 资源分配元数据。每个标签都是由客户定义的密钥和可选值组成的简单标签,可以更轻松地管理、搜索和筛选资源。

通过标记,可实现分组控件。尽管没有固有类型的标签,但利用标签,您可以根据用途、所有者、环境或其他标准来将资源分类。以下是一些示例:

  • 安全性 – 用于确定加密等要求。

  • 保密性 – 资源支持的特定数据机密性级别的标识符。

  • 环境 – 用于区分开发、测试和生产基础设施。

有关更多信息,请参阅 AWS 标记策略DynamoDB 的标记