柔軟な動画コンテンツ保護
概要
動画コンテンツを不正アクセスから保護することは、メディア企業の最優先事項の1つです。海賊版動画は、購読や広告による収益の損失、コンテンツの権利者に対する法的責任により、ビジネスに影響を及ぼします。
ジオブロッキング
特定の国でのみコンテンツをストリーミングする権利がある場合は、他の国からのリクエストをブロックする必要があります。この記事では、CloudFront、AWS WAF、エッジ機能を使用したジオブロッキングのさまざまなオプションについて説明します。AWS WAF をジオブロッキングに使用する場合、2 つのマネージドルールグループを検討してください。これらは、VPN を使用してジオフェンシングポリシーをバイパスするユーザーをブロックするビデオストリーミングの場合に関連します。
- AWS WAF に追加料金なしで提供される匿名 IP リストマネージドルール
- GeoGuard が AWS マーケットプレイスで提供している IP 詐欺検出および防止マネージドルール
Webベースのクライアント向けのシンプルなトークン化ソリューション
アプリケーションに (モバイルアプリやスマート TV ではなく) ブラウザからのみアクセスする場合は、CloudFront のネイティブ署名付き Cookie を使用することを検討してください。これは、追加料金なしで権限のないユーザーをブロックするシンプルなトークン化メカニズムです。必要なのは、ストリーミング用 CloudFront ディストリビューションで署名付き Cookie を有効にしてから、バックエンドを更新して、ストリーミングドメインで Cookie を生成して設定することだけです (Set-Cookie レスポンスヘッダーを使用するか、javascript と API 呼び出しを使用するなど)。ブラウザでのプレーヤーからの後続のリクエストには署名付き Cookie が含まれ、CloudFront によって承認されます。この実装については、次のブログシリーズ (1 および 2) をご覧ください。
前述の課題に対処するもう 1 つのマルチ CDN アプローチは、CloudFront を他の CDN のオリジンとして使用することです。ただし、このアプローチでは、アーキテクチャの冗長性についてさらに精査する必要があります。たとえば、CloudFront をオリジンとして使用する場合は、サードパーティの CDN のオリジンシールドまたは集中型キャッシュを無効にして、ローカライズされた CloudFront PoP 障害による影響範囲を広げることが推奨されます。また、可用性とキャッシュヒット率を高めるには、CloudFront で Origin Shield を有効にすることをお勧めします。CloudFront のプライベートプライシング契約を結んでいて、このアーキテクチャを実装したい場合は、AWS アカウントチームに連絡して話し合ってください。
高度なトークン化ソリューション
さまざまなユーザーデバイス(セットトップボックス、スマートテレビ)があり、トークン署名で計算されるカスタムフィールドを使用するより高度なトークン化ロジックを必要とする高度なユースケースでは、エッジでのセキュアメディア配信ソリューションを検討してください。これはJWTベースのトークン化ソリューションで、次の利点があります。
- トークンはパスの一部であり、クライアント側またはサーバー側で最小限またはまったく変更する必要がないため、ソリューションをビデオワークフローと非常に簡単に統合できます:\
- パスベースのトークンは、クッキーベースのトークンとは異なり、すべてのデバイスタイプでサポートされています。
トークンの署名はカスタマイズ可能で、IP、国、ユーザーエージェントヘッダーなどのさまざまなディメンションを含めることができます。 - CloudFront Functions をベースにしているため、大規模なイベントでもスケーラブルで費用対効果が高くなります。
![](https://d1.awsstatic.com/Solutions/Solutions%20Category%20Template%20Draft/Solution%20Architecture%20Diagrams/secure-media-delivery-at-the-edge-architecture.bba72034588d25af11668ff9c38342f876277aed.png)
さらに、このソリューションには、トークンを生成するためのSDK、トークンをテストするためのサンプル UI、そして最も重要なのは、海賊版セッションを数分で検出して自動的にブロックするセッション取り消しシステムを提供します。
注:CloudFront Functions から KeyValueStore がリリースされました。ブロック/取り消されたトークンを保存したり、CloudFront 関数に追加のカスタムロジックを実装したりするための代替手段として、これを調べて使用することをお勧めします。