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

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

Kinesis 视频流中的数据保护

您可以使用以下方式使用服务器端加密 (SSE)Amazon Key Management Service(Amazon KMS) 通过加密您在 Amazon Kinesis Video Streams 中的静态数据来满足严格的数据管理要求的密钥。

什么是 Kinesis 视频流的服务器端加密?

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

使用服务器端加密,您的 Kinesis 视频流制作者和使用者无需管理 KMS 密钥或加密操作。如果启用了数据保留,则您的数据在进入和离开 Kinesis Video Streams 时会自动加密,因此您的静态数据将被加密。Amazon KMS提供服务器端加密功能使用的所有密钥。Amazon KMS简化了由管理的 Kinesis 视频流的 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。

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

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

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

Amazon KMSAPI 的使用情况

请求生成新数据加密密钥或检索现有加密密钥的 API 请求会随流量增加而增多,且会产生 Amazon KMS 使用费用。有关更多信息,请参见Amazon Key Management Service定价:用法

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

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

所有 Kinesis 视频流的服务器端加密都可用Amazon Web Services 区域其中 Kinesis 视频直播可用。

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

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

创建 Kinesis 视频流时,必须为其分配用户提供的 KMS 密钥。您无法使用为直播分配不同的密钥UpdateStream稍后再说 API。

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

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

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

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

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

创建用户生成的 KMS 密钥

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

使用用户生成的 KMS 密钥

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

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

注意

直到 KMS 密钥才会被访问PutMedia要么GetMedia操作已进行。这会产生以下结果:

  • 如果您指定的密钥不存在,则CreateStream操作成功,但是PutMediaGetMedia数据流上的操作失败。

  • 如果你使用提供的密钥 (aws/kinesis-video),直到第一个密钥才出现在你的账户中PutMedia要么GetMedia操作已执行。

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

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

注意

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

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

生产者权限示例

您的 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" } ] }