Amazon Kinesis Data Streams
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

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

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

注意

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

在您使用用户生成的 KMS 主密钥之前,请确保您的 Kinesis 流创建者和使用者 (IAM 委托人) 是 KMS 主密钥策略中的用户。否则,与流相关的读写操作会失败,这可能最终导致数据丢失、处理延迟或应用程序挂起。您可以使用 IAM 策略来管理 KMS 密钥的权限。有关更多信息,请参阅在 AWS 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" } ] }

Amazon Kinesis Data Analytics 和 AWS Lambda 通过角色来使用 Kinesis 流。确保将 kms:Decrypt 权限添加到这些使用者使用的角色。

流管理员权限

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