HLS 內容保護 - Amazon Elastic Transcoder

節省成本並獲得更多功能 AWS Elemental MediaConvert

MediaConvert 是一項較新的檔案型視訊轉碼服務,提供全方位的進階轉碼功能,按需費率從每分鐘 $0.0075 起。閱讀更多

已經使用 Amazon Elastic Transcoder? 遷移到 MediaConvert. 如需詳細資訊,請參閱此概觀,其中包含有關移轉程序的重要資訊以及其他資源的連結。

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

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 一起使用,您需要兩種類型的密鑰:

  • AWS KMS key— 與您的 Elastic Transcoder 管道相關的密鑰

  • 資料金鑰 — 與 Elastic Transcoder 工作相關的金鑰

您必須擁有一個 AWS KMS key 才能使用 HLS 內容保護。KMS 金鑰是用來加密您的資料金鑰,然後再透過網際網路傳送。我們建議您建立一個 KMS 金鑰,以用於所有轉碼任務。如需建立和設定 KMS 金鑰的詳細資訊,請參閱AWS KMS與 Elastic Transcoder 一起使用

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

串流受 HLS 保護的內容

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

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

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

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

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

建立加密的串流內容

若要準備檔案以進行 HLS 內容保護,您必須將 KMS 金鑰與新的或現有的管道建立關聯。

若要使用您指定的 KMS 金鑰設定管線,請參閱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,Elastic Transcoder 會傳回您的資料金鑰做為工作物件的一部分,但不會儲存它。您需負責資料金鑰的存放。