

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

# 使用 AWS Secrets Manager 存取權杖身分驗證
<a name="channel-assembly-access-configuration-access-token"></a>

MediaTailor 支援 *Secrets 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)
+ [MediaTailor Secrets 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 Secrets Manager 如何使用 AWS KMS](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 KMS AWS 管理主控台 或以程式設計方式使用 AWS KMS APIs 建立對稱客戶受管金鑰。

### 建立對稱客戶受管金鑰
<a name="channel-assembly-access-configuration-access-token-create-symmetric-key"></a>

遵循《 開發人員指南》中[建立對稱客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步驟。 *AWS Key Management Service *

請記下金鑰 Amazon Resource Name (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) 操作，只允許我們*解密*與 Secrets Manager 加密內容中所含秘密 ARN `SecretString`相關聯的 。

如需有關 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) 的 IAM 主體，以使用下列 API 操作：
+ `kms:CreateGrant`：新增客戶受管金鑰的授權。MediaTailor 會在您的客戶受管金鑰上建立授權，讓它使用金鑰來建立或更新以存取字符身分驗證設定的來源位置。如需在 [中使用授權 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)的詳細資訊，請參閱 *AWS Key Management Service 開發人員指南。*

  這可讓 MediaTailor 執行下列動作：
  + 呼叫 ，`Decrypt`讓它可以在呼叫 [GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) 時成功擷取 Secrets Manager 秘密。
  + 在刪除來源位置或撤銷對秘密的存取時，呼叫 `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 Secrets Manager 如何使用 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html) 。

如果您使用 AWS Elemental MediaPackage 做為來源位置原始伺服器，且想要使用 MediaTailor Secrets Manager 存取權杖身分驗證，請遵循程序 [與使用 CDN 授權的 MediaPackage 端點整合](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)。

您可以使用 或以 AWS 管理主控台 程式設計方式使用 Secrets Manager APIs 建立 Secrets Manager 秘密。

### 若要建立機密
<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 Secret](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 管理主控台 或使用 MediaTailor APIs 以程式設計方式設定 Secrets Manager 存取字符身分驗證。

**使用 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. 如果您尚未[設定 CDN 授權](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth-setup.html)，請完成*AWS Elemental MediaPackage 《 使用者指南*》中的步驟。

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)」中的步驟。

# MediaTailor Secrets Manager 存取字符身分驗證的運作方式
<a name="channel-assembly-access-configuration-overview"></a>

在您建立或更新來源位置以使用存取權杖身分驗證後，MediaTailor 會在從原始伺服器請求來源內容資訊清單時，將存取權杖包含在 HTTP 標頭中。

以下是 MediaTailor 如何使用 Secrets Manager 存取字符身分驗證進行來源位置原始伺服器身分驗證的概觀：

1. 當您建立或更新使用存取權杖身分驗證的 MediaTailor 來源位置時，MediaTailor 會傳送 [DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html#SecretsManager-DescribeSecret-request-SecretId) 請求給 Secrets Manager，以判斷與秘密相關聯的 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 參考*中的 [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)。

1. 當建立或更新 VOD 來源，或在程式中使用時，MediaTailor 會向來源位置發出 HTTP 請求，以擷取與來源位置中 VOD 來源相關聯的來源內容資訊清單。如果 VOD 來源與已設定存取字符的來源位置相關聯，則請求會將存取字符包含為 HTTP 標頭值。