

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

# 如何允許或不允許輸入位置類型
<a name="disallow-inputs"></a>

AWS Elemental MediaConvert 支援輸入媒體和檔案的 Amazon S3、HTTPS 和 HTTP 輸入位置類型。您可以使用 MediaConvert 政策，允許或禁止存取一或多個這些輸入位置類型。

根據預設，您 AWS 帳戶中的每個區域都沒有政策，MediaConvert 允許所有支援的輸入位置類型。只有在您想要不允許存取一或多個這些輸入位置類型時，才需要建立輸入政策。

若要防止任務以不允許的輸入位置類型執行，請建立 MediaConvert *輸入政策*。

此外，為了防止任務在沒有輸入政策的情況下提交至 MediaConvert API，請使用*條件索引鍵*建立 IAM 政策。您可以將這些 IAM 政策套用至整個組織的 IAM 角色。

下列各節說明如何建立輸入政策，以及如何使用 IAM 條件金鑰來允許或不允許輸入位置類型。

**Topics**
+ [如何使用輸入政策允許或禁止輸入位置類型](#input-policies)
+ [如何搭配輸入政策使用 IAM 條件金鑰](#input-policy-condition-keys)

## 如何使用輸入政策允許或禁止輸入位置類型
<a name="input-policies"></a>

若要建立或變更政策，請使用 API、 SDK 或**put-policy**命令列界面 (CLI) 提交命令，並在 JSON 中包含政策。請造訪 [MediaConvert API 參考](https://docs.aws.amazon.com/mediaconvert/latest/apireference/policy.html)，進一步了解支援的 政策命令和預期的回應代碼。

以下是如何使用 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) 錯誤。錯誤訊息為：您指定了政策不允許的輸入位置。指定允許的輸入位置，然後重新提交您的任務。由於 MediaConvert 防止提交這些任務，因此它們不會出現在您的任務歷史記錄中。

如果您提交的任務指定允許的輸入位置，但任務需要存取另一個不允許的輸入位置，您的任務將會失敗。例如，如果您在允許的 Amazon S3 位置上指定 Apple HLS 資訊清單，參考不允許的 HTTP 位置上的其他輸入區段檔案，則可能會遇到這種情況。任務失敗錯誤代碼為 3457，而訊息為：您指定了政策不允許的輸入位置。指定允許的輸入位置，然後重新提交您的任務。

## 如何搭配輸入政策使用 IAM 條件金鑰
<a name="input-policy-condition-keys"></a>

當您在用於提交建立任務請求的 IAM 政策中包含*條件金鑰*時，IAM 會檢查您的帳戶是否有符合該條件的輸入政策。您指定的條件必須符合您帳戶的輸入政策，才能授權 API 請求。您可以使用下列任何布林值條件索引鍵：
+ **HttpInputsAllowed**
+ **HttpsInputsAllowed**
+ **S3InputsAllowed**

使用條件索引鍵時，請考慮下列案例：

如果條件和輸入政策相符，例如，如果您將 **HTTPInputsAllowed** 設定為 ，`true`且帳戶的輸入政策允許 HTTP 輸入，則您的建立任務請求將提交至 MediaConvert API。

如果條件和輸入政策不相符，例如，如果您將 **HTTPInputsAllowed** 設定為 ，`false`且帳戶的輸入政策允許 HTTP 輸入，則您的建立任務請求將不會提交至 MediaConvert API。您會收到以下錯誤訊息：「訊息」：「使用者：arn：aws：iam：：111122223333：user/User 未獲授權執行：mediaconvert：CreateJob on resource： arn：aws：mediaconvert：us-west-2：111122223333：queues/Default」

如果條件和輸入政策相符，例如，如果您將 **HTTPInputsAllowed** 設定為 ，`false`且帳戶的輸入政策*不允許* HTTP 輸入，則您的建立任務請求將提交至 MediaConvert API。不過，API 接著會傳回 HTTP 400 (BadRequestException) 錯誤。錯誤訊息為：您指定了政策不允許的輸入位置。指定允許的輸入位置，然後重新提交您的任務。

如需使用 IAM 條件金鑰的詳細資訊，請參閱《IAM **[使用者指南》中的 IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

下列 JSON 是使用 MediaConvert 條件索引鍵的範例 IAM 政策，會檢查您的帳戶是否有不允許 HTTP 輸入的輸入政策：

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

****  

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

------

如需 MediaConvert 中條件金鑰支援的詳細資訊，請參閱 [AWS Elemental MediaConvert 如何使用 IAM](security_iam_service-with-iam.md)。