Amazon Kinesis Data Streams
開発者ガイド

ユーザー生成 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* を呼び出す権限が必要です。