View a markdown version of this page

ユーザー生成の KMS キーを使用するための許可 - Amazon Kinesis Data Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザー生成の KMS キーを使用するための許可

ユーザーが生成した KMS キーでサーバー側の暗号化を使用する前に、ストリームの暗号化とストリームレコードの暗号化と復号を許可するように AWS KMS キーポリシーを設定する必要があります。アクセス AWS KMS 許可の例と詳細については、AWS 「KMS API のアクセス許可: アクションとリソースのリファレンス」を参照してください。

注記

暗号化のためのデフォルトサービスキーの使用では、カスタム IAM 許可の適用は必要ありません。

ユーザー生成 KMS マスターキーを使用する前に、Kinesis ストリームプロデューサーおよびコンシューマー (IAM プリンシパル) が、KMS マスターキーポリシーでユーザーになっていることを確認します。ユーザーになっていない場合は、ストリームに対する読み取りと書き込みが失敗し、最終的にはデータの損失、処理の遅延、またはアプリケーションのハングにつながる可能性があります。IAM ポリシーを使用して KMS キーの許可を管理できます。詳細については、「KMS での IAM AWS ポリシーの使用」を参照してください。

Kinesis Data Streams 暗号化コンテキスト

Amazon Kinesis Data Streams AWS KMS がユーザーに代わって を呼び出すと、暗号化コンテキストが に渡されます。 AWS KMS このコンテキストは、キーポリシーと許可で認可の条件として使用できます。Kinesis Data Streams は、すべての AWS KMS 呼び出しでストリーム ARN を暗号化コンテキストとして使用します。

"encryptionContext": { "aws:kinesis:arn": "arn:aws:kinesis:region:account-id:stream/stream-name" }

暗号化コンテキストを使用して、監査レコードとログでの KMS キーの使用を特定できます。また、 などのログにもプレーンテキストで表示されます AWS CloudTrail。

KMS キーの使用を特定のストリームの Kinesis Data Streams からのリクエストに制限するには、KMS キーポリシーまたは IAM ポリシーで kms:EncryptionContext:aws:kinesis:arn条件キーを使用します。

プロデューサーのアクセス許可の例

Kinesis ストリームプロデューサーには kms:GenerateDataKey 許可が必要です。

JSON
{ "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 許可が必要です。

JSON
{ "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 Managed Service for Apache Flink および AWS Lambda は、ロールを使用して Kinesis ストリームを消費します。これらのコンシューマーが使用するロールには、kms:Decrypt 許可を追加するようにしてください。

ストリーム管理者の許可

Kinesis ストリーム管理者には、kms:List*kms:DescribeKey* を呼び出すための権限が必要です。