

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

# IAM 政策結構
<a name="iam-policy-structure"></a>

下列主題說明 IAM 政策的結構。

**Topics**
+ [

## 政策語法
](#policy-syntax)
+ [

## 的 API 動作 AWS Batch
](#UsingWithbatch_Actions)
+ [

## 的 Amazon Resource Name AWS Batch
](#batch_ARN_Format)
+ [

## 確認使用者具有必要的許可
](#check-required-permissions)

## 政策語法
<a name="policy-syntax"></a>

IAM 政策為包含一或多個陳述式的 JSON 文件。每個陳述式的結構如下所示。

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
    "key":"value"
    }
      }
    }
  ]
}
```

陳述式由四個主要元素組成：
+ **Effect** (效果)：*效果* 可以是 `Allow` 或 `Deny`。根據預設，使用者沒有使用資源和 API 動作的許可。因此，所有請求都會遭到拒絕。明確允許覆寫預設值。明確拒絕覆寫任何允許。
+ **動作**：*動作*是您授予或拒絕許可的特定 API 動作。如需如何指定*動作*的指示，請參閱 [的 API 動作 AWS Batch](#UsingWithbatch_Actions)。
+ **Resource** (資源)：受動作影響的資源。透過某些 AWS Batch API 動作，您可以在政策中包含可由動作建立或修改的特定資源。若要在陳述式中指定資源，請使用它的 Amazon Resource Name (ARN)。如需詳細資訊，請參閱[AWS Batch API 動作支援的資源層級許可](batch-supported-iam-actions-resources.md)及[的 Amazon Resource Name AWS Batch](#batch_ARN_Format)。如果 AWS Batch API 操作目前不支援資源層級許可，請包含萬用字元 (\$1)，以指定所有資源都可能受到 動作的影響。
+ **Condition** (條件)：條件為選擇性。您可以使用它們來控制何時政策開始生效。

如需 IAM 政策陳述式範例的詳細資訊 AWS Batch，請參閱 [資源： 的政策範例 AWS Batch](ExamplePolicies_BATCH.md)。

## 的 API 動作 AWS Batch
<a name="UsingWithbatch_Actions"></a>

在 IAM 政策陳述式中，您可以從任何支援 IAM 的服務指定任何 API 動作。對於 AWS Batch，請使用下列字首搭配 API 動作的名稱： `batch:`（例如， `batch:SubmitJob`和 `batch:CreateComputeEnvironment`)。

若要在單一陳述式中指定多個動作，請以逗號分隔每個動作。

```
"Action": ["batch:action1", "batch:action2"]
```

您也可以透過包含萬用字元 (\$1) 來指定多個動作。例如，您可以指定名稱開頭為「Describe」的所有動作。

```
"Action": "batch:Describe*"
```

若要指定所有 AWS Batch API 動作，請包含萬用字元 (\$1)。

```
"Action": "batch:*"
```

如需 AWS Batch 動作清單，請參閱 *AWS Batch API 參考*中的[動作](https://docs.aws.amazon.com/batch/latest/APIReference/API_Operations.html)。

## 的 Amazon Resource Name AWS Batch
<a name="batch_ARN_Format"></a>

每個 IAM 政策陳述式都適用於您使用其 Amazon Resource Name (ARNs) 指定的資源。

Amazon Resource Name (ARN) 具有下列一般語法：

```
arn:aws:[service]:[region]:[account]:resourceType/resourcePath
```

*服務*  
服務 (例如，`batch`)。

*region*  
資源 AWS 區域 的 （例如，`us-east-2`)。

*account*  
 AWS 帳戶 ID，不含連字號 （例如 `123456789012`)。

*resourceType*  
資源類型 (例如，`compute-environment`)。

*resourcePath*  
識別資源的路徑。您可以在路徑中使用萬用字元 (\$1)。

AWS Batch API 操作目前支援數個 API 操作的資源層級許可。如需詳細資訊，請參閱[AWS Batch API 動作支援的資源層級許可](batch-supported-iam-actions-resources.md)。若要指定所有資源，或如果特定 API 動作不支援 ARNs，請在 `Resource`元素中包含萬用字元 (\$1)。

```
"Resource": "*"
```

## 確認使用者具有必要的許可
<a name="check-required-permissions"></a>

在將 IAM 政策投入生產環境之前，請確定它授予使用者使用他們所需的特定 API 動作和資源的許可。

若要這樣做，請先建立用於測試的使用者，並將 IAM 政策連接至測試使用者。接著，以測試使用者的身分提出請求。您可以在主控台或 AWS CLI中提出測試請求。

**注意**  
您也可以使用 [IAM 政策模擬器來測試您的政策](https://policysim.aws.amazon.com/home/index.jsp?#)。如需政策模擬器的詳細資訊，請參閱[《IAM 使用者指南》中的使用 IAM 政策模擬器](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_testing-policies.html)。 **

如果政策未授予使用者預期的許可，或授予過多許可，您可以視需要調整政策並重新測試。重新測試，直到您取得所要的結果。

**重要**  
政策變更的散佈可能需要幾分鐘時間才能生效。因此，我們建議您在測試政策更新之前至少等待五分鐘。

如果授權檢查失敗，請求將傳回包含診斷資訊的編碼訊息。您可使用 `DecodeAuthorizationMessage` 動作將訊息解碼。如需詳細資訊，請參閱 *AWS Security Token Service API 參考*中的 [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html) 以及 *AWS CLI 命令參考*中的 [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html)。