

# EC2 フリートの前提条件
<a name="ec2-fleet-prerequisites"></a>

**Topics**
+ [起動テンプレート](#ec2-fleet-prerequisites-launch-template)
+ [EC2 フリート用のサービスにリンクされたロール](#ec2-fleet-service-linked-role)
+ [暗号化された AMI および EBS スナップショット用のカスタマー管理された型キーへのアクセス権限の付与](#ec2-fleet-service-linked-roles-access-to-cmks)
+ [EC2 フリートユーザーのアクセス許可](#ec2-fleet-iam-users)

## 起動テンプレート
<a name="ec2-fleet-prerequisites-launch-template"></a>

起動テンプレートには、インスタンスタイプやアベイラビリティーゾーンなど、起動するインスタンスに関する設定情報を指定します。起動テンプレートの詳細については、「[Amazon EC2 起動テンプレートにインスタンス起動パラメータを保存する](ec2-launch-templates.md)」を参照してください。

## EC2 フリート用のサービスにリンクされたロール
<a name="ec2-fleet-service-linked-role"></a>

`AWSServiceRoleForEC2Fleet` ロールは、インスタンスのリクエスト、起動、終了、タグ付けを行う許可を EC2 フリートに付与します。Amazon EC2 は、このサービスにリンクされたロールを使用して、以下のアクションを完了します。
+ `ec2:RunInstances` – インスタンスを起動します。
+ `ec2:RequestSpotInstances` – スポットインスタンスをリクエストします。
+ `ec2:TerminateInstances` – インスタンスを終了します。
+ `ec2:DescribeImages` - インスタンスの Amazon マシンイメージ (AMI) を表示します。
+ `ec2:DescribeInstanceStatus` - インスタンスのステータスを表示します。
+ `ec2:DescribeSubnets` - インスタンスのサブネットを表示します。
+ `ec2:CreateTags` – EC2 フリート、インスタンス、ボリュームにタグを追加します。

AWS CLI または API を使用して EC2 フリート を作成する前に、このロールが存在していることを確認します。

**注記**  
`instant` EC2 フリート に、このロールは必要ありません。

ロールを作成するには、IAM コンソールを次のように使用します。

**EC2 フリート の AWSServiceRoleForEC2Fleet ロールを作成するには**

1. IAM コンソールの [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開いてください。

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**Create role**] を選択してください。

1. **[信頼されたエンティティを選択]** ページで、以下の操作を実行してください。

   1. **[信頼できるエンティティタイプ]** で、**[AWS サービス]** を選択してください。

   1. **[ユースケース]** の **[サービスまたはユースケース]** で、**[EC2 - フリート]** を選択してください。
**ヒント**  
必ず **[EC2 - フリート]** を選択してください。**[EC2]** を選択した場合、**[EC2 - フリート]** ユースケースは **[ユースケース]** リストに表示されません。**[EC2 - フリート]** ユースケースでは、必要な IAM アクセス許可を持つポリシーが自動的に作成され、ロール名として **AWSServiceRoleForEC2Fleet** が提案されます。

   1. [**Next**] を選択してください。

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。

1. **[名前、確認、および作成]** ページで、**[ロールの作成]** をクリックしてください。

EC2 フリート を使用する必要がなくなった場合は、**AWSServiceRoleForEC2Fleet** ロールを削除することをお勧めします。このロールがアカウントから削除された後で、別のフリートを作成した場合はロールを再度作成できます。

詳細については「*IAM ユーザーガイド*」の「[Service-linked roles](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>

[暗号化された AMI](AMIEncryption.md) または暗号化された Amazon EBS スナップショットを EC2 フリートで指定し、暗号化の AWS KMS キーを使用する場合は、カスタマー管理された型キーを使用して、Amazon EC2 がユーザーの代わりにインスタンスを起動する許可を、**AWSServiceRoleForEC2Fleet** ロールに付与する必要があります。これを行うには、次の手順で示すように、カスタマー管理された型キーに許可を追加する必要があります。

アクセス権限を設定するときは付与がキーポリシーの代わりになります。詳細については、「*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 ロールにカスタマー管理された型キーを使用する許可を付与するには**
+ [許可の作成](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 フリートユーザーのアクセス許可
<a name="ec2-fleet-iam-users"></a>

ユーザーが EC2 フリートを作成または管理する場合、必ず必要な許可を付与してください。

**EC2 フリートのポリシーを作成するには**

1. IAM コンソールの [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/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 ユーザーは、既存の IAM ロールを列挙する `iam:ListInstanceProfiles` アクション、EC2 フリートロールを指定する `iam:PassRole` アクション、および既存のインスタンスプロファイルを列挙する `iam:ListRoles` アクションを呼び出すには、許可が必要です。

   (オプション) ユーザーが IAM コンソールを使用してロールまたはインスタンスプロファイルを作成できるようにするには、次のアクションをポリシーに追加する必要もあります。
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. **[Review policy]** (ポリシーの確認) ページでポリシー名と説明を入力し、**[Create policy]** (ポリシーの作成) を選択してください。

1. アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
   + AWS IAM アイデンティティセンター のユーザーとグループ:

     アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
   + IAM 内で、ID プロバイダーによって管理されているユーザー:

     ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](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) の指示に従います。