

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

# Amazon EC2 Spot 機群角色
<a name="spot_fleet_IAM_role"></a>

如果您建立使用 Amazon EC2 Spot 機群執行個體的受管運算環境，則必須建立 `AmazonEC2SpotFleetTaggingRole`政策。此政策授予 Spot Fleet 代表您啟動、標記和終止執行個體的許可。在您的 Spot Fleet 請求中指定角色。您還必須擁有 Amazon EC2**AWSServiceRoleForEC2Spot** 服務連結角色。 **AWSServiceRoleForEC2SpotFleet** 使用下列指示來建立所有這些角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)和[建立角色以委派許可給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**Topics**
+ [在 中建立 Amazon EC2 Spot 機群角色 AWS 管理主控台](spot-fleet-roles-console.md)
+ [使用 建立 Amazon EC2 Spot 機群角色 AWS CLI](spot-fleet-roles-cli.md)

# 在 中建立 Amazon EC2 Spot 機群角色 AWS 管理主控台
<a name="spot-fleet-roles-console"></a>

**為 `AmazonEC2SpotFleetTaggingRole` Amazon EC2 Spot Fleet 建立 IAM 服務連結角色**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 針對**存取管理**，選擇**角色**、

1. 針對**角色**，選擇**建立角色**。

1. 從**選取信任實體****類型的信任實體**中，選擇 **AWS 服務**。

1. 對於**其他的使用案例 AWS 服務**，請選擇 **EC2**，然後選擇 **EC2 - Spot 機群標記**。

1. 選擇**下一步**。

1. 從**政策名稱**的**許可政策**中，驗證 `AmazonEC2SpotFleetTaggingRole`。

1. 選擇**下一步**。

1. 針對**名稱、檢閱和建立**：

   1. 針對**角色名稱**，輸入名稱以識別角色。

   1. 針對**描述**，輸入政策的簡短說明。

   1. （選用） 對於**步驟 1：選取信任的實體**，選擇**編輯**以修改程式碼。

   1. （選用） 對於**步驟 2：新增許可**，選擇**編輯**以修改程式碼。

   1. （選用） 對於**新增標籤**，選擇**新增標籤**以將標籤新增至資源。

   1. 選擇建**立角色**。

**注意**  
過去，Amazon EC2 Spot Fleet 角色有兩個受管政策。  
**AmazonEC2SpotFleetRole**：這是 Spot Fleet 角色的原始受管政策。不過，我們不再建議您將其與 搭配使用 AWS Batch。此政策不支援在運算環境中使用`AWSServiceRoleForBatch`服務連結角色所需的 Spot 執行個體標記。如果您先前已使用此政策建立 Spot Fleet 角色，請將新的建議政策套用至該角色。如需詳細資訊，請參閱[建立時未標記 Spot 執行個體](spot-instance-no-tag.md)。
**AmazonEC2SpotFleetTaggingRole**：此角色提供標記 Amazon EC2 Spot 執行個體的所有必要許可。使用此角色允許在 AWS Batch 運算環境中標記 Spot 執行個體。

# 使用 建立 Amazon EC2 Spot 機群角色 AWS CLI
<a name="spot-fleet-roles-cli"></a>

**為您的 Spot Fleet 運算環境建立 **AmazonEC2SpotFleetTaggingRole** IAM 角色**

1. 使用 執行下列命令 AWS CLI。

   ```
   $ aws iam create-role --role-name AmazonEC2SpotFleetTaggingRole \
        --assume-role-policy-document '{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "spotfleet.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }'
   ```

1. 若要將 **AmazonEC2SpotFleetTaggingRole** 受管 IAM 政策連接至您的 **AmazonEC2SpotFleetTaggingRole** 角色，請使用 執行下列命令 AWS CLI。

   ```
   $ aws iam attach-role-policy \
     --policy-arn \
       arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole \
     --role-name \
       AmazonEC2SpotFleetTaggingRole
   ```

**為 `AWSServiceRoleForEC2Spot` Amazon EC2 Spot 建立 IAM 服務連結角色**
**注意**  
如果 `AWSServiceRoleForEC2Spot` IAM 服務連結角色已存在，您會看到類似以下的錯誤訊息。  

```
An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation:
Service role name AWSServiceRoleForEC2Spot has been taken in this account, please try a different suffix.
```
+ 使用 執行下列命令 AWS CLI。

  ```
  $ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
  ```

**為 `AWSServiceRoleForEC2SpotFleet` Amazon EC2 Spot Fleet 建立 IAM 服務連結角色**
**注意**  
如果 `AWSServiceRoleForEC2SpotFleet` IAM 服務連結角色已存在，您會看到類似以下的錯誤訊息。  

```
An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation:
Service role name AWSServiceRoleForEC2SpotFleet has been taken in this account, please try a different suffix.
```
+ 使用 執行下列命令 AWS CLI。

  ```
  $ aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com
  ```