本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Kinesis 视频流中的数据保护
通过在 Amazon Kinesis Video Streams 中加密静态数据,您可以使用 Amazon Key Management Service (Amazon KMS) 密钥使用服务器端加密 (SSE) 来满足严格的数据管理要求。
什么是 Kinesis Video Streams 的服务器端加密?
Server-side 加密是 Kinesis Video Streams 中的一项功能,它使用您指定的 Amazon KMS 密钥在静态存储数据之前自动加密数据。数据在写入 Kinesis Video Streams 流存储层之前加密,并在从存储检索到之后进行解密。因此,您的数据在 Kinesis Video Streams 服务中始终处于静态加密状态。
借助服务器端加密,您的 Kinesis 视频流制作者和消费者无需管理 KMS 密钥或加密操作。如果启用了数据保留,则您的数据在进入和离开 Kinesis Video Streams 时会自动加密,因此您的静态数据会被加密。 Amazon KMS 提供服务器端加密功能使用的所有密钥。 Amazon KMS 简化了 KMS 密钥在 Kinesis Video Streams 中的使用,该密钥由 Amazon导入到该服务的用户指定的 Amazon KMS 密钥管理。 Amazon KMS
费用、区域和性能注意事项
当您应用服务器端加密时,您将受到 Amazon KMS API 使用和密钥成本的约束。与自定义 Amazon KMS 密钥不同,默认 aws/kinesisvideo KMS 密钥免费提供。但是,您仍然必须支付 Kinesis Video Streams 代表您产生的 API 使用费用。
API 使用费用适用于每个 KMS 密钥,包括自定义密钥。 Amazon KMS 成本随您在数据创建者和消费者身上使用的用户凭证数量而变化,因为每个用户凭证都需要对 Amazon KMS进行唯一的 API 调用。
下面按资源介绍各项费用:
键
-
由 Amazon (别名 =
aws/kinesisvideo)管理的 Kinesis Video Streams 的 KMS 密钥不收费。 -
User-generated KMS 密钥需要 Amazon KMS key 付费。有关更多信息,请参阅Amazon Key Management Service 定价
。
Amazon KMS API 使用
生成新数据加密密钥或检索现有加密密钥的 API 请求随着流量的增加而增加,并受 Amazon KMS 使用成本的限制。有关更多信息,请参阅Amazon Key Management Service 定价:用量
即使保留期设置为 0(无保留期),Kinesis Video Streams 也会生成关键请求。
按区域的服务器端加密的可用性
Server-side 所有提供 Kinesis 视频流 Amazon Web Services 区域 的地方都可加密 Kinesis 视频流。
如何开始使用服务器端加密?
Server-side Kinesis Video Streams 始终启用加密。如果在创建直播时未指定用户提供的密钥,则使用 Amazon 托管式密钥 (由 Kinesis Video Streams 提供)。
创建 Kinesis 视频流时,必须将用户提供的 KMS 密钥分配给该视频流。以后不能使用 UpdateStream API 为直播分配不同的密钥。
您可以通过两种方式为 Kinesis 视频流分配用户提供的 KMS 密钥:
-
在中创建 Kinesis 视频流时 Amazon Web Services 管理控制台,在 “创建新视频流” 页面的 “加密” 选项卡中指定 KMS 密钥。
-
使用 CreateStream API 创建 Kinesis 视频流时,请在
KmsKeyId参数中指定密钥 ID。
创建和使用客户管理的密钥
本节介绍如何创建和使用您自己的 KMS 密钥,而不是使用由 Amazon Kinesis Video Streams 管理的密钥。
创建客户托管的密钥
有关如何创建自己的密钥的信息,请参阅Amazon Key Management Service 开发者指南中的创建密钥。为账户创建密钥后,Kinesis Video Streams 服务会在客户管理的密钥列表中返回这些密钥。
使用由客户托管的密钥。
将正确的权限应用于您的消费者、生产者和管理员后,您可以自己 Amazon Web Services 账户 或他人使用自定义 KMS 密钥 Amazon Web Services 账户。您账户中的所有 KMS 密钥都显示在控制台的客户管理密钥列表中。
要使用位于另一个账户中的自定义 KMS 密钥,您必须拥有使用这些密钥的权限。此外,您必须使用 CreateStream API 创建流。您不能在控制台中创建的流中使用来自不同账户的 KMS 密钥。
注意
只有在执行PutMedia或GetMedia操作后,才能访问 KMS 密钥。这会产生以下结果:
-
如果您指定的密钥不存在,则
CreateStream操作成功,但对流PutMedia的GetMedia操作将失败。 -
如果您使用提供的密钥 (
aws/kinesisvideo),则在执行第一个PutMedia或GetMedia操作之前,该密钥不会出现在您的账户中。
使用客户管理密钥的权限
在对客户管理的密钥使用服务器端加密之前,必须配置 KMS 密钥策略以允许加密流以及加密和解密流记录。有关 Amazon KMS 权限的示例和更多信息,请参阅 Amazon KMS API 权限:操作和资源参考。
注意
使用默认服务密钥进行加密不需要应用自定义 IAM 权限。
在使用客户管理的密钥之前,请验证您的 Kinesis 视频流制作者和消费者(IAM 委托人)是否为 Amazon KMS 默认密钥策略中的用户。否则,与流相关的读写操作会失败,这可能最终导致数据丢失、处理延迟或应用程序挂起。您可以使用 IAM policy 来管理 KMS 密钥的权限。有关更多信息,请参阅将 IAM 策略与一起使用 Amazon KMS。
产生器权限示例
您的 Kinesis 视频流制作人必须kms:GenerateDataKey获得许可:
消费者权限示例
您的 Kinesis 视频直播消费者必须kms:Decrypt获得许可: