

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

# 配置 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)中的步骤操作。