スポットインスタンスリクエスト向けのサービスにリンクされたロール - Amazon Elastic Compute Cloud

スポットインスタンスリクエスト向けのサービスにリンクされたロール

Amazon EC2 は、ユーザーに代わって AWS の他のサービスを呼び出すために必要なアクセス許可のために、サービスにリンクされたロールを使用します。サービスにリンクされたロールは、AWS のサービス に直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、AWS のサービスにアクセス許可を委任するためのセキュアな方法を提供します。これは、リンクされたサービスのみが、サービスにリンクされたロールを引き受けることができるためです。詳細については、「IAM ユーザーガイド」の「サービスにリンクされたロールの作成」を参照してください。

Amazon EC2 は、AWSServiceRoleForEC2Spot という、サービスにリンクされたロールを使用して、ユーザーの代わりに スポットインスタンス を起動して管理します。

AWSServiceRoleForEC2Spot によって付与されるアクセス許可

Amazon EC2 は、AWSServiceRoleForEC2Spot という、サービスにリンクされたロールを使用して、次のアクションを実行します。

  • ec2:DescribeInstances – スポットインスタンスの記述

  • ec2:StopInstances – スポットインスタンスの停止

  • ec2:StartInstances – スポットインスタンスの開始

サービスにリンクされたロールの作成

ほとんどの状況では、サービスにリンクされたロールを手動で作成する必要はありません。Amazon EC2 は、ユーザーがコンソールを使用して初めてスポットインスタンスをリクエストした際に、サービスにリンクされたロール AWSServiceRoleForEC2Spot を作成します。

Amazon EC2 がこのサービスにリンクされたロールのサポートを開始した 2017 年 10 月よりも前に、ユーザーがアクティブなスポットインスタンスリクエストを行っている場合は、Amazon EC2 により AWSServiceRoleForEC2Spot ロールが AWS アカウントに作成されています。 詳細については、IAM ユーザーガイドの「アカウントに新しいロールが表示される」を参照してください。

AWS CLI または API を使用してスポットインスタンスをリクエストするには、まずこのロールが存在していることを確認する必要があります。

コンソールを使用して AWSServiceRoleForEC2Spot を作成するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで Roles (ロール) を選択します。

  3. [ロールの作成] を選択します。

  4. [Select type of trusted entity (信頼されたエンティティのタイプを選択)] ページで、[EC2]、[EC2 - Spot Instances (EC2 - スポットインスタンス)]、[Next: Permissions (次の手順: アクセス許可)] の順に選択します。

  5. 次のページで、[次へ: 確認] を選択します。

  6. [確認] ページで、[ロールの作成] を選択します。

AWS CLI を使用して AWSServiceRoleForEC2Spot を作成するには

次のように、create-service-linked-role コマンドを使用します。

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

スポットインスタンス を使用する必要がなくなった場合は、[AWSServiceRoleForEC2Spot] ロールを削除することをお勧めします。このロールがアカウントから削除された後で、Amazon EC2 をリクエストすると、スポットインスタンス はロールを再度作成します。

暗号化された AMI および EBS スナップショット用のカスタマーマネージド型キーへのアクセス権限の付与

スポットインスタンスのために暗号化された AMI または暗号化された Amazon EBS スナップショットを指定しており、カスタマーマネージド型キーを暗号化に使用する場合は、Amazon EC2 がユーザーに代わってスポットインスタンスを起動できるようにするために、カスタマーマネージド型キーを使用する許可を AWSServiceRoleForEC2Spot ロールにより付与する必要があります。これを行うには、次の手順で示すように、カスタマーマネージド型キーに対し付与を追加する必要があります。

アクセス権限を設定するときは、付与がキーポリシーの代わりになります。詳細については、 デベロッパーガイドの「許可の使用」と「 でのキーポリシーの使用」を参照してください。https://docs.aws.amazon.com/kms/latest/developerguide/grants.htmlAWS KMSAWS 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"