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には以下の重大なセキュリティリスクが存在します:

  1. ストリーミングデータの漏洩: リアルタイムで処理される機密データ(クレジットカード情報、医療記録、IoTデバイスデータ、ログデータ等)が平文で保存されるリスク
  2. 規制コンプライアンス違反: PCI DSS(カード会員データの暗号化要求)、HIPAA(保護対象保健情報のPHI暗号化)、GDPR(個人データ保護)等の要件を満たせず、最大30万ユーロまたは全世界年間売上高の4%の罰金リスク
  3. AWS責任共有モデルの不履行: 顧客責任であるデータ暗号化を実施していないことによるセキュリティ不備
  4. データレジデンシー要件の違反: 特定の地域や国内でのデータ保管時の暗号化要件を満たせない
  5. インシデント対応の困難化: データ漏洩発生時に、影響範囲や漏洩内容の特定が困難で、通知義務や対応が遅れる

修復方法

コンソールでの修復手順

AWSのコンソールを使用して、Kinesis Data Streamの暗号化を有効にします。

手順1: 既存のストリームの確認

  1. AWS Management Consoleにログインします
  2. Kinesisサービスに移動します
  3. 左側のナビゲーションペインから「データストリーム」を選択します
  4. ストリーム一覧で暗号化状態を確認します
  5. 「暗号化」列が「無効」となっているストリームを特定します

手順2: 既存ストリームの暗号化有効化

  1. 暗号化されていないストリームを選択します
  2. 「設定」タブに移動します
  3. 「暗号化」セクションで「編集」をクリックします
  4. 「サーバー側の暗号化」を有効にします:
    • 「有効化」を選択
    • KMSキーを選択(aws/kinesisまたはカスタムキー)
  5. 「変更の保存」をクリックします

注意事項

  • 既存データの制限: 既存のストリームで暗号化を有効にしても、保持期間内の既存データは遡って暗号化されません
  • 暗号化のタイミング: 暗号化を有効にした後に書き込まれるデータのみが暗号化されます
  • KMSキーアクセス権限: プロデューサーはkms:GenerateDataKey、コンシューマーはkms:Decrypt権限が必要です
  • コスト考慮: AWS管理型キー(aws/kinesis)は追加コストなし、カスタムKMSキーはAPIコール料金が発生します
  • パフォーマンス影響: 暗号化によるレイテンシー増加は通常最小限(数マイクロ秒)ですが、高スループットシナリオではテストが必要です

最後に

この記事では、Kinesis Data Streamsのサーバーサイド暗号化について、リスクと対策を解説しました。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

参考資料

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る