

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

# EC2 Fleet 先決條件
<a name="ec2-fleet-prerequisites"></a>

**Topics**
+ [啟動範本](#ec2-fleet-prerequisites-launch-template)
+ [EC2 Fleet 的服務連結角色](#ec2-fleet-service-linked-role)
+ [授予客戶受管金鑰存取權，以便與加密的 AMI 和 EBS 快照搭配使用](#ec2-fleet-service-linked-roles-access-to-cmks)
+ [EC2 Fleet 使用者的許可](#ec2-fleet-iam-users)

## 啟動範本
<a name="ec2-fleet-prerequisites-launch-template"></a>

啟動範本會指定所要啟動執行個體的組態資訊，例如執行個體類型和可用區域。如需啟動範本的詳細資訊，請參閱 [將執行個體啟動參數存放在 Amazon EC2 啟動範本中](ec2-launch-templates.md)。

## EC2 Fleet 的服務連結角色
<a name="ec2-fleet-service-linked-role"></a>

`AWSServiceRoleForEC2Fleet` 角色會授與 EC2 Fleet 許可，以代表您請求、啟動、終止和標記執行個體。Amazon EC2 會使用此服務連結角色來完成下列動作：
+ `ec2:RunInstances` – 啟動執行個體。
+ `ec2:RequestSpotInstances` – 請求 競價型執行個體。
+ `ec2:TerminateInstances` – 終止執行個體。
+ `ec2:DescribeImages` - 描述執行個體的 Amazon Machine Images (AMI)。
+ `ec2:DescribeInstanceStatus` - 描述執行個體的狀態。
+ `ec2:DescribeSubnets` - 描述執行個體的子網絡。
+ `ec2:CreateTags` – 將標籤新增至 EC2 Fleet、執行個體和磁碟區。

在使用 AWS CLI 或 API 建立 EC2 機群之前，請確定此角色存在。

**注意**  
`instant` EC2 Fleet 不需要此角色。

若要建立角色，請依照下列所示使用 IAM 主控台。

**為 EC2 Fleet 建立 AWSServiceRoleForEC2Fleet 角色**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 選擇 **Create Role** (建立角色)。

1. 在 **Select trusted entity** (選取信任的實體) 頁面上，執行以下作業：

   1. 針對**信任的實體類型**，請選擇 **AWS 服務**。

   1. 在**使用案例**下，針對**服務或使用案例**，選擇 **EC2 - 機群**。
**提示**  
請務必選擇 **EC2 - 機群**。如果您選擇 **EC2**，則 **EC2 - 機群**使用案例不會出現在**使用案例**清單中。**EC2 - 機群**使用案例會自動建立具有必要 IAM 許可的政策，並將建議 **AWSServiceRoleForEC2Fleet** 做為角色名稱。

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

1. 在 **Add permissions** (新增許可) 頁面上，選擇 **Next** (下一步)。

1. 在**命名、檢閱和建立**頁面上，選擇**建立角色**。

如果您不再需要使用 EC2 Fleet，建議您刪除 **AWSServiceRoleForEC2Fleet** 角色。從您的帳戶中刪除此角色後，如果您建立其他機群，則可以再次建立此角色。

如需詳細資訊，請參閱「IAM 使用者指南」**中的[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。

## 授予客戶受管金鑰存取權，以便與加密的 AMI 和 EBS 快照搭配使用
<a name="ec2-fleet-service-linked-roles-access-to-cmks"></a>

如果您在 EC2 機群中指定[加密的 AMI](AMIEncryption.md) 或加密的 Amazon EBS 快照，並使用 AWS KMS 金鑰進行加密，則必須授予 **AWSServiceRoleForEC2Fleet** 角色使用客戶受管金鑰的許可，以便 Amazon EC2 可以代表您啟動執行個體。若要執行此動作，您必須將授予新增至客戶受管金鑰，如下列程序所示。

提供許可時，授與為金鑰政策的替代方案。如需詳細資訊，請參閱「*AWS Key Management Service 開發人員指南*」中的[使用授與](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)和[在 AWS KMS中使用金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**若要授予 AWSServiceRoleForEC2Fleet 角色許可以使用客戶受管金鑰**
+ 使用 [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) 命令將授予新增至客戶受管金鑰，並指定獲授予許可能夠執行授予所允許作業的主體 (**AWSServiceRoleForEC2Fleet** 服務連結角色)。客戶受管金鑰由 `key-id` 參數和客戶受管金鑰的 ARN 指定。委託人是透過 `grantee-principal` 參數和 **AWSServiceRoleForEC2Fleet** 服務連結角色的 ARN 指定。

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/AWSServiceRoleForEC2Fleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## EC2 Fleet 使用者的許可
<a name="ec2-fleet-iam-users"></a>

如果使用者將會建立或管理 EC2 Fleet，請務必授予這些使用者所需的許可。

**為 EC2 Fleet 建立政策**

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

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 **Create policy (建立政策)** 頁面上，選擇 **JSON** 索引標籤，接著使用下列內容來取代其文字，然後選擇 **Review policy (檢閱政策)**。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:*"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                 "iam:ListRoles",
                 "iam:PassRole",
                 "iam:ListInstanceProfiles"
               ],
               "Resource":"arn:aws:iam::123456789012:role/DevTeam*"
           }
       ]
   }
   ```

------

   `ec2:*` 會授與使用者權限，以呼叫所有 Amazon EC2 API 動作。若要將使用者限制於特定的 Amazon EC2 API 動作，請改為指定這些動作。

   使用者必須具有呼叫下列動作的權限：`iam:ListRoles` 動作 (以列舉現有的 IAM 角色)、`iam:PassRole` 動作 (以指定 EC2 Fleet 角色) 和 `iam:ListInstanceProfiles` 動作 (以列舉現有的執行個體設定檔)。

   (選用) 若要讓使用者能夠使用 IAM 主控台建立角色或執行個體設定檔，您也必須將下列動作新增至政策中：
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. 在 **Review policy (檢閱政策)** 頁面上，輸入政策名稱和說明，然後選擇 **Create policy (建立政策)**。

1. 若要提供存取權，請新增權限至您的使用者、群組或角色：
   + 中的使用者和群組 AWS IAM Identity Center：

     建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
   + 透過身分提供者在 IAM 中管理的使用者：

     建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
   + IAM 使用者：
     + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
     + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。