HLS 內容保護 - Amazon Elastic Transcoder

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

HLS 內容保護

HTTP Live Streaming (HLS) 是一種通訊協定,可在串流時將媒體檔案進行分割以最佳化。HLS 讓媒體播放器以最高品質解析度播放片段,其網路連線在播放期間支援此解析度。

您可以使用 Elastic Transcoder 來加密串流媒體檔案的區段、透過網際網路傳送加密的區段,並在播放時進行解密。這樣可保護您的媒體內容,並可確保只有授權使用者可以檢視媒體檔案的加密片段。

以下是有 HLS 內容保護的媒體檔案之播放程序摘要:


                HLS 播放流程。
  1. 瀏覽網頁的使用者會與 Web 伺服器來進行驗證,此伺服器會設定使用者瀏覽器中的工作階段 Cookie。

  2. 使用者會透過 Web 伺服器載入播放器。

  3. 播放器會從內容交付網路 (CDN) 擷取主播放清單。主播放清單會為媒體檔案提供可用的位元速率和解析度。

  4. 播放器會呼叫 Web 伺服器,這可驗證工作階段 Cookie、檢查使用者是否獲得檢視內容的授權,並傳回資料解密金鑰。

  5. 播放器會選擇變體播放清單並從 CDN 擷取關聯的媒體片段。

  6. 播放器會使用資料金鑰來解密區段並開始播放媒體。

注意

您可以使用 HLS 內容保護來加密串流檔案的區段,或者您可以加密整個檔案。您無法同時這麼做,因此請勿同時選取 HLS 內容保護和個別檔案保護。

HLS 內容保護的金鑰

若要使用 HLS 內容保護搭配 Elastic Transcoder,您需要兩種金鑰:

  • Customer master key (客戶主金鑰) (CMK)— 與 Elastic Transcoder 管道相關聯的金鑰

  • 資料金鑰— 與 Elastic Transcoder 任務相關聯的金鑰

您必須擁有一個客戶主金鑰 (CMK),才能使用 HLS 內容保護。CMK 金鑰是用來在透過網際網路傳送資料金鑰前將其加密。我們建議您建立一個與轉碼任務搭配使用的 CMK 金鑰。如需建立或設定 CMK 的更多資訊,請參閱 搭配使用 AWS KMS 搭配 Elastic Transcoder

加密媒體檔案所用的資料金鑰。相同內容的所有變化和分段都使用相同的資料金鑰來加密。如果您未指定資料金鑰,Elastic Transcoder 會為您產生一個。

串流受 HLS 保護的內容

若要提供受 HLS 保護的內容,您必須具有下列項目:

  • 存放加密媒體檔案和資料金鑰的位置。我們建議您將檔案存放在 Amazon S3,並將金鑰保護在資料庫中 (例如 DynamoDB) 的安全。如需 DynamoDB 的詳細資訊,請參閱什麼是 Amazon DynamoDB?中的Amazon DynamoDB 開發人員指南

  • (選用) 可串流檔案的內容分發網路 (CDN)。如需 CDN 的詳細資訊,請參閱在中開始使用 CloudFront中的Amazon CloudFront 開發人員指南

  • 能夠驗證和授權使用者並安全地提供資料加密金鑰的應用程式。您可以使用 Amazon EC2 執行此應用程式。如需詳細資訊,請參閱「」使用 Amazon EC2 進行設定中的適用於 Windows 執行個體的 Amazon EC2 使用者指南(適用於 Windows 使用者) 或使用 Amazon EC2 進行設定中的Amazon EC2 Linux 執行個體使用者指南(適用於 Linux 使用者)。

  • 能夠對加密 HLS 檔案進行解密的播放器。如需詳細資訊,請前往 Http Live Streaming

建立加密的串流內容

為了準備適用於 HLS 內容保護的檔案,您必須將 CMK 與新或現有的管道建立關聯。

若要使用您指定的 CMK 設定管道,請參閱 搭配使用 AWS KMS 搭配 Elastic Transcoder

以下步驟示範如何使用 Elastic Transcoder 主控台來加密 HLS 內容保護的檔案:

若要將 HLS 內容保護用於您的檔案

  1. 開啟 Elastic Transcoder 主控台,網址為https://console.aws.amazon.com/elastictranscoder/

  2. 在導覽窗格中,按一下 Jobs (任務),然後建立新任務。如需更多詳細資訊,請參閱 在 Elastic Transcoder 中建立 Job

  3. Output Details (輸出詳細資訊)Preset (預設集) 下拉式清單中,選取 HLS 預設集。

  4. Encryption Parameters (加密參數) 的設定保持為 None

  5. Playlists (播放清單) 中,按一下 Add Playlist (新增播放清單) 並選取 HLSv3HLSv4 做為播放清單類型。

  6. Content Protection (內容保護) 中,選取 Enter Information

    a. 若要管理自己的金鑰,請在 Key Storage Policy (金鑰儲存政策) 中,選取 No Store。在 License Acquisition Url (取得授權 URL),輸入您將存放資料金鑰之位置的絕對路徑。例如:

    https://www.example.com/datakey

    建議您選取No Store,並將金鑰存放在安全的 Amazon S3 儲存貯體或 DynamoDB 之類的資料庫中。

    b. 要將您的密鑰存儲在公共 Amazon S3 存儲桶中,請在金鑰儲存政策中,選取With Variant Playlists。Elastic Transcoder 會將資料金鑰寫入與播放清單檔案相同的儲存貯體。

    重要

    使用 With Variant Playlists 存放的金鑰會寫入公有儲存貯體。將 No Store 用於實際金鑰。

注意

如果您選擇No Store,EElastic Transcoder 會以部分任務物件的形式將資料金鑰傳回,但不會將其存放。您需負責資料金鑰的存放。