

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Batch IAM 実行ロール
<a name="execution-IAM-role"></a>

実行ロールは、ユーザーに代わって AWS API コールを行うアクセス許可を Amazon ECS コンテナと AWS Fargate エージェントに付与します。

**注記**  
実行ロールは Amazon ECS コンテナエージェントバージョン 1.16.0 以降でサポートされています。

IAM 実行ロールは、タスクの要件に応じて要求されます。さまざまな目的とサービスの実行ロールを、アカウントに複数関連付けることができます。

**注記**  
詳細については、 ユーザーガイドのAmazon ECS インスタンスロールを参照してください[Amazon ECS インスタンスロール](instance_IAM_role.md)。サービスロールの詳細については、[が IAM と AWS Batch 連携する方法](security_iam_service-with-iam.md)を参照してください。

Amazon ECS は、`AmazonECSTaskExecutionRolePolicy`マネージドポリシーを提供します。は、という管理ポリシーを提供します。このポリシーには、上記の一般的ユースケースで必要なアクセス許可が含まれています。以下に説明する特別な使用例のために、実行ロールにインラインポリシーを追加する必要があるかもしれません。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "*"
    }
  ]
}
```

------

# AWS Batch API アクションでサポートされているリソースレベルのアクセス許可
<a name="batch-supported-iam-actions-resources"></a>

*リソースレベルのアクセス許可*という用語は、ユーザーがアクションを実行できるリソースを指定する機能を指します。 AWS Batch では、リソースレベルのアクセス許可が部分的にサポートされています。一部の AWS Batch アクションでは、満たす必要がある条件に基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できます。ユーザーが使用できる特定のリソースに基づいて制御することもできます。例えば、特定のジョブ定義がある特定のジョブキューでのみ、ジョブを送信するアクセス許可をユーザーに付与できます。

各リソースタイプの ARN の形式など、 AWS バッチで定義されるアクションとリソースタイプの詳細については、[AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html)*「サービス認可リファレンス*」の「 のアクション、リソース、および条件キー」を参照してください。 ARNs 

# チュートリアル: IAM 実行ロールを作成する
<a name="create-execution-role"></a>

アカウントにまだ IAM 実行ロールがない場合は、以下の手順でロールを作成してください。

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

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

1. **ロールの作成** を選択します。

1. 信頼できるエンティティタイプ で、を選択します。

1. **[サービスまたはユースケース]** では、[**エラスティックコンテナサービス**] を選択します。その後、**[エラスティックコンテナサービスタスク]** を再度選択します。

1. [**次へ**] を選択します。

1. **アクセス権限ポリシー** については、**AmazonECSTaskExecutionRolePolicy** を検索してください。

1. **AmazonECSTaskExecutionRolePolicy** ポリシーの左側にあるチェックボックスをオンにした後、**ポリシーをアタッチ** を選択します。

1. **ロール名**に `ecsTaskExecutionRole` と入力し、**ロールの作成** を選択します。

# チュートリアル: IAM 実行ロールを確認する
<a name="check-execution-role"></a>

以下の手順を使用して、アカウントに IAM 実行ロールが既にあることを確認し、必要に応じて管理された IAM ポリシーをアタッチできます。<a name="procedure_check_execution_role"></a>

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで **[ロール]** を選択します。

1. ロールのリストで `ecsTaskExecutionRole` を検索します。ロールが検出できない場合は、[チュートリアル: IAM 実行ロールを作成する](create-execution-role.md) を参照してください。ロールが見つかった場合は、添付されたポリシーを表示するロールを選択します。

1. **Permissions]** (アクセス許可) タブで、**AmazonECSTaskExecutionRolePolicy** 管理ポリシーがロールにアタッチされていることを検証します。ポリシーがアタッチされている場合、 実行ロールは適切に設定されています。そうでない場合、次のサブステップに従ってポリシーをアタッチします。

   1. **アクセス許可を追加**、**ポリシーをアタッチ** の順に選択します。

   1. **AmazonECSTaskExecutionRolePolicy**。

   1. **AmazonECSTaskExecutionRolePolicy** ポリシーの左にあるボックスをオンにし、**ポリシーをアタッチ** を選択します。

1. **Trust relationships (信頼関係)** を選択します。

1. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致していれば、ロールは正しく設定されています。**信頼関係の編集** を選択して、次のポリシーを追加し、**信頼ポリシーの更新** を選択します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "ecs-tasks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

# のサービスにリンクされたロールの使用 AWS Batch
<a name="using-service-linked-roles"></a>

AWS Batch は AWS Identity and Access Management (IAM) [ サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスにリンクされたロールは、直接リンクされた一意のタイプの IAM ロールです AWS Batch。サービスにリンクされたロールは によって事前定義 AWS Batch されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

AWS Batch は 2 つの異なるサービスにリンクされたロールを使用します。
+ [AWSServiceRoleForBatch](using-service-linked-roles-batch-general.md) - コンピューティング環境を含む AWS Batch オペレーション用。
+ [AWSServiceRoleForAWSBatchWithSagemaker](using-service-linked-roles-batch-sagemaker.md) - SageMaker AI ワークロードの管理およびキューイング用。

**Topics**
+ [での ロールの使用 AWS Batch](using-service-linked-roles-batch-general.md)
+ [SageMaker AI AWS Batch での のロールの使用](using-service-linked-roles-batch-sagemaker.md)

# での ロールの使用 AWS Batch
<a name="using-service-linked-roles-batch-general"></a>

AWS Batch は AWS Identity and Access Management (IAM) [サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスにリンクされたロールは、直接リンクされた一意のタイプの IAM ロールです AWS Batch。サービスにリンクされたロールは によって事前定義 AWS Batch されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がなくなるため、 の設定 AWS Batch が簡単になります。 は、サービスにリンクされたロールのアクセス許可 AWS Batch を定義します。特に定義されている場合を除き、 のみがそのロールを引き受け AWS Batch ることができます。定義される許可は信頼ポリシーと許可ポリシーに含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

**注記**  
 AWS Batch コンピューティング環境のサービスロールを指定するには、次のいずれかを実行します。  
サービスロールには空の文字列を使用します。これにより、 はサービスロール AWS Batch を作成できます。
以下の形式でサービスロールを指定します:`arn:aws:iam::account_number:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch`。
詳細については、「 AWS Batch ユーザーガイド[正しくないロール名または ARN](invalid_compute_environment.md#invalid_service_role_arn)」の「」を参照してください。

サービスリンクロールを削除するには、最初に関連リソースを削除する必要があります。これにより、 AWS Batch リソースへのアクセス許可が誤って削除されないため、リソースが保護されます。

サービスにリンクされたロールをサポートする他のサービスの詳細については、[AWS 「IAM と連携するサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照し、「サービス**にリンクされたロール**」列で**「はい**」を持つサービスを探します。サービスリンクロールに関するドキュメントをサービスで表示するには、リンクで **[はい]** を選択します。

## のサービスにリンクされたロールのアクセス許可 AWS Batch
<a name="service-linked-role-permissions-batch-general"></a>

AWS Batch は、**AWSServiceRoleForBatch** という名前のサービスにリンクされたロールを使用します。 がユーザーに代わって AWS リソースを作成および管理 AWS Batch できるようにします。

サービスにリンクされたロール AWSServiceRoleForBatch は、次のサービスを信頼してロールを引き受けます。
+ `batch.amazonaws.com`

[BatchServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-BatchServiceRolePolicy) という名前のロールアクセス許可ポリシーにより AWS Batch 、 は指定されたリソースに対して次のアクションを実行できます。
+ `autoscaling` – AWS Batch が Amazon EC2 Auto Scaling resources を作成および管理できるようにします。 は、ほとんどのコンピューティング環境の Amazon EC2 Auto Scaling グループ AWS Batch を作成および管理します。
+ `ec2` – AWS Batch が Amazon EC2 インスタンスのライフサイクルを制御し、起動テンプレートとタグを作成および管理できるようにします。 は、一部の EC2 スポットコンピューティング環境の EC2 スポットフリートリクエスト AWS Batch を作成および管理します。
+ `ecs` - AWS Batch ジョブ実行用の Amazon ECS クラスター、タスク定義、タスクの作成と管理を許可します。
+ `eks` - AWS Batch が検証用の Amazon EKS クラスターリソースを記述できるようにします。
+ `iam` - 所有者が提供するロールを検証して Amazon EC2、Amazon EC2 Auto Scaling、Amazon ECS に渡すことを AWS Batch に許可します。
+ `logs` – AWS Batch ジョブのロググループとログストリームの作成と管理を に許可します AWS Batch 。

ユーザー、グループ、またはロールにサービスリンクロールの作成、編集、または削除を許可するには、アクセス許可を設定する必要があります。詳細については*IAM ユーザーガイド* の「[サービスにリンクされた役割のアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## のサービスにリンクされたロールの作成 AWS Batch
<a name="create-service-linked-role-batch-general"></a>

サービスリンクロールを手動で作成する必要はありません。 AWS マネジメントコンソール、、 AWS CLIまたは AWS API でコンピューティング環境を作成すると、 AWS Batch によってサービスにリンクされたロールが作成されます。

**重要**  
このサービスリンクロールはこのロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。 AWS Batch サービスにリンクされたロールのサポートを開始した 2021 年 3 月 10 日より前にサービスを使用していた場合、 はアカウントに AWSServiceRoleForBatch ロール AWS Batch を作成しました。詳細については、[「新しいロールが AWS アカウント](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)」を参照してください。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は同じ方法でアカウントにロールを再作成できます。コンピューティング環境を作成すると、 はサービスにリンクされたロールを再度 AWS Batch 作成します。

## のサービスにリンクされたロールの編集 AWS Batch
<a name="edit-service-linked-role-batch-general"></a>

AWS Batch では、AWSServiceRoleForBatch サービスにリンクされたロールを編集することはできません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

**IAM エンティティが AWSServiceRoleForBatch のサービスにリンクされたロールの説明を編集できるようにするには**

以下のステートメントをアクセス許可ポリシーに追加します。IAM エンティティが サービスにリンクされたロールの説明を編集することを許可します。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:UpdateRoleDescription"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch",
    "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}}
}
```

## のサービスにリンクされたロールの削除 AWS Batch
<a name="delete-service-linked-role-batch-general"></a>

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。ただし、手動で削除する前に、サービスにリンクされたロールをクリーンアップする必要があります。

**IAM エンティティが AWSServiceRoleForBatch のサービスにリンクされたロールを作成するには**

以下のステートメントをアクセス許可ポリシーに追加します。IAM エンティティが サービスにリンクされたロールを削除することを許可します。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch",
    "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}}
}
```

### サービスリンクロールのクリーンアップ
<a name="service-linked-role-review-before-delete-batch-general"></a>

IAM を使用してサービスにリンクされたロールを削除する前に、まずロールにアクティブなセッションがないことを確認し、1 つのパーティション内のすべての AWS リージョンでロールを使用するすべての AWS Batch コンピューティング環境を削除する必要があります。

**サービスにリンクされたロールがアクティブなセッションを持っているかどうかを確認するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで、**ロール** を選択し、(チェックボックスではなく) AWSServiceRoleForBatch の名前を選択します。

1. **Summary]** (概要) ページで **Access Advisor]** (アクセスアドバイザー) を選択し、サービスにリンクされたロールの最新のアクティビティを確認します。
**注記**  
 AWS Batch が AWSServiceRoleForBatch ロールを使用しているかどうかわからない場合は、ロールを削除できます。サービスでロールが使用されている場合、ロールは削除されません。ロールが使用されているリージョンが表示されます。ロールが使用されている場合は、ロールを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

**AWSServiceRoleForBatch サービスにリンクされたロールによって使用されている AWS Batch リソースを削除するには**

AWSServiceRoleForBatch ロールを削除する前に、すべての AWS リージョンで AWSServiceRoleForBatch ロールを使用するすべての AWS Batch コンピューティング環境を削除する必要があります。

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で AWS Batch コンソールを開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインで、**Compute environments]** (コンピューティング環境) を選択します。

1. コンピューティング環境を選択します。

1. **Disable]** (無効化) を選択します。**State]** (状態) が **DISABLED]** (無効) になるまで待ちます。

1. コンピューティング環境を選択します。

1. **Delete]** (削除) を選択します。**Delete compute environment]** (コンピューティング環境の削除) を選択し、削除したいコンピューティング環境を確認します。

1. すべてのリージョンでサービスにリンクされたロールを使用する、すべてのコンピューティング環境について、手順 1 ～ 7 を繰り返します。

### IAM でのサービスにリンクされたロールの削除 (コンソール)
<a name="delete-service-linked-role-iam-console"></a>

IAM コンソールを使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで **Roles]** (ロール) を選択します。AWSServiceRoleForBatch の横のチェックボックス (名前または行自体ではなく) を選択します。

1. **Delete role]** (ロールの削除) を選択します。

1. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。これは、選択したそれぞれのロールの AWS のサービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。先に進む場合は、**[Yes, Delete]** (はい、削除する) を選択し、削除するサービスにリンクされたロールを送信します。

1. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況をモニタリングします。IAM サービスにリンクされたロールの削除は非同期であるため、削除するロールを送信すると、削除タスクは成功または失敗する可能性があります。
   + タスクが成功した場合は、ロールがリストから削除され、成功の通知がページの上部に表示されます。
   + タスクが失敗した場合は、通知から **View details]** (詳細を表示) または **View Resources]** (リソースを表示) を選択して、削除が失敗した理由を知ることができます。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。
   + タスクが失敗し、通知にリソースのリストが含まれていない場合、サービスはその情報を返さない可能性があります。サービスのリソースをクリーンアップする方法の詳細については、[IAM と連携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

### IAM でのサービスにリンクされたロールの削除 (AWS CLI)
<a name="delete-service-linked-role-iam-cli"></a>

から IAM コマンドを使用して AWS Command Line Interface 、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (CLI)**

1. サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `deletion-task-id` を取得して、削除タスクのステータスを確認する必要があります。サービスにリンクされたロールの削除リクエストを送信するには、次のコマンドを入力します：

   ```
   $ aws iam delete-service-linked-role --role-name AWSServiceRoleForBatch
   ```

1. 削除タスクのステータスを確認するには、次のコマンドを入力します：

   ```
   $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id
   ```

   削除タスクのステータスは、`NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED`、または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返す場合もあれば、一部を返す場合もあります。または、リソースが報告されないこともあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、[IAM と連携するAWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

### サービスにリンクされた IAM (AWS API) でのロールの削除
<a name="delete-service-linked-role-iam-api"></a>

IAM API を使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (API)**

1. サービスにリンクされたロールの削除リクエストを送信するには、[DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) を呼び出します。リクエストで、AWSServiceRoleForBatch のロール名を指定します。

   サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `DeletionTaskId` を取得して、削除タスクのステータスを確認する必要があります。

1. 削除タスクのステータスを確認するには、[GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) を呼び出します。リクエストで `DeletionTaskId` を指定します。

   削除タスクのステータスは、`NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED`、または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、[IAM と連携するAWS のサービス サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

## AWS Batch サービスにリンクされたロールでサポートされているリージョン
<a name="slr-regions-batch-general"></a>

AWS Batch は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。詳細については、[AWS Batch エンドポイント](https://docs.aws.amazon.com/general/latest/gr/batch.html#batch_region)を参照してください。

# SageMaker AI AWS Batch での のロールの使用
<a name="using-service-linked-roles-batch-sagemaker"></a>

AWS Batch は AWS Identity and Access Management (IAM) [サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスにリンクされたロールは、直接リンクされた一意のタイプの IAM ロールです AWS Batch。サービスにリンクされたロールは によって事前定義 AWS Batch されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がなくなるため、 の設定 AWS Batch が簡単になります。 は、サービスにリンクされたロールのアクセス許可 AWS Batch を定義します。特に定義されている場合を除き、 のみがそのロールを引き受け AWS Batch ることができます。定義される許可は信頼ポリシーと許可ポリシーに含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールを削除するには、最初に関連リソースを削除する必要があります。これにより、 AWS Batch リソースへのアクセス許可が誤って削除されないため、リソースが保護されます。

サービスにリンクされたロールをサポートする他のサービスの詳細については、[AWS 「IAM と連携するサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照し、「サービス**にリンクされたロール**」列で**「はい**」を持つサービスを探します。サービスリンクロールに関するドキュメントをサービスで表示するには、リンクで **[はい]** を選択します。

## のサービスにリンクされたロールのアクセス許可 AWS Batch
<a name="service-linked-role-permissions-batch-sagemaker"></a>

AWS Batch は、**AWSServiceRoleForAWSBatchWithSagemaker** という名前のサービスにリンクされたロールを使用します。 がユーザーに代わって SageMaker トレーニングジョブをキューイングおよび管理 AWS Batch できるようにします。

サービスリンクロール [AWSServiceRoleForAWSBatchWithSagemaker] は、次のサービスを信頼してそのロールを引き受けます。
+ `sagemaker-queuing.batch.amazonaws.com`

ロールのアクセス許可ポリシーにより AWS Batch 、 は指定されたリソースに対して次のアクションを実行できます。
+ `sagemaker` – AWS Batch が SageMaker トレーニングジョブ、変換ジョブ、およびその他の SageMaker AI リソースを管理できるようにします。
+ `iam:PassRole` – ジョブ実行のために AWS Batch がカスタマー定義の実行ロールを SageMaker AI に渡すことを許可します。リソース制約により、SageMaker AI サービスにロールを渡すことができます。

ユーザー、グループ、またはロールにサービスリンクロールの作成、編集、または削除を許可するには、アクセス許可を設定する必要があります。詳細については*IAM ユーザーガイド* の「[サービスにリンクされた役割のアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## のサービスにリンクされたロールの作成 AWS Batch
<a name="create-service-linked-role-batch-sagemaker"></a>

サービスリンクロールを手動で作成する必要はありません。 AWS マネジメントコンソール、、 AWS CLIまたは AWS API `CreateServiceEnvironment`で を使用してサービス環境を作成すると、 AWS Batch によってサービスにリンクされたロールが作成されます。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は同じ方法でアカウントにロールを再作成できます。を使用してサービス環境を作成すると`CreateServiceEnvironment`、 はサービスにリンクされたロールを再度 AWS Batch 作成します。

ポリシーの JSON を表示するには、「[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)」の「[AWSBatchServiceRolePolicyForSageMaker](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSBatchServiceRolePolicyForSageMaker.html)」を参照してください。

## のサービスにリンクされたロールの編集 AWS Batch
<a name="edit-service-linked-role-batch-sagemaker"></a>

AWS Batch では、AWSServiceRoleForAWSBatchWithSagemaker サービスにリンクされたロールを編集することはできません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## のサービスにリンクされたロールの削除 AWS Batch
<a name="delete-service-linked-role-batch-sagemaker"></a>

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。ただし、手動で削除する前に、サービスにリンクされたロールをクリーンアップする必要があります。

### サービスリンク役割のクリーンアップ
<a name="service-linked-role-review-before-delete-batch-sagemaker"></a>

IAM を使用してサービスにリンクされたロールを削除する前に、まずロールにアクティブなセッションがないことを確認し、1 つのパーティション内のすべての AWS リージョンでロールを使用するすべてのサービス環境を削除する必要があります。

**サービスにリンクされたロールがアクティブなセッションを持っているかどうかを確認するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで、**[ロール]** を選択し、(チェックボックスではなく) [AWSServiceRoleForAWSBatchWithSagemaker] の名前を選択します。

1. **[Summary]** (概要) ページで **[Access Advisor]** (アクセスアドバイザー) を選択し、サービスにリンクされたロールの最新のアクティビティを確認します。
**注記**  
 AWS Batch が AWSServiceRoleForAWSBatchWithSagemaker ロールを使用しているかどうかわからない場合は、ロールを削除できます。サービスでロールが使用されている場合、ロールは削除されません。ロールが使用されているリージョンが表示されます。ロールが使用されている場合は、ロールを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

**AWSServiceRoleForAWSBatchWithSagemaker サービスにリンクされたロールによって使用されている AWS Batch リソースを削除するには**

AWSServiceRoleForAWSBatchWithSagemaker ロールを削除する前に、すべての AWS リージョンで AWSServiceRoleForAWSBatchWithSagemaker ロールを使用するすべてのサービス環境を削除する必要があります。

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で AWS Batch コンソールを開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインで、**[環境]**、**[サービス環境]** の順に選択します。

1. すべての**サービス環境**を選択します。

1. **[Disable]** (無効化) を選択します。**[State]** (状態) が **[DISABLED]** (無効) になるまで待ちます。

1. サービス環境を選択します。

1. **[削除]** を選択します。**[サービス環境の削除]** を選択し、削除したいサービス環境を確認します。

1. すべてのリージョンでサービスにリンクされたロールを使用するすべてのサービス環境について、手順 1～7 を繰り返します。

### IAM でのサービスにリンクされたロールの削除 (コンソール)
<a name="delete-service-linked-role-iam-console-batch-sagemaker"></a>

IAM コンソールを使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで **[ロール]** を選択します。[AWSServiceRoleForAWSBatchWithSagemaker] の横のチェックボックス (名前または行自体ではなく) を選択します。

1. **[Delete role]** (ロールの削除) を選択します。

1. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。これは、選択したそれぞれのロールの AWS のサービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。先に進む場合は、**[Yes, Delete]** (はい、削除する) を選択し、削除するサービスにリンクされたロールを送信します。

1. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況をモニタリングします。IAM サービスにリンクされたロールの削除は非同期であるため、削除するロールを送信すると、削除タスクは成功または失敗する可能性があります。
   + タスクが成功した場合は、ロールがリストから削除され、成功の通知がページの上部に表示されます。
   + タスクが失敗した場合は、通知から **View details]** (詳細を表示) または **View Resources]** (リソースを表示) を選択して、削除が失敗した理由を知ることができます。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。
   + タスクが失敗し、通知にリソースのリストが含まれていない場合、サービスはその情報を返さない可能性があります。サービスのリソースをクリーンアップする方法の詳細については、[IAM と連携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

### IAM でのサービスにリンクされたロールの削除 (AWS CLI)
<a name="delete-service-linked-role-iam-cli-batch-sagemaker"></a>

から IAM コマンドを使用して AWS Command Line Interface 、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (CLI)**

1. サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `deletion-task-id` を取得して、削除タスクのステータスを確認する必要があります。サービスにリンクされたロールの削除リクエストを送信するには、次のコマンドを入力します：

   ```
   $ aws iam delete-service-linked-role --role-name AWSServiceRoleForAWSBatchWithSagemaker
   ```

1. 削除タスクのステータスを確認するには、次のコマンドを入力します：

   ```
   $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id
   ```

   削除タスクのステータスは、`NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED`、または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返す場合もあれば、一部を返す場合もあります。または、リソースが報告されないこともあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、[IAM と連携するAWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

### サービスにリンクされた IAM (AWS API) でのロールの削除
<a name="delete-service-linked-role-iam-api-batch-sagemaker"></a>

IAM API を使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (API)**

1. サービスにリンクされたロールの削除リクエストを送信するには、[DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) を呼び出します。リクエストで、[AWSServiceRoleForAWSBatchWithSagemaker] のロール名を指定します。

   サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `DeletionTaskId` を取得して、削除タスクのステータスを確認する必要があります。

1. 削除タスクのステータスを確認するには、[GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) を呼び出します。リクエストで `DeletionTaskId` を指定します。

   削除タスクのステータスは、`NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED`、または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次に[リソースをクリーンアップ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)してから、削除リクエストをもう一度送信できます。
**注記**  
サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。例えば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、[IAM と連携するAWS のサービス サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照してください。使用しているサービスをテーブルで見つけ、**はい**リンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

## AWS Batch サービスにリンクされたロールでサポートされているリージョン
<a name="slr-regions-batch-sagemaker"></a>

AWS Batch は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。詳細については、[AWS Batch エンドポイント](https://docs.aws.amazon.com/general/latest/gr/batch.html#batch_region)を参照してください。

# Amazon ECS インスタンスロール
<a name="instance_IAM_role"></a>

AWS Batch コンピューティング環境には Amazon ECS コンテナインスタンスが入力されます。Amazon ECS コンテナエージェントがローカルで実行されます。Amazon ECS コンテナエージェントは、ユーザーに代わってさまざまな AWS API オペレーションを呼び出します。そのため、エージェントを実行するコンテナインスタンスには、エージェントがユーザーに属していることをこれらのサービスに伝える IAM ポリシーとロールが必要です。コンテナインスタンスの起動時に使用するIAMロールとインスタンスプロファイルを作成する必要があります。それ以外の場合、コンピューティング環境を作成してコンテナインスタンスを起動することはできません。この要件が適用されるコンテナインスタンスの起動には、Amazon が提供する、Amazon ECS に最適化された AMI が使用されている場合と使用されていない場合があります。詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[Amazon ECS インスタンスロール](#instance_IAM_role)」を参照してください。

**Topics**
+ [アカウントの Amazon ECS インスタンスロールを確認する](batch-check-ecsinstancerole.md)

# アカウントの Amazon ECS インスタンスロールを確認する
<a name="batch-check-ecsinstancerole"></a>

コンソールの初回実行時には、Amazon ECS インスタンスのロールおよびインスタンスプロファイルが自動的に作成されます。ただし、次の手順を使用して、アカウントに既に Amazon ECS インスタンスロールおよびインスタンスプロファイルが存在するか確認することができます。以下の手順では、マネージド IAM ポリシーをアタッチする方法についても説明します。<a name="procedure_check_instance_role"></a>

**チュートリアル: IAM コンソールで `ecsInstanceRole` を確認する**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで **[ロール]** を選択します。

1. ロールのリストで `ecsInstanceRole` を検索します。ロールが存在しない場合は、以下の手順でロールを作成してください。

   1. **ロールの作成]** を選択します。

   1. **信頼できるエンティティタイプ** で、**AWS のサービス** を選択します。

   1. **一般的なユースケース** で **EC2** を選択します。

   1. **次へ** をクリックします。

   1. **アクセス権限ポリシー** については、**AmazonEC2ContainerServiceforEC2Role** を検索してください。

   1. **AmazonEC2ContainerServiceforEC2Role** の横にあるチェックボックスを選択し、**次へ** を選択します。

   1. **ロール名** には、`ecsInstanceRole` を入力し、そして**ロールの作成]** を選択します。
**注記**  
を使用して Amazon EC2 のロール AWS マネジメントコンソール を作成する場合、コンソールはロールと同じ名前のインスタンスプロファイルを作成します。

または、 AWS CLI を使用して IAM `ecsInstanceRole` ロールを作成することもできます。次の例では、信頼ポリシーと AWS マネージドポリシーを使用して IAM ロールを作成します。<a name="create-iam-role-cli"></a>

**チュートリアル: IAM ロールおよびインスタンスプロファイルを作成する (AWS CLI)**

1. 以下の信頼ポリシーを作成し、`ecsInstanceRole-role-trust-policy.json` という名前のテキストファイルに保存する。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": { "Service": "ec2.amazonaws.com"},
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. `ecsInstanceRole`のロールを作成するには、[ロール作成](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)コマンドを使用します。信頼ポリシーファイルの場所を `assume-role-policy-document` パラメータに指定します。

   ```
   $ aws iam create-role \
       --role-name ecsInstanceRole \
       --assume-role-policy-document file://ecsInstanceRole-role-trust-policy.json
   ```

1. [[インスタンスプロファイルの作成]](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html) コマンドを使用して、`ecsInstanceRole` という名前のインスタンスプロファイルを作成します。
**注記**  
ロールとインスタンスプロファイルは、 AWS CLI および AWS API で個別のアクションとして作成する必要があります。

   ```
   $ aws iam create-instance-profile --instance-profile-name ecsInstanceRole
   ```

   以下に、応答の例を示します。

   ```
   {
       "InstanceProfile": {
           "Path": "/",
           "InstanceProfileName": "ecsInstanceRole",
           "InstanceProfileId": "AIPAT46P5RDITREXAMPLE",
           "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
           "CreateDate": "2022-06-30T23:53:34.093Z",
           "Roles": [],    }
   }
   ```

1. [[add-role-to-instance-profile]](https://docs.aws.amazon.com/cli/latest/reference/iam/add-role-to-instance-profile.html) コマンドを使用して、`ecsInstanceRole` のロールを `ecsInstanceRole` インスタンスプロファイルに追加します。

   ```
   aws iam add-role-to-instance-profile \
       --role-name ecsInstanceRole --instance-profile-name ecsInstanceRole
   ```

1. attach[attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) コマンドを使用して、`AmazonEC2ContainerServiceforEC2Role` AWS 管理ポリシーを`ecsInstanceRole`ロールにアタッチします。

   ```
   $ aws iam attach-role-policy \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \
       --role-name ecsInstanceRole
   ```

# Amazon EC2 スポットフリートロール
<a name="spot_fleet_IAM_role"></a>

Amazon EC2 スポットフリートインスタンスを使用するマネージド型のコンピューティング環境を作成する場合は、`AmazonEC2SpotFleetTaggingRole` ポリシーを作成しなければなりません。このポリシーは、ユーザーに代わりインスタンスの起動、タグ付けおよび終了を行うためのスポットフリート許可を付与します。スポットフリートのリクエストでロールを指定します。また、Amazon EC2 スポットおよびスポットフリートにサービスにリンクされたロール **AWSServiceRoleForEC2Spot]** および **AWSServiceRoleForEC2SpotFleet]** がある必要があります。次の手順に従って、これらすべてのロールを作成します。詳細については、*IAM ユーザーガイド*の[「サービスにリンクされたロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」および[AWS 「 サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

**Topics**
+ [で Amazon EC2 スポットフリートロールを作成する AWS マネジメントコンソール](spot-fleet-roles-console.md)
+ [を使用して Amazon EC2 スポットフリートロールを作成する AWS CLI](spot-fleet-roles-cli.md)

# で Amazon EC2 スポットフリートロールを作成する AWS マネジメントコンソール
<a name="spot-fleet-roles-console"></a>

**Amazon EC2 スポットフリートの `AmazonEC2SpotFleetTaggingRole` IAM サービスにリンクされたロールを作成するには**

1. IAM コンソール（[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. **アクセス管理]** のために、**ロール** を選択します。

1. **ロール]** には、**ロールの作成** を選択します。

1. **[信頼されるエンティティを選択］**（**信頼されるエンティティタイプ**にある）から、**[AWS のサービス]** を選択します。

1. **その他のユースケースでは AWS のサービス**、**EC2** を選択し、**EC2 - スポットフリートのタグ付け**を選択します。

1. [**次へ**] を選択します。

1. **[ポリシー名]** の **[権限ポリシー]** から、`AmazonEC2SpotFleetTaggingRole` を確認します 。

1. **次へ** を選択します。

1. **[名前、確認および作成]**:

   1. ロールを識別するために、**名前タグ** に名前を入力します。

   1. **[説明]** には、ポリシーの簡単な説明を入力します。

   1. (オプション) **[ステップ 1: 信頼できるエンティティの選択]** では、**[編集]** を選択して、コードを変更します。

   1. (オプション) **[ステップ 2: 権限の追加]** では、**[編集]** を選択して、コードを変更します。

   1. (オプション) **[タグを追加]** で **[タグを追加]** を選択し、リソースにタグを追加します。

   1. **ロールの作成]** を選択します。

**注記**  
これまでは、Amazon EC2 スポットフリートロールに対し 2つの管理ポリシーがありました。  
**AmazonEC2SpotFleetRole**: これは、スポットフリートロール用のオリジナルの管理ポリシーです。ただし、 での使用は推奨されなくなりました AWS Batch。このポリシーは、`AWSServiceRoleForBatch` のサービスにリンクされたロールを使用するために必要なコンピューティング環境でのスポットインスタンスのタグ付けをサポートしていません。以前に、このポリシーを使用してスポットフリートロールを作成した場合は、新しい推奨ポリシーをそのロールに適用してください。詳細については、[作成時にタグが付けられていないスポットインスタンス](spot-instance-no-tag.md)を参照してください。
**AmazonEC2SpotFleetTaggingRole**: このロールでは、Amazon EC2 スポットインスタンスにタグを付けるために必要なすべてのアクセス権限が提供されます。このロールを使用して、 AWS Batch コンピューティング環境でスポットインスタンスのタグ付けを許可します。

# を使用して Amazon EC2 スポットフリートロールを作成する AWS CLI
<a name="spot-fleet-roles-cli"></a>

**スポットフリートのコンピューティング環境の **AmazonEC2SpotFleetTaggingRole** IAM ロールを作成するには**

1.  AWS CLIを使用して次のコマンドを実行します。

   ```
   $ aws iam create-role --role-name AmazonEC2SpotFleetTaggingRole \
        --assume-role-policy-document '{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "spotfleet.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }'
   ```

1. **AmazonEC2SpotFleetTaggingRole** マネージド IAM ポリシーを **AmazonEC2SpotFleetTaggingRole** ロールにアタッチするには、以下のコマンドを AWS CLIで実行します。

   ```
   $ aws iam attach-role-policy \
     --policy-arn \
       arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole \
     --role-name \
       AmazonEC2SpotFleetTaggingRole
   ```

**Amazon EC2 スポットの `AWSServiceRoleForEC2Spot` IAMのサービスにリンクされたロールを作成するには**
**注記**  
`AWSServiceRoleForEC2Spot` IAM サービスにリンクされたロールがすでに存在する場合は、次のようなエラーメッセージが表示されます。  

```
An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation:
Service role name AWSServiceRoleForEC2Spot has been taken in this account, please try a different suffix.
```
+  AWS CLIを使用して次のコマンドを実行します。

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

**Amazon EC2 スポットフリートの `AWSServiceRoleForEC2SpotFleet` IAM サービスにリンクされたロールを作成するには**
**注記**  
`AWSServiceRoleForEC2SpotFleet` IAM サービスにリンクされたロールがすでに存在する場合は、次のようなエラーメッセージが表示されます。  

```
An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation:
Service role name AWSServiceRoleForEC2SpotFleet has been taken in this account, please try a different suffix.
```
+  AWS CLIを使用して次のコマンドを実行します。

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

# EventBridge IAM ロール
<a name="CWE_IAM_role"></a>

Amazon EventBridge は、 AWS リソースの変更を記述するシステムイベントのほぼリアルタイムのストリームを提供します。 AWS Batch ジョブは EventBridge ターゲットとして使用できます。すぐに設定できる簡単なルールを使用して、それらのルールに対応して、イベントを一致させ AWS Batch ジョブを送信できます。EventBridge ルールとターゲットを使用して AWS Batch ジョブを送信する前に、EventBridge にはユーザーに代わって AWS Batch ジョブを実行するアクセス許可が必要です。

**注記**  
 AWS Batch キューをターゲットとして指定するルールを EventBridge コンソールで作成すると、このロールを作成できます。チュートリアル例については、[EventBridge ターゲットとしての AWS Batch ジョブ](batch-cwe-target.md)を参照してください。IAM コンソールを使って、ユーザーはEventBridge ロールをマニュアルで作成できます。詳細については、IAM ユーザーガイドの[IAM ユーザーガイドの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) を参照してください。

EventBridge IAMsのIAM ロールの信頼関係では、`events.amazonaws.com` サービスプリンシパルでロールを継承することを許可する必要があります。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

EventBridge IAM ロールにアタッチされているポリシーが、リソースへの `batch:SubmitJob` 許可を与えていることを確認してください。次の例では、 AWS Batch が、`AWSBatchServiceEventTargetRole` の管理ポリシーを提供してこれらのアクセス権限を付与しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "batch:SubmitJob"
       ],
      "Resource": "*"
    }
  ]
}
```

------