数据密钥缓存示例 - AWS Encryption SDK

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

数据密钥缓存示例

该示例将数据密钥缓存本地缓存一起使用以加快应用程序速度,其中,加密多个设备生成的数据并存储在不同的区域中。

在这种情况下,多个数据生成器生成数据,对其进行加密,然后写入到每个区域中的 Kinesis 流AWS Lambda 函数(消费端)对流进行解密,然后将明文数据写入到区域中的 DynamoDB 表。数据生成器和消费端使用 AWS Encryption SDK 和 AWS KMS 密钥提供程序。要减少对 KMS 的调用,每个生成器和消费端具有自己的本地缓存。

您可以在 Java and Python 中找到这些示例的源代码。该示例还包含一个 AWS CloudFormation 模板,它定义了这些示例的资源。

此图演示了数据生成器和消费端如何使用 AWS KMS、Amazon Kinesis Data Streams 和 Amazon DynamoDB。

本地缓存结果

下表演示了本地缓存将该示例中的总 KMS 调用次数(每个区域每秒)减少到原始值的 1%。

生成器请求
每个客户端每秒的请求数 每个区域的客户端数 每个区域每秒的平均请求数
生成数据密钥 (us-west-2) 加密数据密钥 (eu-central-1) 总计(每个区域)
无缓存 1 1 1 500 500
本地缓存 1 rps/100 次使用 1 rps/100 次使用 1 rps/100 次使用 500 5
使用者请求
每个客户端每秒的请求数 每个区域的客户端数 每个区域每秒的平均请求数
解密数据密钥 创建器 Total
无缓存 每个创建者 1 rps 500 500 2 1000
本地缓存 每个创建者 1 rps/100 次使用 500 5 2 10