如何允许或不允许输入位置类型 - MediaConvert
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

如何允许或不允许输入位置类型

AWS Elemental MediaConvert 支持您的输入媒体和文件的 Amazon S3、HTTPS 和 HTTP 输入位置类型。您可以使用 MediaConvert 策略允许或禁止访问其中一种或多种输入位置类型。

默认情况下,您 Amazon 账户中的每个区域都没有政策,并且 MediaConvert允许所有支持的输入位置类型。仅当您想要不允许访问其中一种或多种输入位置类型时,才需要创建输入策略。

要防止作业使用不允许的输入位置类型运行,请创建 MediaConvert输入策略

此外,为了防止在没有输入策略的情况下将任务提交给 MediaConvert API,请使用条件键创建 IAM 策略。您可以将这些 IAM policy 应用于您的组织中的 IAM 角色。

以下各节介绍如何创建输入策略以及如何使用 IAM 条件键来允许或不允许输入位置类型。

如何使用输入策略允许或不允许输入位置类型

要创建或更改策略,请使用 API、SDK 或命令行界面 (CLI) 提交 put-policy 命令,并将策略包含在 JSON 中。要详细了解支持的策略命令和预期的响应代码,请访问 MediaConvert API 参考

下面显示了如何使用 CLI 提交策略的示例。此示例允许使用 Amazon S3 和 HTTPS 输入的任务,不允许使用 HTTP 输入的任务:

aws mediaconvert put-policy --policy '{"S3Inputs":"ALLOWED", "HttpsInputs":"ALLOWED", "HttpInputs":"DISALLOWED"}'

如果您未在策略 JSON 中指定输入位置,则 MediaConvert 会将输入位置视为允许。以下是另一个示例,它允许使用 Amazon S3 和 HTTPS 输入的任务,不允许使用 HTTP 输入的任务:

aws mediaconvert put-policy --policy '{"HttpInputs":"DISALLOWED"}'

请注意,put-policy 命令会覆盖该区域中的任何现有策略。

检索当前的策略

要在 JSON 中检索当前策略,请提交 get-policy 命令:

aws mediaconvert get-policy

删除当前的策略

要删除当前策略并允许所有输入(恢复为默认行为),请提交 delete-policy 命令:

aws mediaconvert delete-policy

当您尝试提交一个使用不允许的输入位置的任务时会发生什么?

如果您尝试提交指定您的策略不允许的输入位置的作业,则 MediaConvert 会返回 HTTP 400 (BadRequestException) 错误。错误消息将是:You specified an input location that your policy disallows. Specify an allowed input location and resubmit your job. 由于 MediaConvert 阻止提交这些作业,因此它们不会出现在您的工作历史记录中。

如果您提交一个指定了允许的输入位置的任务,但该任务需要访问另一个不允许的输入位置,则您的任务也将失败。例如,如果您在允许的 Amazon S3 位置上指定 Apple HLS 清单,并在不允许的 HTTP 位置上引用其他输入分段文件,就可能会遇到这种情况。任务失败错误代码将是 3457,消息将是:您指定了您的策略不允许的输入位置。指定允许的输入位置并重新提交您的任务。

如何将 IAM 条件键与输入策略一起使用

如果您在 IAM policy 中提供了用于提交创建作业请求的条件键,IAM 将检查您的账户是否具有与该条件匹配的输入策略。您指定的条件必须与您账户的输入策略相匹配,API 请求才能获得授权。您可以使用以下任一布尔型条件键:

  • HttpInputsAllowed

  • HttpsInputsAllowed

  • S3 InputsAllowed

在使用条件键时,请注意以下情形:

如果条件和输入策略匹配,例如,如果您将 HTTP InputsAllowed 设置为,true并且您的账户的输入策略允许 HTTP 输入,则您的创建任务请求将提交到 MediaConvert API。

如果条件和输入策略不匹配,例如,如果您将 HTTP InputsAllowed 设置为,false并且您的账户的输入策略允许 HTTP 输入,则您的创建任务请求将不会提交给 MediaConvert API。相反,你会收到以下错误消息:“消息”:“用户:arn: aws: iam:: 111122223333: 用户/用户无权执行:mediaConvert:在资源上:arn: aws: mediaConvert: us-west-2:111122223333: queues/Defaul t” CreateJob

如果条件和输入策略匹配,例如,如果您将 HTTP InputsAllowed 设置为,false而您的账户的输入策略不允许 HTTP 输入,则您的创建任务请求将提交到 MediaConvert API。但是,API 随后将返回一个 HTTP 400 (BadRequestException) 错误。错误消息将是:You specified an input location that your policy disallows. Specify an allowed input location and resubmit your job.

有关条件键的更多信息,请参阅 IAM 用户指南中的 IAM JSON 策略元素:条件

以下 JSON 是一个使用 MediaConvert 条件键的 IAM 策略示例,用于检查您的账户是否有不允许 HTTP 输入的输入策略:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockHTTPInputsExample", "Effect": "Allow", "Action": "mediaconvert:CreateJob", "Resource": "*", "Condition": { "ForAllValues:BoolIfExists": { "mediaconvert:HttpInputsAllowed": [ "false" ], "mediaconvert:HttpsInputsAllowed": [ "true" ], "mediaconvert:S3InputsAllowed": [ "true" ] } } } ] }

有关中支持条件键的更多信息 MediaConvert,请参阅AWS Elemental 如何与 IAM 配 MediaConvert 合使用