Kinesis Video Streams 中的数据保护 - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Kinesis Video Streams 中的数据保护

您可以使用 () 密钥使用服务器端加密 (SSE),通过对 Amazon Kinesis Video Streams 中的静态数据进行加密,从而满足严格的数据管理要求。 Amazon Key Management Service Amazon KMS

什么是 Kinesis Video Streams 的服务器端加密?

服务器端加密是 Kinesis Video Streams 中的一项功能,它使用您指定的在数据处于静止状态之前自动对其 Amazon KMS 进行加密。数据在写入 Kinesis Video Streams 流存储层之前会对其进行加密,从存储中取回数据后会被解密。因此,在 Kinesis Video Streams 服务中,您的数据始终处于静态加密状态。

借助服务器端加密,您的 Kinesis 视频流制作者和使用者无需管理 KMS 密钥或加密操作。如果启用了数据保留,则您的数据在进入和离开 Kinesis Video Streams 时会自动加密,因此您的静态数据将被加密。 Amazon KMS 提供了服务器端加密功能使用的所有密钥。 Amazon KMS 简化了 Kinesis Video Streams Kinesis Video Streams 的 KMS 密钥的使用,该密钥 Amazon由导入到服务 Amazon KMS 中的用户指定的密钥管理。 Amazon KMS

成本、地区和性能注意事项

当你应用服务器端加密时,你需要支付 Amazon KMS API 使用量和密钥费用。与自定义 Amazon KMS 密钥不同,(Default) aws/kinesis-videoKMS 密钥是免费提供的。但是,你仍然必须支付 Kinesis Video Streams 代表你产生的 API 使用费用。

API 使用费用适用于每个 KMS 密钥,包括自定义密钥。 Amazon KMS 费用会随着您在数据创建者和使用者身上使用的用户凭证数量而变化,因为每个用户凭证都需要唯一的 API 调用。 Amazon KMS

下面按资源介绍各项费用:

  • Amazon 由(别名 aws/kinesis-video =)管理的 Kinesis Video Streams 的 KMS 密钥不收费。

  • 用户生成的 KMS 密钥需要 Amazon KMS key 付费。有关更多信息,请参阅Amazon Key Management Service 定价

Amazon KMS API 使用情况

生成新数据加密密钥或检索现有加密密钥的 API 请求会随着流量的增加而增加,并且需要支付 Amazon KMS 使用成本。有关更多信息,请参阅Amazon Key Management Service 定价:用量

即使保留期设置为 0(无保留期),Kinesis Video Streams 也会生成密钥请求。

按地区划分的服务器端加密的可用性

在所有提供 Kinesis Video Streams 的地方,都可以对 Kinesis 视频流 Amazon Web Services 区域 进行服务器端加密。

如何开始使用服务器端加密?

Kinesis Video Streams 始终启用服务器端加密。如果在创建直播时未指定用户提供的密钥,则使用默认密钥(由 Kinesis Video Streams 提供)。

在创建 Kinesis 视频流时,必须将用户提供的 KMS 密钥分配给 Kinesis 视频流。以后您无法使用 UpdateStreamAPI 为直播分配不同的密钥。

您可以通过两种方式为 Kinesis 视频流分配用户提供的 KMS 密钥:

  • 在中创建 Kinesis 视频流时 Amazon Web Services Management Console,请在创建新视频流页面的加密选项卡中指定 KMS 密钥。

  • 使用 CreateStreamAPI 创建 Kinesis 视频流时,请在参数中指定密钥 ID。KmsKeyId

创建和使用用户生成的 KMS 密钥

本节介绍如何创建和使用您自己的 KMS 密钥,而不是使用由 Amazon Kinesis Video Streams 管理的密钥。

创建用户生成的 KMS 密钥

有关如何创建自己的密钥的信息,请参阅Amazon Key Management Service 开发者指南中的创建密钥。为账户创建密钥后,Kinesis Video Streams 服务会在 KMS 主密钥列表中返回这些密钥。

使用用户生成的 KMS 密钥

向您的使用者、生产者和管理员应用正确的权限后,您就可以在自己的密钥 Amazon Web Services 账户 或其他密钥中使用自定义 KMS 密钥 Amazon Web Services 账户。您账户中的所有 KMS 密钥都显示在控制台的 KMS 主密钥列表中。

要使用位于其他账户中的自定义 KMS 密钥,您必须拥有使用这些密钥的权限。此外,您必须使用 CreateStream API 创建流。您不能在控制台中创建的直播中使用来自不同账户的 KMS 密钥。

注意

在执行PutMediaGetMedia操作之前,无法访问 KMS 密钥。这会产生以下结果:

  • 如果您指定的密钥不存在,则CreateStream操作会成功,但对流PutMediaGetMedia操作将失败。

  • 如果您使用提供的密钥 (aws/kinesis-video),则在执行第一个PutMediaGetMedia操作之前,该密钥不会出现在您的账户中。

使用用户生成的 KMS 密钥的权限

在对用户生成的 KMS 密钥使用服务器端加密之前,必须将 KMS 密钥策略配置为允许对流进行加密以及对流记录进行加密和解密。有关 Amazon KMS 权限的示例和更多信息,请参阅 Amazon KMS API 权限:操作和资源参考

注意

使用默认服务密钥进行加密不需要应用自定义 IAM 权限。

在使用用户生成的 KMS 密钥之前,请验证您的 Kinesis 视频流制作者和使用者(IAM 委托人)是否为主密钥策略 Amazon KMS 中的用户。否则,与流相关的读写操作会失败,这可能最终导致数据丢失、处理延迟或应用程序挂起。您可以使用 IAM policy 来管理 KMS 密钥的权限。有关更多信息,请参阅将 IAM 策略与一起使用 Amazon KMS

制作者权限示例

您的 Kinesis 视频流制作者必须获得以下许可:kms:GenerateDataKey

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kinesis-video:PutMedia", ], "Resource": "arn:aws:kinesis-video:*:123456789012:MyStream" } ] }

消费者权限示例

您的 Kinesis 视频流用户必须获得以下许可:kms:Decrypt

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kinesis-video:GetMedia", ], "Resource": "arn:aws:kinesis-video:*:123456789012:MyStream" } ] }