

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

# AWS Elemental MediaPackage 允许访问其他 AWS 服务
<a name="setting-up-create-trust-rel"></a>

某些功能需要您 MediaPackage 允许访问其他 AWS 服务，例如 Amazon S3 和 AWS Secrets Manager （Secrets Manager）。要允许此访问，请创建具有相应权限的 IAM 角色和策略。以下步骤描述了如何为 MediaPackage 功能创建角色和策略。

**Topics**
+ [步骤 1：创建策略](#setting-up-create-trust-rel-policy)
+ [步骤 2：创建角色](#setting-up-create-trust-rel-role)
+ [步骤 3：修改信任关系](#setting-up-create-trust-rel-trust)

## 步骤 1：创建策略
<a name="setting-up-create-trust-rel-policy"></a>

IAM 策略定义了 AWS Elemental MediaPackage (MediaPackage) 访问其他服务所需的权限。
+ 对于视频点播 (VOD) 工作流程，请创建 MediaPackage 允许从 Amazon S3 存储桶读取、验证计费方式和检索内容的策略。对于计费方式， MediaPackage 必须验证存储桶*不*要求请求者为请求付费。如果存储桶启用了 **requestPayment**，则 MediaPackage 无法从该存储桶中提取内容。
+ 对于 live-to-VOD工作流程，请创建 MediaPackage 允许从 Amazon S3 存储桶读取数据并将 live-to-VOD资产存储在其中存储的策略。
+ 要获得内容分发网络 (CDN) 授权，请在 Secrets Manager 中创建一个 MediaPackage 允许读取密钥的策略。

以下各部分介绍如何创建这些策略。

### 针对 VOD 工作流的 Amazon S3 访问策略
<a name="setting-up-create-trust-rel-policy-vod"></a>

如果您使用 MediaPackage 从 Amazon S3 存储桶中提取 VOD 资产并打包和交付该资产，则需要一项允许您在 Amazon S3 中执行以下操作的策略：
+ `GetObject`- MediaPackage 可以从存储桶中检索 VOD 资产。
+ `GetBucketLocation`- MediaPackage 可以检索存储桶的区域。存储桶必须与 MediaPackage VOD 资源位于同一区域。
+ `GetBucketRequestPayment`- MediaPackage 可以检索付款申请信息。 MediaPackage 使用此信息来验证存储桶是否不需要请求者为内容请求付费。

如果您还使用 live-to-VOD资产 MediaPackage 收集，请将`PutObject`操作添加到策略中。有关 live-to-VOD工作流程所需策略的更多信息，请参阅[live-to-VOD工作流程政策](#setting-up-create-trust-rel-policy-ltov)。

**使用 JSON 策略编辑器创建策略**

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

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 在页面的顶部，选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 输入以下 JSON 策略文档：

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:GetObject",
                   "s3:GetBucketLocation",
                   "s3:GetBucketRequestPayment",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::{{bucket_name}}/*",
                   "arn:aws:s3:::{{bucket_name}}"
               ],
               "Effect": "Allow"
           }
       ]
   }
   ```

1. 选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. 在**查看并创建**页面上，为您要创建的策略输入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看策略授予的权限。

1. 选择**创建策略**可保存新策略。

### live-to-VOD工作流程政策
<a name="setting-up-create-trust-rel-policy-ltov"></a>

如果您曾经从直播中获取 live-to-VOD资产，则 MediaPackage 需要一项允许您在 Amazon S3 中执行以下操作的策略：
+ `PutObject`: MediaPackage 可以将 VOD 资产保存在存储桶中。
+ `GetBucketLocation`: MediaPackage 可以检索存储桶的区域。存储桶必须与 MediaPackage VOD 资源位于相同的 AWS 区域。

如果您还使用 V MediaPackage OD 资产交付，请将以下操作添加到策略中：`GetObject`和。`GetBucketRequestPayment`有关 VOD 工作流程所需策略的更多信息，请参阅[针对 VOD 工作流的 Amazon S3 访问策略](#setting-up-create-trust-rel-policy-vod)。

**使用 JSON 策略编辑器创建策略**

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

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 在页面的顶部，选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 输入以下 JSON 策略文档：

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:PutObject",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::{{bucket_name}}/*",
                   "arn:aws:s3:::{{bucket_name}}"
               ],
               "Effect": "Allow"
           }
       ]
   }
   ```

1. 选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. 在**查看并创建**页面上，为您要创建的策略输入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看策略授予的权限。

1. 选择**创建策略**可保存新策略。

### 针对 CDN 授权的 Secrets Manager 访问策略
<a name="setting-up-create-trust-rel-policy-cdn"></a>

如果您使用内容分发网络 (CDN) 授权标头来限制对中终端节点的访问 MediaPackage，则需要一个允许您在 Secrets Manager 中执行以下操作的策略：
+ `GetSecretValue`- MediaPackage 可以从密钥的某个版本中检索加密的授权码。
+ `DescribeSecret`- MediaPackage 可以检索密钥的详细信息，不包括加密字段。
+ `ListSecrets`- MediaPackage 可以检索 AWS 账户中的机密列表。
+ `ListSecretVersionIds`: MediaPackage 可以检索附加到指定密钥的所有版本。

**注意**  
对于存储在 Secrets Manager 中的每个密钥，您不需要单独的策略。如果您创建类似于以下过程所述的策略，则 MediaPackage 可以访问该区域中您账户中的所有密钥。

**使用 JSON 策略编辑器创建策略**

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

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 在页面的顶部，选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 输入以下 JSON 策略文档：

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "secretsmanager:GetSecretValue",
           "secretsmanager:DescribeSecret",
           "secretsmanager:ListSecrets",
           "secretsmanager:ListSecretVersionIds"
         ],
         "Resource": [
           "arn:aws:secretsmanager:{{region}}:{{account-id}}:secret:{{secret-name}}"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
            "iam:GetRole",
            "iam:PassRole"
          ],
          "Resource": "arn:aws:iam::{{account-id}}:role/{{role-name}}"
        }
     ]
   }
   ```

1. 选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. 在**查看并创建**页面上，为您要创建的策略输入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看策略授予的权限。

1. 选择**创建策略**可保存新策略。

## 步骤 2：创建角色
<a name="setting-up-create-trust-rel-role"></a>

 IAM [角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是可在账户中创建的一种具有特定权限的 IAM 身份。IAM 角色与 IAM 用户类似，因为它是一个具有权限策略的 AWS 身份，该策略决定了该身份可以做什么和不能做什么 AWS。但是，角色旨在让需要它的任何人代入，而不是唯一地与某个人员关联。此外，角色没有关联的标准长期凭证（如密码或访问密钥）。相反，当你担任角色时，它会为你的角色会话提供临时安全证书。创建一个在从 Amazon S3 提取源内容时 AWS Elemental MediaPackage 扮演的角色。

创建角色时，您选择亚马逊弹性计算云 (Amazon EC2) 作为可信实体，该实体可以代替该角色， MediaPackage 因为该实体不可选。在中[步骤 3：修改信任关系](#setting-up-create-trust-rel-trust)，您将可信实体更改为 MediaPackage。

有关创建服务角色的信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## 步骤 3：修改信任关系
<a name="setting-up-create-trust-rel-trust"></a>

信任关系定义哪些实体可以担任您在 [步骤 2：创建角色](#setting-up-create-trust-rel-role) 中创建的角色。创建角色并建立可信关系时，选择 Amazon EC2 作为可信实体。修改角色，使您的 AWS 账户与之间建立信任关系 AWS Elemental MediaPackage。

**将信任关系更改为 MediaPackage**

1. 访问您在 [步骤 2：创建角色](#setting-up-create-trust-rel-role) 中创建的角色。

   如果尚未显示角色，请在 IAM 控制台的导航窗格中选择**角色**。搜索并选择您创建的角色。

1. 在角色的 **Summary (摘要)** 页面上，选择 **Trust relationships (信任关系)**。

1. 选择**编辑信任关系**。

1. 在 **Edit Trust Relationship (编辑信任关系)** 页面上的 **Policy Document (策略文档)** 中，将 `ec2.amazonaws.com` 更改为 `mediapackage.amazonaws.com`。

   策略文档现在看上去应类似于：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "mediapackage.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

   如果您在可选择加入的地区使用 MediaPackage 和相关服务，则必须在政策文档的`Service`部分中列出该区域。例如，如果您在亚太地区（墨尔本）地区使用服务，则政策文件如下所示：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "mediapackage.amazonaws.com",
             "mediapackage.ap-southeast-4.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 选择**更新信任策略**。

1. 在 **Summary (摘要)** 页面上，记下 **Role ARN (角色 ARN)** 中的值。在为视频点播 (VOD) 工作流程提取源内容时，您可以使用该 ARN。该 ARN 如下所示：

   `arn:aws:iam::{{111122223333}}:role/{{role-name}}`

   在示例中，{{111122223333}}是您的 AWS 账号。