使用用户生成的 KMS 主密钥的权限 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

注意

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

在您使用用户生成的 KMS 主密钥之前,请确保您的 Kinesis 流创建器和消费端(IAM 主体)是 KMS 主密钥政策中的用户。否则,与流相关的读写操作会失败,这可能最终导致数据丢失、处理延迟或应用程序挂起。您可以使用 IAM policy 来管理 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:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*: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:GetRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:123456789012:MyStream" } ] }

适用于 Apache Flink 的亚马逊托管服务,并 Amazon Lambda 使用角色来消费 Kinesis 直播。确保将 kms:Decrypt 权限添加到这些消费端使用的角色。

流管理员权限

Kinesis 流管理员必须有权调用 kms:List*kms:DescribeKey*