本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Elemental MediaPackage 允许访问其他 AWS 服务
某些功能需要您 MediaPackage 允许访问其他 AWS 服务,例如 Amazon S3 和 AWS Secrets Manager (Secrets Manager)。要允许此访问,请创建具有相应权限的 IAM 角色和策略。以下步骤描述了如何为 MediaPackage 功能创建角色和策略。
步骤 1:创建策略
该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 允许读取密钥的策略。
以下各部分介绍如何创建这些策略。
如果您使用 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工作流程政策。
使用JSON策略编辑器创建策略
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择策略。
如果这是您首次选择策略,则会显示欢迎访问托管式策略页面。选择开始使用。
-
在页面的顶部,选择 Create Policy(创建策略)。
-
在策略编辑器部分中,选择JSON选项。
-
输入以下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" } ] } -
选择下一步。
注意
您可以随时在 “可视化” 和 “JSON编辑器” 选项之间切换。但是,如果您进行更改或在可视化编辑器中选择 “下一步”,则IAM可能会重构您的策略以针对可视化编辑器对其进行优化。有关更多信息,请参阅《IAM用户指南》中的策略重组。
-
在查看并创建页面上,为您要创建的策略输入策略名称和描述(可选)。查看此策略中定义的权限以查看策略授予的权限。
-
选择创建策略可保存新策略。
如果您曾经从直播中获取 live-to-VOD资产,则 MediaPackage 需要一项允许您在 Amazon S3 中执行以下操作的策略:
-
PutObject
: MediaPackage 可以将VOD资产保存在存储桶中。 -
GetBucketLocation
: MediaPackage 可以检索存储桶的区域。存储桶必须与 MediaPackage VOD资源位于同一AWS区域。
如果您还使用 MediaPackage VOD资产交付,请将以下操作添加到策略中:GetObject
和GetBucketRequestPayment
。有关VOD工作流程所需策略的更多信息,请参阅Amazon S3 VOD 工作流程访问权限政策。
使用JSON策略编辑器创建策略
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择策略。
如果这是您首次选择策略,则会显示欢迎访问托管式策略页面。选择开始使用。
-
在页面的顶部,选择 Create Policy(创建策略)。
-
在策略编辑器部分中,选择JSON选项。
-
输入以下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" } ] } -
选择下一步。
注意
您可以随时在 “可视化” 和 “JSON编辑器” 选项之间切换。但是,如果您进行更改或在可视化编辑器中选择 “下一步”,则IAM可能会重构您的策略以针对可视化编辑器对其进行优化。有关更多信息,请参阅《IAM用户指南》中的策略重组。
-
在查看并创建页面上,为您要创建的策略输入策略名称和描述(可选)。查看此策略中定义的权限以查看策略授予的权限。
-
选择创建策略可保存新策略。
如果您使用内容分发网络 (CDN) 授权标头来限制对中终端节点的访问 MediaPackage,则需要一个允许您在 Secrets Manager 中执行以下操作的策略:
-
GetSecretValue
- MediaPackage 可以从密钥的某个版本中检索加密的授权码。 -
DescribeSecret
- MediaPackage 可以检索密钥的详细信息,不包括加密字段。 -
ListSecrets
- MediaPackage 可以检索 AWS 账户中的机密列表。 -
ListSecretVersionIds
: MediaPackage 可以检索附加到指定密钥的所有版本。
注意
对于存储在 Secrets Manager 中的每个密钥,您不需要单独的策略。如果您创建类似于以下过程所述的策略,则 MediaPackage 可以访问该区域中您账户中的所有密钥。
使用JSON策略编辑器创建策略
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择策略。
如果这是您首次选择策略,则会显示欢迎访问托管式策略页面。选择开始使用。
-
在页面的顶部,选择 Create Policy(创建策略)。
-
在策略编辑器部分中,选择JSON选项。
-
输入以下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
" } ] } -
选择下一步。
注意
您可以随时在 “可视化” 和 “JSON编辑器” 选项之间切换。但是,如果您进行更改或在可视化编辑器中选择 “下一步”,则IAM可能会重构您的策略以针对可视化编辑器对其进行优化。有关更多信息,请参阅《IAM用户指南》中的策略重组。
-
在查看并创建页面上,为您要创建的策略输入策略名称和描述(可选)。查看此策略中定义的权限以查看策略授予的权限。
-
选择创建策略可保存新策略。
步骤 2:创建角色
IAM角色是您可以在自己的账户中创建的具有特定权限的IAM身份。IAM角色与IAM用户的相似之处在于,它是一个 AWS 身份,其权限策略决定了该身份可以做什么和不能做什么 AWS。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(如密码或访问密钥)。相反,当您代入角色时,它会为您提供角色会话的临时安全凭证。创建一个在从 Amazon S3 提取源内容时 AWS Elemental MediaPackage 扮演的角色。
在创建角色时,您选择亚马逊弹性计算云 (AmazonEC2) 作为可以担任该角色的可信实体,因为该实体 MediaPackage 不可选。在中步骤 3:修改信任关系,您将可信实体更改为 MediaPackage。
有关创建服务角色的信息,请参阅《IAM用户指南》中的创建向 AWS 服务委派权限的角色。
步骤 3:修改信任关系
信任关系定义哪些实体可以担任您在 步骤 2:创建角色 中创建的角色。在创建角色并建立信任关系时,您选择了 Amazon EC2 作为可信实体。修改角色,使您的 AWS 账户与之间建立信任关系 AWS Elemental MediaPackage。
将信任关系更改为 MediaPackage
-
访问您在 步骤 2:创建角色 中创建的角色。
如果尚未显示该角色,请在 IAM 控制台的导航窗格中选择 Roles (角色)。搜索并选择您创建的角色。
-
在角色的 Summary (摘要) 页面上,选择 Trust relationships (信任关系)。
-
选择编辑信任关系。
-
在 Edit Trust Relationship (编辑信任关系) 页面上的 Policy Document (策略文档) 中,将
ec2.amazonaws.com
更改为mediapackage.amazonaws.com
。策略文档现在看上去应类似于:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "mediapackage.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
选择更新信任策略。
-
在 “摘要” 页面上,记下 “角色” 中的值ARN。ARN当你为视频点播 (VOD) 工作流程摄取源内容时,你可以使用它。它们ARN看起来像这样:
arn:aws:iam::
111122223333
:role/role-name
在示例中,
111122223333
是您的 AWS 账号。