亚马逊AWS官方博客

新增:Amazon Kinesis Streams 服务器端加密

在这个智能家居、大数据、物联网设备、手机、社交网络、聊天机器人和游戏机的时代,流媒体数据场景无处不在。利用 Amazon Kinesis Streams,您可以构建自定义应用程序,以便从数千个流媒体数据源捕获、处理、分析和存储每小时数 TB 的数据。由于 Amazon Kinesis Streams 允许应用程序从同一个 Kinesis 流并发处理数据,因此您可以构建并行处理系统。例如,您可以将处理后的数据发送到 Amazon S3,使用 Amazon Redshift 执行复杂分析,甚至使用 AWS Lambda 构建强大的无服务器流媒体解决方案。

Kinesis Streams 为消费者提供了多种流媒体使用案例,现在我们通过为 Kinesis Streams 添加服务器端加密 (SSE) 支持,让服务能够更有效地保护您的传输中数据。借助 Kinesis Streams 的这一新功能,现在您可以提高数据安全性和/或满足任何法规和合规性要求,以符合组织的任何数据流式处理需求。
事实上,Kinesis Streams 现在是支付卡行业数据安全标准 (PCI DSS) 合规性计划涵盖的 AWS 服务之一。PCI DSS 是由主要金融机构成立的 PCI 安全标准委员会管理的专有信息安全标准。PCI DSS 合规性适用于存储、处理或传输持卡人数据和/或敏感的身份验证数据的所有实体,其中包括服务提供商。您可以使用 AWS Artifact 索要 PCI DSS 合规性证明和责任摘要。但是,关于 Kinesis Streams 合规性的好消息还不止这些。Kinesis Streams 现在还符合 AWS GovCloud 中的 FedRAMP 标准。FedRAMP 代表“联邦风险与授权管理项目”(Federal Risk and Authorization Management Program),是美国政府实施的一个项目,为云产品和云服务的安全评估、授权和持续监控提供了一种标准方法。您可以在这里了解有关 AWS 服务的 FedRAMP 合规性的更多信息。

现在您准备好了解关键点了吗?那就记住关键点,而不是纠结于细节。好吧,是有点陈词滥调,但这是我能想到的最好类比了。回到 Kinesis Streams 的 SSE 讨论中,让我来解释 Kinesis 的服务器端加密流程。使用 PutRecord 或 PutRecords API 放入 Kinesis Stream 中的每个数据记录和分区键均使用 AWS Key Management Service (KMS) 主密钥进行加密。通过 AWS Key Management Service (KMS) 主密钥,Kinesis Streams 使用 256 位高级加密标准 (AES-256 GCM 算法) 对传入数据进行加密。

为了对新的或现有流启用 Kinesis Streams 服务器端加密,您可以使用 Kinesis 管理控制台或利用某个可用的 AWS 软件开发工具包。此外,您还可以使用 AWS CloudTrail 服务审核流加密历史记录,验证 Kinesis Streams 控制台中特定流的加密状态,或者检查 PutRecord 或 GetRecord 事务是否已加密。

演练:Kinesis Streams 服务器端加密

我们来快速演练一下 Kinesis Streams 的服务器端加密。首先,我将访问 Amazon Kinesis 控制台并选择 Streams 控制台选项。

进入 Kinesis Streams 控制台后,我可以向我现有的某个 Kinesis 流添加服务器端加密,或者选择创建一个新的 Kinesis 流。对于此演练,我将选择快速创建一个新的 Kinesis 流,因此,我选择 Create Kinesis stream 按钮。

我将该流命名为 KinesisSSE-stream,然后为它分配一个分区。请记住,您的流的数据容量是根据为流指定的分区数量计算的。您可以使用控制台中的 Estimate the number of shards you’ll need 下拉菜单,或者通过在此处阅读更多有关计算方式的内容来估计流中的分区数。为了完成流的创建,现在我单击 Create Kinesis stream 按钮。

创建 KinesisSSE-stream 后,我将在控制面板中选择它,然后选择 Actions 下拉菜单并选择 Details 选项。


KinesisSSE-stream 的“Details”页面上,现在有一个 Server-side encryption 部分。在该部分中,我将选择 Edit 按钮。

现在,我可以通过选择 Enabled 单选按钮,使用 AWS KMS 主密钥为我的流启用服务器端加密。选择该选项后,我就可以选择将哪个 AWS KMS 主密钥用于 KinesisSSE-stream 中的数据加密。我可以选择 Kinesis 服务生成的 KMS 主密钥 (Default) aws/kinesis,也可以选择之前我自己生成的一个 KMS 主密钥。我将选择默认主密钥,然后只需单击 Save 按钮即可。


就是这样!从下面的屏幕截图中可以看出,只有大约 20 秒,服务器端加密即添加到我的 Kinesis 流中,现在传入到我的流中的任何数据都将被加密。需要注意的是,服务器端加密仅对在启用加密后传入的数据进行加密。启用服务器端加密之前 Kinesis 流中预先存在的数据将保持未加密状态。

总结

使用 AWS KMS 密钥的 Kinesis Streams 服务器端加密让您可以轻松地自动加密传入流中的流媒体数据。您可以使用 AWS 管理控制台或 AWS 软件开发工具包启动、停止或更新任何 Kinesis 流的服务器端加密。要了解有关 Kinesis 服务器端加密、AWS Key Management Service 或 Kinesis Streams 的更多信息,请查看 Amazon Kinesis 入门指南AWS Key Management Service 开发人员指南Amazon Kinesis 产品页面

祝流式处理顺利。

Tara