

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

# 为您的来源位置配置身份验证
<a name="channel-assembly-source-locations-access-configuration"></a>

使用**访问配置**为您的来源位置配置身份验证。开启访问配置后， MediaTailor 只有在请求在 MediaTailor 和您的来源之间获得授权的情况下，才会从您的来源检索源清单。默认情况下，访问配置处于关闭状态。

MediaTailor 支持以下身份验证类型：
+ 适用于 Amazon S3 身份验证的 Sigv4
+ AWS Secrets Manager 访问令牌
+ 用于 MediaPackage 版本 2 (v2) 身份验证的 Sigv4

 本章介绍如何使用适用于 Amazon S3、v MediaPackage 2 的 Sigv4 以及如何使用 AWS Secrets Manager 访问令牌进行来源位置身份验证。

 有关更多信息，请选择适用的主题。

**Topics**
+ [使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证](channel-assembly-access-configuration-sigv4.md)
+ [在版本 2 中使用 SigV4 MediaPackage](channel-assembly-access-configuration-sigv4-empv2.md)
+ [使用 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-token.md)

# 使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证
<a name="channel-assembly-access-configuration-sigv4"></a>

适用于亚马逊 S3 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HTTPS 向亚马逊 S3 发出的请求进行身份验证。当您将 Sigv4 用于 Amazon S3 时，在向用作源的 Amazon S3 存储桶的 HTTPS 请求中 MediaTailor 包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 有关 sigV4 的一般信息 AWS Key Management Service，请参阅 *Amazon* S3 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)主题。

**注意**  
MediaTailor 始终使用 Sigv4 签署对这些来源的请求。

## 要求
<a name="channel-assembly-access-configuration-sigv4-how-to"></a>

 如果您为来源位置激活 SigV4 for Amazon S3 身份验证，则必须满足以下要求：
+ 您必须通过在 IAM **中授予 mediatailor.amazonaws.com 委托人访问权限来允许 MediaTailor 访问您的亚马逊** S3 存储桶。有关在 IAM 中配置访问权限的信息，请参阅*AWS Identity and Access Management 用户指南*中的[访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。
+ m **ediatailor.amazonaws.com** 服务主体必须有权读取 VOD 源包配置引用的所有多变体播放列表。
+ API 的调用者必须具有 **s3: GetObject** IAM 权限才能读取您的 MediaTailor VOD 源包配置引用的所有多变体播放列表。
+ 您的 MediaTailor 来源位置基本 URL 必须遵循 Amazon S3 虚拟托管式请求网址格式。例如，https://*bucket-name*.s3。 *Region*.amazonaws.com/。*key-name*有关 Amazon S3 托管虚拟式访问的信息，请参阅[虚拟托管式请求。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)

# 在版本 2 中使用 SigV4 MediaPackage
<a name="channel-assembly-access-configuration-sigv4-empv2"></a>

v2 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HT MediaPackage TP 向 MediaPackage v2 发出的请求进行身份验证。当你在 v MediaPackage 2 中使用 Sigv4 时，在发送给用作源的 MediaPackage v2 端点的 HTTP 请求中 MediaTailor包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 *有关 v2 版 Sigv4 的一般信息，请参阅 MediaPackage v2 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/mediapackage/latest/userguide/sig-v4-authenticating-requests.html)主题。MediaPackage *

## 要求
<a name="channel-assembly-access-configuration-sigv4-empv2-how-to"></a>

 如果您为源位置激活 sig MediaPackage V4 进行 v2 身份验证，则必须满足以下要求：
+ 您必须通过在终端节点的 O MediaTailor rigin 访问策略**中授予 mediatailor.amazonaws.com** 委托人访问权限来允许访问您的 MediaPackage v2 终端节点。
+ 您的 MediaTailor 来源位置基础 URL 必须是 MediaPackage v2 终端节点。
+ API 的调用者必须具有 **mediapackagev2: GetObject** IAM 权限才能读取源打包配置引用的所有多变体播放列表。 MediaTailor 

# 使用 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-token"></a>

MediaTailor 支持 S *ecrets Manager 访问令牌身份验证*。通过 AWS Secrets Manager 访问令牌身份验证， MediaTailor使用 AWS Key Management Service (AWS KMS) 客户托管的 AWS Secrets Manager 密钥和您创建、拥有和管理的密钥来对发往您的来源的请求进行身份验证。

在本节中，我们将介绍 Secrets Manager 访问令牌身份验证的工作原理，并提供有关如何配置 Secrets Manager 访问令牌身份验证 step-by-step的信息。你可以在中使用 Secrets Manager 访问令牌身份验证， AWS 管理控制台 也可以通过编程方式使用 AWS APIs。

**Topics**
+ [配置 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-configuring.md)
+ [与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)
+ [S MediaTailor ecrets Manager 访问令牌身份验证的工作原理](channel-assembly-access-configuration-overview.md)

# 配置 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-configuring"></a>

要使用 AWS Secrets Manager 访问令牌身份验证时，请执行以下步骤：

1. 您[创建 AWS Key Management Service 客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

1. 您[创建了一个 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)。该密钥包含您的访问令牌，该令牌作为加密密钥值存储在 Secrets Manager 中。 MediaTailor 使用 AWS KMS 客户管理的密钥来解密密密钥值。

1. 您可以将 AWS Elemental MediaTailor 源位置配置为使用 Secrets Manager 访问令牌身份验证。

以下部分提供有关如何配置 AWS Secrets Manager 访问令牌身份验证的 step-by-step指导。

**Topics**
+ [步骤 1：创建 AWS KMS 对称的客户托管密钥](#channel-assembly-access-configuration-access-token-how-to-create-kms)
+ [步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)
+ [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth)

## 步骤 1：创建 AWS KMS 对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-kms"></a>

您用来 AWS Secrets Manager 以存储在密钥中的形式`SecretString`存储访问令牌。使用您创建、拥有和管理的*AWS KMS 对称客户托管密钥*进行加密。`SecretString` MediaTailor 使用对称的客户托管密钥来简化对密钥的访问（通过授权），并加密和解密密密钥值。

客户托管密钥允许您执行以下任务：
+ 制定和维护关键策略
+ 建立和维护 IAM 策略和授权
+ 启用和禁用密钥策略
+ 轮换加密密钥材料
+ 添加 标签

  有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

  有关客户托管密钥的更多信息，请参阅*《AWS Key Management Service 开发人员指南》*中的[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
AWS KMS 使用客户托管密钥需要支付费用有关定价的更多信息，请参阅定[AWS Key Management Service 价](https://aws.amazon.com/kms/pricing/)页面。

您可以使用 AWS 管理控制台 或以编程方式创建 AWS KMS 对称的客户托管密钥。 AWS KMS APIs

### 创建对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-create-symmetric-key"></a>

按照*AWS Key Management Service 开发人员指南*中[创建对称客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步骤进行操作。

记下关键的 Amazon 资源名称 (ARN)；你需要它。[步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)

### 加密上下文
<a name="channel-assembly-access-configuration-access-token-encryption-context"></a>

*加密上下文*是一组可选的键值对，包含有关数据的其他上下文信息。

Secrets Manager 在加密和解密时包含加密[上下文](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html#asm-encryption-context)。`SecretString`加密上下文包括机密 ARN，它将加密限制在该特定机密范围内。作为一项额外的安全措施，请代表您 MediaTailor 创建 AWS KMS 补助金。 MediaTailor 应用的[GrantConstraints](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html)操作仅允许我们解密与 S *ecrets Manager 加密*上下文中包含的机密 ARN `SecretString` 关联的 ARN。

有关 Secrets Manager 如何使用加密上下文的信息，请参阅*AWS Key Management Service 开发者指南*中的[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)主题。

### 设置密钥策略
<a name="channel-assembly-access-configuration-access-token-key-policy"></a>

密钥政策控制对客户托管密钥的访问。每个客户托管式密钥必须只有一个密钥策略，其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管密钥时，您可以使用默认密钥策略。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的 [AWS KMS的身份验证和访问控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)。

要将您的客户托管密钥与您的 MediaTailor 来源位置资源一起使用，您必须向调用[CreateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateSourceLocation.html)或使用[UpdateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_UpdateSourceLocation.html)以下 API 操作的 IAM 委托人授予权限：
+ `kms:CreateGrant`— 向客户托管密钥添加授权。 MediaTailor 为您的客户托管密钥创建授权，允许其使用该密钥创建或更新配置了访问令牌身份验证的来源位置。有关在中使用 Grant [s 的](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)更多信息 AWS KMS，请参阅《*AWS Key Management Service 开发者指南》。*

  这 MediaTailor 允许执行以下操作：
  + 致电`Decrypt`这样它就可以在呼叫时成功检索你的 Secrets Manager 密钥[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)。
  + 当源位置被删除或密钥的访问权限被撤销时，请致电`RetireGrant`取消授权。

以下是您可以为其添加的策略声明示例 MediaTailor：

```
{
        "Sid": "Enable MediaTailor Channel Assembly access token usage for the MediaTailorManagement IAM role",
        "Effect": "Allow",
        "Principal": {
        "AWS": "arn:aws:iam::account number:role/MediaTailorManagement"
    },
     "Action": "kms:CreateGrant",
     "Resource": "*",
     "Condition": {
         "StringEquals": {
             "kms:ViaService": "mediatailor.region.amazonaws.com"
        }
    }
}
```

有关在策略中指定权限以及对密钥访问进行故障排除的更多信息，请参阅*《AWS Key Management Service 开发人员指南*》[AWS KMS中的授](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)权。

## 步骤 2：创建 AWS Secrets Manager 密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-secret"></a>

使用 Secrets Manager 以 AWS KMS 客户托管密钥加密`SecretString`的形式存储您的访问令牌。 MediaTailor使用密钥来解密。`SecretString`有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

如果您使用源位置来源，并且想使用 S MediaTailor ecret AWS Elemental MediaPackage s Manager 访问令牌身份验证，请按照以下步骤操作[与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)。

你可以使用 Secrets Manager 创建 Secrets Manager 密钥， AWS 管理控制台 也可以通过编程方式使用 Secrets Manager APIs 创建。

### 创建密钥
<a name="channel-assembly-access-configuration-access-token-create-secret"></a>

按照*AWS Secrets Manager 用户指南*中[创建和管理密钥 AWS Secrets Manager的](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)步骤进行操作。

创建密钥时，请记住以下注意事项：
+ [KmsKeyId](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicaRegionType.html#SecretsManager-Type-ReplicaRegionType-KmsKeyId)必须是您在步骤 1 中创建的客户托管密钥的密钥 [ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)。
+ 您必须提供 [SecretString](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString). `SecretString`应该是有效的 JSON 对象，其中包含包含访问令牌的键和值。例如，\$1” MyAccessTokenIdentifier “: “112233445566"\$1。该值的长度必须介于 8-128 个字符之间。

  使用访问令牌身份验证配置源位置时，需要指定`SecretString`密钥。 MediaTailor 使用密钥查找和检索存储在中的访问令牌`SecretString`。

  记下秘密 ARN 和密钥。`SecretString`当您将来源位置配置为使用访问令牌身份验证时，您将使用它们。

### 附加基于资源的密钥策略
<a name="channel-assembly-access-configuration-access-token-secret-policy"></a>

要允许 MediaTailor 访问密钥值，您必须将基于资源的策略附加到该密钥。有关更多信息，请参阅*AWS Secrets Manager 用户指南*中的向 [Secrets Manager 密钥附加权限策略](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)。

以下是您可以为其添加的策略声明示例 MediaTailor：

------
#### [ JSON ]

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "mediatailor.amazonaws.com" 
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name" 
        } 
    ] 

}
```

------

## 步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置
<a name="channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth"></a>

您可以使用 AWS 管理控制台 或以编程方式配置 Secrets Manager 访问令牌身份验证。 MediaTailor APIs

**使用 Secrets Manager 访问令牌身份验证配置源位置**

按照《*AWS Elemental MediaTailor 用户指南*》[Access configuration](channel-assembly-creating-source-locations.md#access-configuration-console)中的步骤操作。

# 与使用 CDN 授权的 MediaPackage 端点集成
<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth"></a>

如果您使用 AWS Elemental MediaPackage 源位置来源，则 MediaTailor 可以与使用 CDN 授权的 MediaPackage 端点集成。

要与使用 CDN 授权的 MediaPackage 终端节点集成，请按以下步骤操作。<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth-procedure"></a>

**要与集成 MediaPackage**

1. 如果您尚未完成《*AWS Elemental MediaPackage 用户指南*》中[设置 CDN 授权](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth-setup.html)中的步骤。

1. 完成[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)中的过程。

1. 修改您在设置 MediaPackage CDN 授权时创建的密钥。使用以下值修改密钥：
   + `KmsKeyId`使用您在中创建的客户托管密钥 ARN 更新。[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)
   + （可选）对于`SecretString`，您可以将 UUID 轮换为新值，也可以使用现有的加密密钥，前提是它是标准 JSON 格式的密钥和值对，例如`{"MediaPackageCDNIdentifier": "112233445566778899"}`。

1. 完成 [附加基于资源的密钥策略](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-secret-policy) 中的步骤。

1. 完成 [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth) 中的步骤。

# S MediaTailor ecrets Manager 访问令牌身份验证的工作原理
<a name="channel-assembly-access-configuration-overview"></a>

在创建或更新源位置以使用访问令牌身份验证后，在从您的来源请求源内容清单时，请将访问令牌 MediaTailor 包含在 HTTP 标头中。

以下是如何 MediaTailor 使用 Secrets Manager 访问令牌身份验证进行来源位置来源身份验证的概述：

1. 当您创建或更新使用访问令牌身份验证的 MediaTailor 源位置时， MediaTailor 会向 Secrets Manager 发送[DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html#SecretsManager-DescribeSecret-request-SecretId)请求以确定与该密 AWS KMS 钥关联的密钥。您在来源位置访问配置中包含机密 ARN。

1. MediaTailor 为客户管理的密钥创建[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)，以便该密钥 MediaTailor 可以使用该密钥访问和解密存储在中的访问令牌。 SecretString拨款名称将是`MediaTailor-SourceLocation-your AWS 账户 ID-source location name`。

   您可以随时撤销对授予的访问权限，也可以取消 MediaTailor对客户托管密钥的访问权限。有关更多信息，请参阅《AWS Key Management Service API Reference》**中的 [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)。

1. 创建、更新 VOD 源或在程序中使用 VOD 源时， MediaTailor会向源位置发出 HTTP 请求，以检索与源位置中的 VOD 源关联的源内容清单。如果 VOD 源与配置了访问令牌的来源位置相关联，则请求会将访问令牌作为 HTTP 标头值。