

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

# 设置 CDN 授权
<a name="cdn-auth-setup"></a>

完成以下步骤来设置 CDN 授权。

**Topics**
+ [步骤 1：配置 CDN 自定义源 HTTP 标头](#cdn-aut-setup-cdn)
+ [第 2 步：将值作为密钥存储在 AWS Secrets Manager](#cdn-aut-setup-secret)
+ [第 3 步：创建用于 MediaPackage 访问 Secrets Manager 的 IAM 策略和角色](#cdn-aut-setup-iam)
+ [步骤 4：在中启用 CDN 授权 MediaPackage](#cdn-aut-setup-endpoint)

## 步骤 1：配置 CDN 自定义源 HTTP 标头
<a name="cdn-aut-setup-cdn"></a>

在 CDN 中，配置包含标头 **X-MediaPackage-CDNIdentifier** 和值的自定义源 HTTP 标头。对于该值，我们建议您使用 [UUID 版本 4](https://www.ietf.org/rfc/rfc4122.txt) 格式，该格式会生成一个包含 36 个字符的字符串。如果您未使用 UUID 版本 4 格式，则该值的长度必须为 8-128 个字符。

如果您的 CDN 配置了授权标头，则在终端节点上启用 CDN 授权之前，会 MediaPackage 返回错误 404。

**重要**  
您选择的值应为静态值。您的 CDN 和之间没有原生集成 AWS Secrets Manager，因此无论是在您的 CDN 中还是在中，该值都应该是静态的。 AWS Secrets Manager如果在配置 CDN 和密钥后更改此值，则必须手动轮换此值。有关更多信息，请参阅 [轮换 CDN 标头值](cdn-auth-rotate.md)。

**标头和值示例**

```
X-MediaPackage-CDNIdentifier: 9ceebbe7-9607-4552-8764-876e47032660
```

**在 Amazon 中创建自定义标题 CloudFront**

1. 登录 AWS 管理控制台 并打开 CloudFront 控制台，网址为[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 创建或编辑分配。

1. 在 **Origin Settings (源设置)** 中，填写字段。您将在 Secrets Manager 中对密钥使用相同的值。
   + 对于 **Header Name (标头名称)**，输入 **X-MediaPackage-CDNIdentifier**。
   + 对于**值**，输入值。我们建议您使用 UUID 版本 4 格式，该格式会生成一个包含 36 个字符的字符串。如果您未使用 UUID 版本 4 格式，则该值的长度必须为 8-128 个字符。

1. 完成其余字段并保存分配。

有关自定义标题的更多信息 CloudFront，请参阅《*亚马逊 CloudFront 开发者指南》*中的将[客户标题转发到您的来源](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html)。

## 第 2 步：将值作为密钥存储在 AWS Secrets Manager
<a name="cdn-aut-setup-secret"></a>

将您在自定义源 HTTP 标头中使用的相同值作为*密钥* 存储在 AWS Secrets Manager中。该密钥必须使用与您的 AWS Elemental MediaPackage 资源相同的 AWS 账户和区域设置。 MediaPackage不支持跨账户或地区共享密钥。但是，您可以在同一区域和同一账户上跨多个终端节点使用同一个密钥。

**要在 Secrets Manager 中存储密钥**

1. 登录 AWS Secrets Manager 控制台，网址为[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 选择**存储新密钥**。对于**密钥类型**，选择**其他密钥类型**。

1. 对于**键/值对**，输入键和值信息。
   + 在左侧的框中，输入 **MediaPackageCDNIdentifier**。
   + 在右侧的框中，输入您为自定义源 HTTP 标头配置的值。例如 `9ceebbe7-9607-4552-8764-876e47032660`。

1. 对于**加密密钥**，您可以将默认值保留为**DefaultEncryptionKey**。

1. 选择**下一步**。

1. 对于 **Secret name (密钥名称)**，我们建议您为它添加前缀 **MediaPackage/**，以便您知道它是用于 MediaPackage 的密钥。例如 **MediaPackage/cdn\$1auth\$1us-west-2**。

1. 选择**下一步**。

1. 对于 **Configure automatic rotation (配置自动轮换)**，保留默认的 **Disable automatic rotation (禁用自动轮换)** 设置。

   如果您以后需要轮换授权代码，请参阅 [轮换 CDN 标头值](cdn-auth-rotate.md)。

1. 选择 **Next (下一步)**，然后选择 **Store (存储)**。

   这将转到您的密钥列表。

1. 选择您的密钥名称以查看 **Secret ARN (密钥 ARN)**。ARN 具有类似于 `arn:aws:secretsmanager:us-west-2:123456789012:secret:MediaPackage/cdn_auth_test-xxxxxx` 的值。在“步骤 4：在 MediaPackage 中启用 CDN 授权”中为 MediaPackage 配置 CDN 授权时，使用密钥 ARN。

## 第 3 步：创建用于 MediaPackage 访问 Secrets Manager 的 IAM 策略和角色
<a name="cdn-aut-setup-iam"></a>

创建 IAM 策略和角色以授予对 Secrets Manager 的 MediaPackage 读取权限。当 MediaPackage 收到来自 CDN 的播放请求时，它会验证存储的密钥值是否与自定义 HTTP 标头中的值匹配。按照[AWS Elemental MediaPackage 允许访问其他 AWS 服务](setting-up-create-trust-rel.md)中的步骤设置策略和角色。

## 步骤 4：在中启用 CDN 授权 MediaPackage
<a name="cdn-aut-setup-endpoint"></a>

您可以使用 MediaPackage 控制台、或 API 为终端节点或视频点播 (VOD) 打包组启用 CDN 授权。 AWS CLI MediaPackage 您可以将 ARN 用于您在步骤 3：创建 IAM 策略和角色以 MediaPackage 访问 Secrets Manager 中创建的 IAM 策略和角色。

**提示**  
在同一区域和同一账户上跨多个终端节点使用相同的密钥。仅当工作流需要时，才能通过创建新密钥来降低成本。

如果您的 CDN 配置了授权标头，则在终端节点上启用 CDN 授权之前，会 MediaPackage 返回错误 404。

**要使用控制台为实时内容启用 CDN 授权**

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

1. 如果您还没有通道，请创建一个通道。有关帮助信息，请参阅 [创建通道](channels-create.md)。

1. 创建或编辑终端节点。

1. 在**访问控制设置**中，选择**使用 CDN 授权**。填写以下字段：
   + 在**密钥角色 ARN** 中，输入您在 [第 3 步：创建用于 MediaPackage 访问 Secrets Manager 的 IAM 策略和角色](#cdn-aut-setup-iam) 中创建的 IAM 角色的 ARN。
   + 在 **CDN 标识符密钥 ARN** 中，输入 Secrets Manager 中密钥的 ARN，供 CDN 用于授权访问您的端点。

1. 根据需要完成剩余字段并保存终端节点。

**要使用控制台为 VOD 内容启用 CDN 授权**

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

1. 如果您还没有 VOD 打包组，请创建一个。有关帮助信息，请参阅 [创建打包组](pkg-group-create.md)。

1. 创建或编辑打包组。

1. 在**配置访问控制**中，选择**启用授权**。填写以下字段：
   + 在**密钥角色 ARN** 中，输入您在 [第 3 步：创建用于 MediaPackage 访问 Secrets Manager 的 IAM 策略和角色](#cdn-aut-setup-iam) 中创建的 IAM 角色的 ARN。
   + 在 **CDN 标识符密钥 ARN** 中，输入 Secrets Manager 中密钥的 ARN，供 CDN 用于授权访问您的端点。

1. 根据需要完成剩余字段并保存打包组。

您现在已完成 CDN 授权的设置。对此端点的请求必须包含您在 Secrets Manager 中保存的相同授权代码。

**使用 API 启用 CDN 授权 MediaPackage**  
有关使用 MediaPackage API 启用 CDN 授权的信息，请参阅以下 API 参考：
+ [MediaPackage 实时 API 参考](https://docs.aws.amazon.com/mediapackage/latest/apireference/resources.html)
+ [MediaPackage VOD API 参考](https://docs.aws.amazon.com/mediapackage-vod/latest/apireference/)