Amazon Web Services ブログ
Amazon Kinesis Video Streams のプライバシーと E2E セキュリティの概要
はじめに
モノのインターネット(IoT)デバイスとリアルタイムのビデオストリーミングがますます推進する世界では、プライバシーとセキュリティがこれまで以上に重要になっています。 Amazon Kinesis Video Streams は、スマートホーム、産業オートメーション、ヘルスケアのいずれで使用されるかにかかわらず、デバイスから AWS クラウドにライブビデオをストリーミングするための、フルマネージドかつスケーラブルでセキュアなプラットフォームを提供します。 このブログでは、Amazon Kinesis Video Streams を強化する詳細なプライバシーとエンドツーエンド(E2E)セキュリティの概要について説明します。
Amazon Kinesis Video Streams の概要
Amazon Kinesis Video Streams は、セキュリティカメラ、ボディーカメラ、ダッシュボードなどのデバイスから、ライブビデオや音声、深度検知フィードなどのタイムエンコードされたデータを AWS クラウドにストリーミングすることを可能にします。 ビデオストリームが保存されると、ユーザーはそれをリアルタイムで処理したり、後で解析のためにアクセスしたりすることができます。 このシステムは、すべてのストリームデータがすべての段階で保護されたままであることを保証します。
Kinesis Video Streams セキュリティモデルのコアコンポーネント
-
プロデューサーデバイス
- プロデューサーは、ビデオストリームをキャプチャして AWS クラウドに送信するカメラなどのデバイスです。 Kinesis Video Streams は、データ伝送を保護するためにこれらのデバイスにインストールできるプロデューサーライブラリを提供します。
- これらのプロデューサーライブラリは、リアルタイムストリーミング、バッファベースの伝送、イベント後のメディアアップロードなど、複数のビデオストリーミングシナリオをサポートします。 これらのライブラリは、接続の中断を処理し、接続が再確立されるとストリーミングを再開するように構築されており、信頼性を保証します。
-
コンシューマー
- コンシューマーとは、視聴、処理、分析のためにビデオストリームを取得するアプリケーションのことです。 ライブビデオ視聴アプリのようなリアルタイムコンシューマである場合もあれば、クラウドにデータが保存された後にビデオ分析に使用されるバッチ処理アプリケーションである場合もあります。
-
Kinesis Video Streams
- ストリームはビデオデータのトランスポート層です。 これらのストリームは、ビデオデータを保存し、インデックスを付け、複数のアプリケーションが並行して、リアルタイムまたは保存後のビデオデータにアクセスできるようにします。
-
モニタリングのための CloudTrail
- Kinesis Video Streams は AWS CloudTrail と統合されており、サービスに対して行われたすべての API コールをログに記録し、誰が、どこから、いつストリームにアクセスしたかなどの重要な詳細を追跡します。 これにより、データに対して実行されたすべての操作について、完全な透明性と説明責任を提供します。
Kinesis Video Streams のプライバシーとセキュリティ機能
Kinesis Video Streams は、緻密なプライバシーとセキュリティ対策を講じて設計されており、シームレスな E2E 暗号化プロセスを提供し、デバイスに取り込まれた時点から許可されたアプリケーションで消費されるまでデータを保護します。
-
転送時および保管時のデータ暗号化
- 輸送時の暗号化:
- プロデューサデバイスと AWS クラウド間で送信されるビデオストリームはすべて、TLS(トランスポートレイヤーセキュリティ)を使用して暗号化されます。 TLS は第三者による傍受からデータを保護し、デバイスとクラウド間の通信を保護します。 さらに、TLS は通信を暗号化することで中間者攻撃を防ぎ、デバイスとクラウド間を行き来するデータを権限のない第三者が傍受、読み取り、変更することを不可能にします。
- プロデューサーデバイスが使用する Kinesis Video Streams SDK は、デフォルトですべての送信データ(ビデオフレーム)を TLS 暗号化で保護します。
- 保管時の暗号化:
- ビデオストリームが AWS クラウドに到達すると、暗号化された形で保存されます。 この暗号化は AWS Key Management Service(AWS KMS)によって管理されます。 お客様は、AWS マネージドキーを使用するか、カスタマーマネージドキー(CMK)を提供するかを選択できます。
- エンベロープ暗号化が採用され、各ビデオフレームはデータ暗号化キー(DEK)を使って暗号化され、このキー自体は AWS KMS が提供するマスターキーで暗号化されます。 これにより、セキュリティのレイヤーが追加され、不正アクセスから保護されます。
- 輸送時の暗号化:
-
セキュアなデバイス登録とデータ暗号化キー管理
- デバイスの登録:
- 新しいカメラやデバイスが登録されると、TLS を使用してクラウドとの安全な接続が確立されます。 このプロセスでは、デバイスとクラウドの両方を認証するために証明書を交換する TLS ハンドシェイクが行われ、安全な通信チャネルが確立されます。
- 暗号化:
- ビデオフレームの暗号化に使用される DEK は、AWS KMS によって生成・管理されます。 ストリームの作成時に、お客様は AWS KMS マスターキーを設定し、これが DEK の暗号化に使用されます。 DEK はビデオデータを暗号化し、転送時と保管時の両方で安全性を確保します。
- 鍵の管理:
- DEK は AWS KMS 内で安全に管理され、許可されたエンティティのみがアクセス可能です。 クラウドサービスは、適切な権限を持つデバイスとクライアントのみがビデオデータにアクセスし、復号化できることを保証し、不正アクセスを防止します。
- Kinesis Video Streams は AWS KMS と統合し、保管時のデータ暗号化のための堅牢な鍵管理を提供します。 お客様は AWS KMS を通じて暗号鍵を完全に管理でき、カスタマーマネージドキー(CMK)の作成、管理、ローテーション、アクセスポリシーの定義が可能です。 AWS KMS は、鍵の使用状況の詳細な監査と監視によって鍵管理を一元化し、お客様がコンプライアンスや規制要件を満たすのを支援します。 AWS KMS を使用することで、Kinesis Video Streams は、サービス内に保存されたデータが安全に管理・保護されたキーを使用して暗号化され、適切な権限を持つ許可されたユーザーとサービスのみがビデオストリームを復号してアクセスできることを保証します。
- このプロセスにより、データはデバイスとクラウド間で安全に交換され、許可されたデバイスのみがビデオデータを送受信できます。
- デバイスの登録:
-
アクセス制御とアクセス許可
- Kinesis Video Streams は最小権限アクセスの原則に基づいて動作します。 つまり、ユーザーまたはアプリケーションは、そのタスクを実行するために必要な権限のみを受け取り、不正なアクションのリスクを最小限に抑えます。
- AWS Identity and Access Management (IAM) ロールは、プロデューサとコンシューマのアプリケーションの権限を安全に管理するために使用されます。 これにより、機密性の高い認証情報がアプリケーションに埋め込まれたり、安全でない方法で保管されたりすることを防ぎます。
- デフォルトでは、プロデューサは kinesisvideo:PutMedia、kinesisvideo:GetDataEndpoint、kinesisvideo:DescribeStream などのパーミッションのみを必要とし、コンシューマは kinesisvideo:GetDataEndpoint と kinesisvideo:GetMedia へのアクセスが必要となります。 最小特権の原則に従い、必要なパーミッションのみを付与することで、過剰なパーミッションがもたらすセキュリティリスクを大幅に軽減できます。
-
End-to-End Encryption (E2EE)
- Kinesis Video Streams の End-to-End Encryption (E2EE) は、追加のプライバシーを必要とするお客様に、既存の Kinesis Video Streams のプロデューサーとコンシューマー SDK の上に暗号化を実装することができます。 E2EE を活用することで、お客様はメディアデータとメタデータが、例えばカメラがプロデューサーとして動作するプロデューサーのキャプチャポイントから、認証されたコンシューマーアプリケーションに至るまで、暗号化されたままであることを保証することができます。 Kinesis Video Streams のインジェストプロトコルには柔軟なスキーマが含まれているため、暗号化されたメディアと暗号化されたキーをシームレスに転送できます。 E2EE を有効にすることで、オンプレミスであろうと AWS クラウドサービスを経由した転送であろうと、プロデューサとコンシューマ間のデータパス内にあるデバイスやネットワークコンポーネントは、データを解読したり変更したりすることができなくなります。 Kinesis Video Streams は、転送時と保管時の両方でデータを暗号化することにより、許可されたエンドユーザのみがビデオストリームを復号化してアクセスできるようにし、データのプライバシーと制御を強化します。
- E2EE をサポートするには、プロデューサとコンシューマ・アプリケーション間のセキュアな鍵交換が不可欠です。 Kinesis Video Streams SDK を使用して構築されたカスタムクライアントアプリケーションは、公開鍵と秘密鍵のペアを使用した Diffie-Hellman 交換(非対称暗号化)などのセキュアな鍵交換プロトコルを実装できます。 これにより、エンドポイント間で暗号鍵を安全に直接共有することができ、暗号鍵は機密性を保ち、仲介デバイスやサービスからアクセスできなくなります。 アプリケーションレベルで鍵交換処理をすることで、お客様は暗号化プロセスを完全に制御し、許可されたエンドポイントだけがビデオストリームを復号化できるようにします。
- E2EE の完全性を維持するために、お客様は鍵の保管とローテーションもローカルで管理する必要があります。 つまり、公開鍵と秘密鍵のペアは、プロデューサデバイスとコンシューマアプリケーションの両方に保存・管理され、秘密鍵がクラウドにアップロードされることはありません。 ローカル鍵管理により、お客様は暗号化プロセスを完全に制御することができ、意図した受信者だけがビデオストリームにアクセスできるようにし、暗号化プロセスを安全かつ自己完結的に保つことができます。
実際のアプリケーション:スマートホームセキュリティシステム
典型的なスマートホームのシナリオでは、Kinesis Video Streams を使用して、住宅に設置されたセキュリティカメラからのビデオ映像をストリーミングすることができます。 ライブ映像は暗号化されて AWS クラウドにストリーミングされ、そこで安全に保存、インデックス化され、許可されたユーザーやアプリケーションのみがアクセスできます。
転送時のビデオストリームには TLS 暗号化、保管時のデータにはエンドツーエンドの暗号化(E2EE)を採用することで、住宅のオーナーは映像が不正アクセスから安全に保護されていることに安心できます。 さらに、IAM を介したアクセスコントロールは、誰がデータにアクセスし、分析できるかの権限を規制します。 住宅のオーナーは、特定のデバイスやアプリにアクセスを許可するようにこれらの制御を設定し、プライバシーを保護することができます。
図1.0 – スマートホームカメラのビデオストリーミング
Kinesis Video Streams におけるセキュリティベストプラクティス
Kinesis Video Streams のセキュリティをさらに強化するために、AWS は以下のベストプラクティスを推奨します:
- IAM ロールを使用する: プロデューサおよびコンシューマアプリケーションは、アプリケーションにクレデンシャルをハードコ ードする代わりに、IAM ロールによって生成された一時的なクレデンシャルを用いるべきです。 また、これらの一時的なクレデンシャルは定期的にローテートローテーションされ、長期的なクレデンシャルが公開されないようにし、潜在的な攻撃対象領域を減らすことを考えましょう。
- CloudTrail モニタリングの有効化: AWS CloudTrail を通じて Kinesis Video Streams とのすべてのやり取りを監視し、誰がビデオストリームにアクセスし、どのような操作を実行したかの完全な監査証跡をサポートします。
- 最小特権を導入する: プロデューサとコンシューマのパーミッションを慎重に定義します。 完全な管理者アクセスのような過剰なパーミッションの付与は、セキュリティリスクを増大させるので避けてください。
- 定期的な鍵のローテーション: AWS KMS を通じて独自の暗号鍵を管理するアプリケーションでは、これらの鍵を定期的にローテーションすることが望ましいです。 AWS KMS が設定されていれば、鍵のローテーションを自動的に管理することができ、鍵の漏洩リスクをさらに低減できます。
まとめ
Amazon Kinesis Video Streams は、リアルタイムビデオストリーミングのための非常にセキュアでスケーラブルなソリューションを提供します。 そのアーキテクチャは、デバイスからクラウド、コンシューマアプリケーションに至るまで、すべての段階で暗号化されたデータフローをサポートし、不正アクセスからデータを保護します。 AWS KMS、AWS IAM、AWS CloudTrail、およびセキュリティベストプラクティスを活用することで、Kinesis Video Streams は、スマートホームからヘルスケアまで幅広い業界に堅牢なプライバシーとエンドツーエンドの暗号化ソリューションを提供することができます。
転送中のTLS 、保管時のデータの暗号化、E2E 暗号化の組み合わせにより、Kinesis Video Streams は、最もセキュリティに敏感な業界のニーズを満たす、プライバシーを重視した動画ストリーミングソリューションの構築を可能にします。
関連リンク
このブログで使用されている技術や機能の詳細については、以下のページをご覧ください:
この記事は Syed Rehan によって書かれた「Amazon Kinesis Video Streams Privacy and E2E Security Overview」の日本語訳です。この記事は ソリューションアーキテクトの戸塚 智哉が翻訳しました。