Amazon Web Services ブログ
メディア & エンターテインメントのワークフローにおけるオリジンの保護
この記事は 2025 年 5 月 20 日に公開された Securing your origin for Media and Entertainment workflows を翻訳したものです。
メディアストリーミングアプリケーションでは、コンテンツへの権限のないアクセスや再配布などの、増加しているセキュリティ上の課題に直面しています。ストリーミングワークフローに対する一般的なセキュリティ脅威を精査し、Amazon Web Services (AWS) を使用してコンテンツを保護するための実用的なソリューションを提供します。
メディアストリーミングにおけるセキュリティ上の課題
ストリーミングアプリケーションに適切なセキュリティ対策が講じられていない場合、権限のないユーザーは以下のことが可能となります:
- 許可なくコンテンツにアクセスして再配布する
- 許可されていない Web サイトにストリームを埋め込む
- 自動プログラムを使用してコンテンツをスクレイピングする
これらのセキュリティ侵害は以下を引き起こす可能性があります:
- 顧客の離反
- インフラストラクチャコストの増加
- アプリケーションパフォーマンスの低下
このブログはメディア & エンターテインメントのワークフローに適したオリジンについてのシリーズの第 2 回目です。前回はワークフローに適したオリジンを選択する方法について説明しました。 今回はオリジンとコンテンツの保護に焦点を当てます。
望ましくないアクセスからの保護方法
不正アクセスの 3 つの主要なポイントとそれに対応するソリューションについて精査します。
- クロスオリジンリソースシェアリング (CORS) とオリジンへの直接アクセス
- iFrame 埋め込み
- ユニフォーム・リソース・ロケーター (URL) シェアリング
1. CORS とオリジンへの直接アクセス
オリジンが直接アクセスされないようにするにはクライアントアプリケーションまたはウェブサイトがコンテンツ配信ネットワーク (CDN) 経由でのみビデオストリームをリクエストするようにしてください。 AWS の CDN サービスは Amazon CloudFront (CloudFront) です。
Amazon Simple Storage Service (Amazon S3)、AWS Elemental MediaPackage (MediaPackage)、またはカスタムオリジンのいずれを使用する場合でも、オリジンを CloudFront に追加できます。詳細な手順についてはコンテンツへのセキュアなアクセスの設定とアクセスの制限を参照してください。ドキュメントの手順に沿って実行することでリクエストはオリジンではなく CloudFront によってのみ処理されるようになります。
選択したオリジンの CORS ルールがアクセスを許可するドメイン名のみを許可するよう設定されていることを確認しましょう。 以下の図は正しい CORS ルールによってビデオストリームがどのように保護されるかを示しています。
以下はドメイン “my-site.com” に対して GET メソッドを許可する Amazon S3 CORS ポリシーの例です。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>https://www.my-site.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
CORS ルールとポリシーの設定方法の詳細については Amazon S3 CORS と MediaPackage CORS を参照してください。
2. iFrame の埋め込み
ウェブページでは、特に動画の再生にネストフレーム (iframe) を使用するのが一般的です。これは、ウェブページの読み込み時間が短縮され、デプロイが容易になるためです。 このようなアプローチでは、開発者はプレーヤーフレームを埋め込んで目的の動画に指定するだけです。
iframe は HTML タグ <iframe>
で 、HTML ページ(具体的には、「あるウェブサイト」)をあなたの HTML ページ(つまり、「あなたのウェブサイト」)に埋め込むことができるタグです。Web を使用していると気付かないうちに iframe を目にしています。 例えば、ニュースウェブサイトに埋め込まれている YouTube 動画がその一例です。ブログに埋め込まれている Facebook や Twitter の投稿も iframe の場合があります。これらはすべて別の HTML ページに埋め込まれた HTML ページです。
次の例では、左上の最初のウェブページに挿入された 4 つのビデオすべてが iframe タグを使用して挿入されます。ユーザーが動画の 1 つをクリックすると、ウェブサイトに動画を埋め込んだ iframe タグで定義されている動画(右側の 2 番目の画像)が開きます。この動画が実際にホストされている “実際の” ページは YouTube(中央下の画像)にあります。右上の画像に表示されている埋め込みページとは異なることがわかります。
iframe の不正な埋め込みを防ぐには :
- セキュリティヘッダーに X-Frame-Options を実装します。 詳細については Mozilla 開発者ネットワークのドキュメントを参照してください。
- CloudFront のセキュリティヘッダーレスポンスを使用してください。 詳細な説明については CloudFront レスポンスへの HTTP セキュリティヘッダーの追加を参照してください。
- 適切な X-Frame-Options 値を設定します。
- iframe のドメインが親フレームと同じ場合は SAMEORIGIN を使用してください。
- DENY を使用すると、誰にも埋め込まれないようにできます。
- 誰かがあなたの iframe 埋め込みを悪用しようとした場合に、あなたのページに戻るようにする JavaScript ベースの埋め込み防止コードを追加することを検討してください。
3. URL シェアリング
URL シェアリングに対処するには、いくつかの方法があります。
a. トークン化された URL
トークン化された URL を使用すると、指定されたトークンが提供された場合にのみリクエストが処理されます。 通常、トークンは特定の情報をカプセル化したハッシュで、長期間使用されないように有効期限を短くするのが一般的です。
一般的な実装の例は以下のとおりです。
https://example.com/hls/playlist.m3u8?token=4180da90a6973bc8bd801bfe49f04a&expiry=1526231040535
や
https://example.com/hls/segment001.ts?token=4180da90a6973bc8bd801bfe49f04a&expiry=1526231040535
のようになります。URL を取得しようとするリクエスト (この例では https://example.com/hls/segment001.ts ) を実行すると、403 HTTP エラーコードが返されます。
トークン化された URL を使用する利点 :
- 期間限定にできる
- 静的なホットリンクを防ぐことができる
トークン化された URL を使用する場合の欠点 :
- 共有できてしまう
- スクレイピングできてしまう
b. セッションベースのトークン
URL トークンを強化するために、特定のユーザーと緊密に結びついたセッションベースのトークンを作成することができます。 汎用トークンはリソースへの直接アクセスを防ぐことができますが、セッショントークンはサイトやアプリケーションのコンテキスト外にあるリソースへのアクセスを防ぎます。 このトークンは、コンテンツをリクエストするユーザーが同じ IP アドレス、ユーザーエージェント、JS で生成されたハッシュ、その他のユーザー固有の情報を持っていることなどを検証します。
セッションベースのトークンを使用する利点 :
- セキュリティレイヤーの追加
- 特定のユーザーに紐付けられたアクセス制御
- 追跡と分析が可能
- 有効期限と取り消しが可能
セッションベースのトークンを使用する場合の欠点 :
- 複雑さの増大
- アプリケーションのパフォーマンスに影響する可能性
- サードパーティのプレーヤーや CDN ではサポートされていない可能性
強固な実装を行うには、AWS でのエッジにおける安全なメディア配信を使用することを検討してください。
c. ログインまたはペイウォールの追加
ユーザーログインやペイウォールの背後にあるストリームは、切り抜きされたり、外部で再生されたりする可能性がはるかに低くなります。 これをユーザー固有のトークンと組み合わせると、合理的で十分なレベルの保護が可能になります。
ログインやペイウォールを追加する利点 :
- 望ましくない一般からのトラフィックを削減させる
- ストリーミング認証を実際のユーザーセッションに紐付けられる
ログインやペイウォールを追加することの欠点 :
- より複雑になってしまう
- エンゲージメントへの障壁が増加
アプリケーション認証ワークフローを改善するには、新しい Amazon Cognito の機能でアプリケーションの認証ワークフローに磨きをかけようを参照してください。 ペイウォールをエッジに移行するソリューションについては、Guidance for Moving Your Paywall to the Edge on AWS をご参照してください。
d. 安全なハイパーテキスト転送プロトコル接続を使用
常にセキュアハイパーテキスト転送プロトコル (HTTP) 接続、別名 HTTPS を使用してください。これは HTTP のセキュアバージョンで、ユーザーとウェブサイト間の通信を暗号化します。HTTPS は、ユーザーとウェブサイト間で送信される情報を暗号化するために、トランスポート層セキュリティ (TLS)、または以前はセキュア・ソケット・レイヤー (SSL) を使用します。
HTTPS 接続は、ユーザーが本物のウェブサイトと通信していることを保証するため、ウェブサイトの身元を検証します。次の確認により検証および保証します:
- 盗聴や身元情報の盗難から保護
- ウェブサイトの身元を検証
- データの整合性を保証
HTTPS 接続を使用する利点 :
- HTTPS はエンドツーエンドの暗号化を提供
- 信頼と確実性を確立
- コンプライアンスと規制 (PCI DSS、HIPAA、GDPR、NIST、ISO 27001) を保証
- 検索エンジン最適化 (SEO) の向上
HTTPS 接続を使用する場合の欠点 :
- レイテンシーにおけるパフォーマンスへの影響
- SSL/TLS 証明書の管理における構成の複雑さ
- レガシー互換性
- サーバー負荷の増加
特に機密情報やトランザクションを処理するアプリケーションでは、通常、HTTPS 接続の利点が欠点を上回ることに注意することが重要です。 HTTPS によってもたらされるセキュリティと信頼性の向上は現代のウェブアプリケーションにとって不可欠になっています。
CloudFront で HTTPS を設定する方法については、CloudFront で HTTPS を使用するを参照してください。
e. デジタル著作権管理
ユーザーとウェブサイト間が HTTPS 接続されているだけでは、ユーザーが動画コンテンツをダウンロードし、コピーしたり、再配信したりすることを防ぐことはできません。要件とビジネスケースでユーザーによるコンテンツのダウンロードと再配信を阻止する必要がある場合は、ビデオストリームにデジタル著作権管理 (DRM) の適用を検討する必要があります。
DRM を適用できる AWS メディアサービスは、MediaPackage と AWS Elemental MediaConvert (MediaConvert) です。 これらのサービスは、Secure Packager and Encoder Key Exchange (SPEKE) を利用します。
SPEKE API の導入と統合はお客様の責任となります。 ビデオストリームに DRM を適用するには、Content encryption and DRM in AWS Elemental MediaPackageとProtecting your media assets with encryption and DRM using AWS Elemental MediaConvertを参照してください。
次の (図 4) は DRM ワークフローの例です。
DRM を使用する利点:
- 不正なコンテンツダウンロードを防止
- コンテンツライセンスルールを強制
- さまざまな再生プラットフォームをサポート
- 安全なオフライン再生が可能 (設定されている場合)
- 詳細なコンテンツ使用状況の分析
DRM を使用する場合の欠点:
- プライバシーに関する懸念
- 技術的複雑さ
- 追加コスト
結論
メディアストリーミング配信元を保護することは、コンテンツを保護し、顧客の信頼を維持するために不可欠です。 ここで説明した方法を組み合わせて実装することで、アプリケーションのセキュリティ体制を大幅に強化できます。
まず Amazon CloudFront を設定し、HTTPS を有効にしてコンテンツを配信することをおすすめします。 適切な CORS ルールを実装し、セッションベースのトークン化された URL を使用してください。 iframe 保護の設定も検討してください。
ベストプラクティスとして、複数のセキュリティ方法を階層化して包括的な保護を行うことを提案しました。 セキュリティ要件とユーザーエクスペリエンスのバランスを取りながら、セキュリティ対策を定期的に監視および監査する必要があります。
次のステップでは、現在のセキュリティ体制を評価し、コンテンツ保護戦略のギャップを特定し、このブログで説明されているセキュリティ対策を実施することをお勧めします。 また、最適なユーザーエクスペリエンスを実現するために、必要に応じてセキュリティ構成を監視および調整する必要があります。
AWS メディアソリューションの詳細については、AWS Media & Entertainment ページをご覧になるか、AWS の担当者にお問い合わせいただき、当社がお客様のビジネスの加速をどのように支援できるかをご確認ください。
追加情報
- Cost-effective ways for securing your web applications using AWS WAF
- Geo-blocking with Amazon CloudFront
- Using CloudFront origin shield to protect your origin in a multi-CDN deployment
- Getting started with workflow monitor for AWS Media Services
参考リンク
AWS のメディアチームの問い合わせ先 : awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。
翻訳は SA 加藤、長澤、石井が担当しました。原文はこちらをご覧ください。