

终止支持通知：2025 年 11 月 13 日， AWS 我们将停止对亚马逊 Elastic Transcoder 的支持。2025 年 11 月 13 日之后，您将无法再访问 Elastic Transcoder 控制台或 Elastic Transcoder 资源。

有关过渡到的更多信息 AWS Elemental MediaConvert，请访问此[博客文章](https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# HLS 内容保护
<a name="content-protection"></a>

HTTP Live Streaming (HLS) 是一种用于对媒体文件进行分段、从而在流式处理过程中进行优化的协议。HLS 使媒体播放器能够在播放过程中以网络连接支持的最高品质的分辨率播放区段。

您可以使用 Elastic Transcoder 对流媒体文件的区段进行加密，通过 Internet 发送加密的区段，然后在播放时进行解密。此选项可保护您的媒体内容，并确保只有授权用户才可以查看您的媒体文件中的加密区段。

以下内容概括了具有 HLS 内容保护的媒体文件的播放过程：

![\[HLS 播放流程。\]](http://docs.aws.amazon.com/zh_cn/elastictranscoder/latest/developerguide/images/hls-playback.png)


1. 访问您的网络页面的用户通过您的网络服务器进行身份验证，网络服务器会在用户的浏览器中设置会话 Cookie。

1. 用户从您的网络服务器中加载播放器。

1. 播放器从您的内容分发网络 (CDN) 中提取主播放列表。主播放列表提供了媒体文件的可用比特率和分辨率。

1. 播放器会调用您的网络服务器，由网络服务器验证会话 Cookie、检查用户是否有权查看内容，然后返回数据解密密钥。

1. 播放器会选择变体播放列表并从 CDN 中提取关联的媒体区段。

1. 播放器使用数据密钥对区段进行解密，然后开始播放媒体。

**注意**  
您可以使用 HLS 内容保护对流文件的区段进行加密，也可以对整个文件进行加密。您不能同时执行这两种操作，因此不要同时选择 HLS 内容保护和单个文件保护。

## 用于 HLS 内容保护的密钥
<a name="key-overview"></a>

要将 HLS 内容保护与 Elastic Transcoder 一起使用，您需要两种类型的密钥：
+ **AWS KMS key**——与您的 Elastic Transcoder 管道关联的密钥
+ **数据密钥**——与您的 Elastic Transcoder 任务关联的密钥

您必须拥有 AWS KMS key 才能使用 HLS 内容保护。KMS 密钥用于在通过 Internet 发送数据密钥之前对其进行加密。我们建议您创建一个 KMS 密钥，用于所有转码任务。有关创建和设置 KMS 密钥的更多信息，请参阅 [AWS KMS 与 Elastic Transcoder 搭配使用](encryption.md#using-kms)。

数据密钥用于对媒体文件进行加密。对于相同内容的所有变体和区段，使用相同数据密钥进行加密。如果您未指定数据密钥，Elastic Transcoder 将为您生成一个。

## 流式处理受 HLS 保护的内容
<a name="hls-cp-setup"></a>

要提供受 HLS 保护的内容，您必须拥有以下项：
+ 用于存储您的加密媒体文件和数据密钥的位置。我们建议您将文件存储在 Amazon S3 中，并在数据库（如 DynamoDB）中保护您的密钥。有关 DynamoDB 的更多信息，请参阅《Amazon DynamoDB 开发者指南》**中的[什么是 Amazon DynamoDB？](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)。
+ (可选) 一个用于文件流式传输的内容分发网络 (CDN)。有关更多信息 CDNs，请参阅《*Amazon CloudFront 开发者指南》 CloudFront中的[入门](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/programming-encryption.html)指南*。
+ 能够对您的用户进行身份验证和授权并能安全地提供数据加密密钥的应用程序。您可以使用 Amazon EC2 来运行此应用程序。有关更多信息，请参阅《[亚马逊 EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html)*用户指南》（适用于 Windows 用户） EC2中的 “使用亚马逊*进行[设置” 或 “亚马逊](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)用户*指南”（适用于 Linux EC2 用户） EC2中的 “使用亚马逊*进行设置”。
+ 能够对加密的 HLS 文件进行解密的播放器。有关更多信息，请转至 [HTTP Live Streaming](http://en.wikipedia.org/wiki/HTTP_Live_Streaming#Client_software)。

## 创建加密的流式处理内容
<a name="hls-cp-ets-setup"></a>

要为 HLS 内容保护准备您的文件，您必须将 KMS 密钥与新管道或现有管道相关联。

要使用您指定的 KMS 密钥设置管道，请参阅 [AWS KMS 与 Elastic Transcoder 搭配使用](encryption.md#using-kms)。

下面的步骤介绍如何使用 Elastic Transcoder 控制台为实现 HLS 内容保护加密您的文件：

**将 HLS 内容保护用于您的文件**

1. 打开 Elastic Transcoder 控制台，网址为。[https://console.aws.amazon.com/elastictranscoder/](https://console.aws.amazon.com/elastictranscoder/)

1. 在导航窗格中单击**任务**，然后创建一个新任务。有关更多信息，请参阅 [在 Elastic Transcoder 中创建任务](creating-jobs.md)。

1. 在**预设**下拉列表的**输出详细信息**中，选择 `HLS` 预设。

1. 将**加密参数**设置为 `None`。

1. 在**播放列表**中，单击**添加播放列表**并选择 `HLSv3` 或 `HLSv4` 作为您的播放列表类型。

1. 在**内容保护**中，请选择 `Enter Information`。

   a. 要管理您自己的密钥，请在**密钥存储策略**中选择 `No Store`。在**许可证获取网址**中，键入将存储您的数据密钥的位置的绝对路径。例如：

   ```
   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 会将数据密钥作为任务对象的一部分返回，但不会存储数据密钥。您负责存储数据密钥。