Kinesis Data Streamsのサーバーサイド暗号化設定

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Kinesis Data Streamsのサーバーサイド暗号化について、リスクと対策を解説します。

ポリシーの説明
Amazon Kinesis Data Streamsのサーバーサイド暗号化(SSE-KMS)は、ストリーミングデータを保存時に自動的に暗号化する機能です。AWS Key Management Service (KMS) と統合されており、256ビットAdvanced Encryption Standard (AES-256 GCM)アルゴリズムを使用してデータを暗号化します。シャード内のデータは暗号化され、プロデューサーとコンシューマーの両方に対して透過的に動作します。パフォーマンスへの影響は最小限で、レイテンシーの増加は通常数マイクロ秒程度です。
リスク
暗号化されていないKinesis Data Streamには以下の重大なセキュリティリスクが存在します:
- ストリーミングデータの漏洩: リアルタイムで処理される機密データ(クレジットカード情報、医療記録、IoTデバイスデータ、ログデータ等)が平文で保存されるリスク
- 規制コンプライアンス違反: PCI DSS(カード会員データの暗号化要求)、HIPAA(保護対象保健情報のPHI暗号化)、GDPR(個人データ保護)等の要件を満たせず、最大30万ユーロまたは全世界年間売上高の4%の罰金リスク
- AWS責任共有モデルの不履行: 顧客責任であるデータ暗号化を実施していないことによるセキュリティ不備
- データレジデンシー要件の違反: 特定の地域や国内でのデータ保管時の暗号化要件を満たせない
- インシデント対応の困難化: データ漏洩発生時に、影響範囲や漏洩内容の特定が困難で、通知義務や対応が遅れる
修復方法
コンソールでの修復手順
AWSのコンソールを使用して、Kinesis Data Streamの暗号化を有効にします。
手順1: 既存のストリームの確認
- AWS Management Consoleにログインします
- Kinesisサービスに移動します
- 左側のナビゲーションペインから「データストリーム」を選択します
- ストリーム一覧で暗号化状態を確認します
- 「暗号化」列が「無効」となっているストリームを特定します
手順2: 既存ストリームの暗号化有効化
- 暗号化されていないストリームを選択します
- 「設定」タブに移動します
- 「暗号化」セクションで「編集」をクリックします
- 「サーバー側の暗号化」を有効にします:
- 「有効化」を選択
- KMSキーを選択(aws/kinesisまたはカスタムキー)
- 「変更の保存」をクリックします

注意事項
- 既存データの制限: 既存のストリームで暗号化を有効にしても、保持期間内の既存データは遡って暗号化されません
- 暗号化のタイミング: 暗号化を有効にした後に書き込まれるデータのみが暗号化されます
- KMSキーアクセス権限: プロデューサーはkms:GenerateDataKey、コンシューマーはkms:Decrypt権限が必要です
- コスト考慮: AWS管理型キー(aws/kinesis)は追加コストなし、カスタムKMSキーはAPIコール料金が発生します
- パフォーマンス影響: 暗号化によるレイテンシー増加は通常最小限(数マイクロ秒)ですが、高スループットシナリオではテストが必要です
最後に
この記事では、Kinesis Data Streamsのサーバーサイド暗号化について、リスクと対策を解説しました。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。