

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

# Spot 執行個體請求的服務連結角色
<a name="service-linked-roles-spot-instance-requests"></a>

Amazon EC2 使用許可的服務連結角色，它需要代表您呼叫其他 AWS 服務。服務連結角色是直接連結至 的唯一 IAM 角色類型 AWS 服務。服務連結角色提供將許可委派給 的安全方式， AWS 服務 因為只有連結的服務可以擔任服務連結角色。如需詳細資訊，請參閱「IAM 使用者指南」**中的[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。

Amazon EC2 使用名為 **AWSServiceRoleForEC2Spot** 的服務連結角色來代您管理 競價型執行個體。

## AWSServiceRoleForEC2Spot 授予的許可
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2Spot"></a>

Amazon EC2 會使用 **AWSServiceRoleForEC2Spot** 來完成下列動作：
+ `ec2:DescribeInstances` - 描述 Spot 執行個體
+ `ec2:StopInstances` - 停止 Spot 執行個體
+ `ec2:StartInstances` - 啟動 Spot 執行個體

## 建立服務連結角色
<a name="service-linked-role-creating-for-spot"></a>

在大部分情況下，您不需要手動建立服務連結角色。您第一次使用主控台建立 Spot 執行個體時，Amazon EC2 會建立 **AWSServiceRoleForEC2Spot** 服務連結角色。

如果您在 2017 年 10 月之前有作用中的 Spot 執行個體請求，當 Amazon EC2 開始支援此服務連結角色時，Amazon EC2 會在您的帳戶中建立 **AWSServiceRoleForEC2Spot** 角色 AWS 。如需詳細資訊，請參閱[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)中的 *在我的帳戶中出現新的角色*。

如果您使用 AWS CLI 或 API 來請求 Spot 執行個體，您必須先確保此角色存在。

**使用主控台建立 **AWSServiceRoleForEC2Spot****

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

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

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

1. 在 **Select type of trusted entity (選取信任實體類型)** 頁面上，選取 **EC2**、選取 **EC2 - Spot Instances (EC2 - Spot 執行個體)**，然後選取 **Next: Permissions (下一步：許可)**。

1. 在下一頁選擇 **Next:Review (下一步：檢閱)**。

1. 在**檢閱**頁面上選擇**建立角色**。

**使用 建立 **AWSServiceRoleForEC2Spot** AWS CLI**  
使用如下所示的 [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) 命令。

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

如果您不再需要使用 競價型執行個體，建議您刪除 **AWSServiceRoleForEC2Spot** 角色。從您的帳戶中刪除此角色後，如果您請求 競價型執行個體，Amazon EC2 會再次建立此角色。

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

如果您為 Spot 執行個體指定[加密的 AMI](AMIEncryption.md) 或加密的 Amazon EBS 快照，而且使用客戶受管金鑰進行加密，您必須授予 **AWSServiceRoleForEC2Spot** 角色許可才能使用客戶受管金鑰，使得 Amazon EC2 可以代表您啟動 Spot 執行個體。若要執行此動作，您必須將授予新增至客戶受管金鑰，如下列程序所示。

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

**若要授予 **AWSServiceRoleForEC2Spot** 角色許可以使用客戶受管金鑰**
+ 使用 [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) 命令將授予新增至客戶受管金鑰，並指定獲授予許可能夠執行授予所允許作業的委託人 (**AWSServiceRoleForEC2Spot** 服務連結角色)。客戶受管金鑰由 `key-id` 參數和客戶受管金鑰的 ARN 指定。委託人是透過 `grantee-principal` 參數和 **AWSServiceRoleForEC2Spot** 服務連結角色的 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/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```