Spot 執行個體請求的服務連結角色 - Amazon Elastic Compute Cloud

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

Spot 執行個體請求的服務連結角色

Amazon EC2 使用許可的服務連結角色,它需要代表您呼叫其他 AWS 服務。服務連結角色是直接連結至 的唯一 IAM 角色類型 AWS 服務。服務連結角色提供將許可委派給 的安全方式, AWS 服務 因為只有連結的服務可以擔任服務連結角色。如需詳細資訊,請參閱「IAM 使用者指南」中的服務連結角色

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

AWSServiceRoleForEC2Spot 授予的許可

Amazon EC2 會使用 AWSServiceRoleForEC2Spot 來完成下列動作:

  • ec2:DescribeInstances - 描述 Spot 執行個體

  • ec2:StopInstances - 停止 Spot 執行個體

  • ec2:StartInstances - 啟動 Spot 執行個體

建立服務連結角色

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

如果您在 2017 年 10 月之前有作用中的 Spot 執行個體請求,當 Amazon EC2 開始支援此服務連結角色時,Amazon EC2 會在您的帳戶中建立 AWSServiceRoleForEC2Spot 角色 AWS 。如需詳細資訊,請參閱IAM 使用者指南中的 在我的帳戶中出現新的角色

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

使用主控台建立 AWSServiceRoleForEC2Spot
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

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

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

  5. 在下一頁選擇 Next:Review (下一步:檢閱)

  6. 檢閱頁面上選擇建立角色

使用 建立 AWSServiceRoleForEC2SpotAWS CLI

使用如下所示的 create-service-linked-role 命令。

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

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

授予客戶受管金鑰存取權,以便與加密的 AMI 和 EBS 快照搭配使用

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

提供許可時,授與為金鑰政策的替代方案。如需詳細資訊,請參閱 開發人員指南中的使用授予 AWS KMS和AWS Key Management Service 中使用金鑰政策

若要授予 AWSServiceRoleForEC2Spot 角色許可以使用客戶受管金鑰
  • 使用 create-grant 命令將授予新增至客戶受管金鑰,並指定獲授予許可能夠執行授予所允許作業的委託人 (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"