スポットインスタンスリクエスト向けのサービスにリンクされたロール
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 を作成するには
IAM コンソール のhttps://console.aws.amazon.com/iam/
を開いてください。 -
ナビゲーションペインで Roles (ロール) を選択してください。
-
[ロールの作成] を選択してください。
-
[Select type of trusted entity (信頼されたエンティティのタイプを選択)] ページで、[EC2]、[EC2 - Spot Instances (EC2 - スポットインスタンス)]、[Next: Permissions (次の手順: アクセス許可)] の順に選択してください。
-
次のページで、[次へ: 確認] を選択してください。
-
[確認] ページで、[ロールの作成] を選択してください。
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 ロールにより付与する必要があります。これを行うには次の手順で示すように、カスタマーマネージド型キーに対し付与を追加する必要があります。
アクセス権限を設定するときは付与がキーポリシーの代わりになります。詳細についてはAWS Key Management Service デベロッパーガイドの付与の使用とAWS KMS でのキーポリシーの使用を参照してください。
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"