

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

# のセキュリティ AWS Batch
<a name="security"></a>

のクラウドセキュリティが最優先事項 AWS です。お客様は AWS 、最もセキュリティの影響を受けやすい組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャからメリットを得られます。

セキュリティは、 AWS とお客様の間の責任共有です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)ではこれをクラウド*の*セキュリティおよびクラウド*内*のセキュリティと説明しています。
+ **クラウドのセキュリティ** – AWS は、 で AWS サービスを実行するインフラストラクチャを保護する責任を担います AWS クラウド。 は、お客様が安全に使用できるサービス AWS も提供します。サードパーティーの監査者は、[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)コンプライアンスプログラムの一環として、当社のセキュリティの有効性を定期的にテストおよび検証。が適用されるコンプライアンスプログラムの詳細については AWS Batch、「コンプライアンスプログラム[AWS による対象範囲内のサービスコンプライアンスプログラム](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。
+ **クラウド内のセキュリティ** – お客様の責任は使用する AWS のサービスによって決まります。また、お客様は、お客様のデータの機密性、企業の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

このドキュメントは、 を使用する際の責任共有モデルの適用方法を理解するのに役立ちます AWS Batch。以下のトピックでは、セキュリティおよびコンプライアンスの目的を達成する AWS Batch ように を設定する方法について説明します。また、 AWS Batch リソースのモニタリングや保護に役立つ他の AWS サービスの使用方法についても説明します。

**Topics**
+ [の Identity and Access Management AWS Batch](security-iam.md)
+ [AWS Batch IAM ポリシー、ロール、アクセス許可](IAM_policies.md)
+ [AWS Batch IAM 実行ロール](execution-IAM-role.md)
+ [仮想プライベートクラウドを作成する](create-public-private-vpc.md)
+ [インターフェイスエンドポイントを使用して にアクセスする AWS Batch](vpc-interface-endpoints.md)
+ [のコンプライアンス検証 AWS Batch](compliance.md)
+ [のインフラストラクチャセキュリティ AWS Batch](infrastructure-security.md)
+ [サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md)
+ [を使用した AWS Batch API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)
+ [IAM AWS Batch のトラブルシューティング](security_iam_troubleshoot.md)

# の Identity and Access Management AWS Batch
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を*認証* (サインイン) し、誰に AWS Batch リソースの使用*を許可する* (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [オーディエンス](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [が IAM と AWS Batch 連携する方法](security_iam_service-with-iam.md)
+ [のアイデンティティベースのポリシーの例 AWS Batch](security_iam_id-based-policy-examples.md)
+ [AWS の 管理ポリシー AWS Batch](security-iam-awsmanpol.md)

## オーディエンス
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
+ **サービスユーザー** - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「[IAM AWS Batch のトラブルシューティング](security_iam_troubleshoot.md)」を参照)。
+ **サービス管理者** - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「[が IAM と AWS Batch 連携する方法](security_iam_service-with-iam.md)」を参照)
+ **IAM 管理者** - アクセスを管理するためのポリシーを作成します (「[のアイデンティティベースのポリシーの例 AWS Batch](security_iam_id-based-policy-examples.md)」を参照)

## アイデンティティを使用した認証
<a name="security_iam_authentication"></a>

認証は、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

 AWS IAM アイデンティティセンター (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*IAM ユーザーガイド*」の「[API リクエストに対するAWS 署名バージョン 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。

### AWS アカウント ルートユーザー
<a name="security_iam_authentication-rootuser"></a>

 を作成するときは AWS アカウント、まず、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *root ユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### フェデレーテッドアイデンティティ
<a name="security_iam_authentication-federated"></a>

ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

*フェデレーティッド ID* は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID Directory Service ソースの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーテッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

アクセスを一元管理する場合は、 AWS IAM アイデンティティセンターをお勧めします。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM アイデンティティセンターとは](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。

### IAM ユーザーとグループ
<a name="security_iam_authentication-iamuser"></a>

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスする必要がある AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーに関するユースケース](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)」を参照してください。

### IAM ロール
<a name="security_iam_authentication-iamrole"></a>

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## ポリシーを使用したアクセスの管理
<a name="security_iam_access-manage"></a>

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、ID またはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、「*IAM ユーザーガイド*」の「[JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)」を参照してください。

管理者は、ポリシーを使用して、どの**プリンシパル**がどの**リソース**に対して、どのような**条件**で**アクション**を実行できるかを定義することで、誰が何にアクセスできるかを指定します。

デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。

### アイデンティティベースのポリシー
<a name="security_iam_access-manage-id-based-policies"></a>

アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、またはロール) にアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティがどのリソースに対してどのような条件下でどのようなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、*IAM ユーザーガイド* の [カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) を参照してください。

アイデンティティベースのポリシーは、*インラインポリシー* (単一の ID に直接埋め込む) または*管理ポリシー* (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシーのいずれかを選択する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)」を参照してください。

### リソースベースのポリシー
<a name="security_iam_access-manage-resource-based-policies"></a>

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。例としては、IAM *ロール信頼ポリシー*や Amazon S3 *バケットポリシー*などがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーでは、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWS マネージドポリシーを使用できません。

### その他のポリシータイプ
<a name="security_iam_access-manage-other-policies"></a>

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の上限を設定できる追加のポリシータイプをサポートしています。
+ **アクセス許可の境界** – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「*IAM ユーザーガイド*」の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** - AWS Organizations内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。
+ **リソースコントロールポリシー (RCP)** – は、アカウント内のリソースで利用できる最大数のアクセス許可を定義します。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)」を参照してください。
+ **セッションポリシー** – ロールまたはフェデレーションユーザーの一時セッションを作成する際にパラメータとして渡される高度なポリシーです。詳細については、「*IAM ユーザーガイド*」の「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

### 複数のポリシータイプ
<a name="security_iam_access-manage-multiple-policies"></a>

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうか AWS を決定する方法については、*「IAM ユーザーガイド*」の[「ポリシー評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」を参照してください。

# が IAM と AWS Batch 連携する方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して へのアクセスを管理する前に AWS Batch、使用できる IAM 機能を確認してください AWS Batch。


**で使用できる IAM 機能 AWS Batch**  

| IAM 機能 | AWS Batch サポート | 
| --- | --- | 
|  [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies)  |   あり  | 
|  リソースベースのポリシー  |   なし   | 
|  [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions)  |   あり  | 
|  [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources)  |   あり  | 
|  [ポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   あり  | 
|  ACL  |   なし   | 
|  [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags)  |   あり  | 
|  [一時的な認証情報](#security_iam_service-with-iam-roles-tempcreds)  |   あり  | 
|  [プリンシパルアクセス権限](#security_iam_service-with-iam-principal-permissions)  |   あり  | 
|  [サービスロール](#security_iam_service-with-iam-roles-service)  |   あり  | 
|  [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked)  |   はい  | 

 AWS Batch およびその他の AWS のサービスがほとんどの IAM 機能とどのように連携するかの概要については、「IAM *ユーザーガイド*」の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## のアイデンティティベースのポリシー AWS Batch
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

### のアイデンティティベースのポリシーの例 AWS Batch
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

 AWS Batch アイデンティティベースのポリシーの例を表示するには、「」を参照してください[のアイデンティティベースのポリシーの例 AWS Batch](security_iam_id-based-policy-examples.md)。

## のポリシーアクション AWS Batch
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

 AWS Batch アクションのリストを確認するには、*「サービス認可リファレンス*」の[「 で定義されるアクション AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-actions-as-permissions)」を参照してください。

のポリシーアクションは、アクションの前に次のプレフィックス AWS Batch を使用します。

```
batch
```

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

```
"Action": [
      "batch:action1",
      "batch:action2"
         ]
```

ワイルドカード (\$1) を使用して複数アクションを指定できます。例えば、`Describe` という単語で始まるすべてのアクションを指定するには次のアクションを含めます。

```
"Action": "batch:Describe*"
```

 AWS Batch アイデンティティベースのポリシーの例を表示するには、「」を参照してください[のアイデンティティベースのポリシーの例 AWS Batch](security_iam_id-based-policy-examples.md)。

## のポリシーリソース AWS Batch
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\$1) を使用します。

```
"Resource": "*"
```

 AWS Batch リソースタイプとその ARNs[「 で定義されるリソース AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-resources-for-iam-policies)」を参照してください。 **どのアクションで各リソースの ARN を指定できるかについては、「[AWS Batchで定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-actions-as-permissions)」を参照してください。

## のポリシー条件キー AWS Batch
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

 AWS Batch 条件キーのリストを確認するには、*「サービス認可リファレンス*」の[「 の条件キー AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-policy-keys)」を参照してください。条件キーを使用できるアクションとリソースについては、[「 で定義されるアクション AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-actions-as-permissions)」を参照してください。

## を使用した属性ベースのアクセスコントロール (ABAC) AWS Batch
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** あり

属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可する ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

## で一時的な認証情報を使用する AWS Batch
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

一時的な認証情報は、 AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[AWS のサービス と IAM との連携](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## のクロスサービスプリンシパルのアクセス許可 AWS Batch
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

 転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。

## のサービスロール AWS Batch
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**警告**  
サービスロールのアクセス許可を変更すると、 AWS Batch 機能が破損する可能性があります。 AWS Batch が指示する場合以外は、サービスロールを編集しないでください。

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

**サービスリンクロールのサポート:** あり

 サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、「[IAM と提携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。表の「**サービスリンクロール**」列に `Yes` と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、**[はい]** リンクを選択します。

# のアイデンティティベースのポリシーの例 AWS Batch
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、 ユーザーおよびロールには、 AWS Batch リソースを作成または変更する権限はありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらのサンプルの JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、「*IAM ユーザーガイド*」の「[IAM ポリシーを作成する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)」を参照してください。

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

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [AWS Batch コンソールの使用](#security_iam_id-based-policy-examples-console)
+ [自分の権限の表示をユーザーに許可する](#security_iam_id-based-policy-examples-view-own-permissions)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、誰かがアカウント内の AWS Batch リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## AWS Batch コンソールの使用
<a name="security_iam_id-based-policy-examples-console"></a>

 AWS Batch コンソールにアクセスするには、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、 の AWS Batch リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ユーザーとロールが AWS Batch 引き続きコンソールを使用できるようにするには、エンティティに AWS Batch `ConsoleAccess`または `ReadOnly` AWS 管理ポリシーもアタッチします。詳細については、「*IAM ユーザーガイド*」の「[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。

## 自分の権限の表示をユーザーに許可する
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS の 管理ポリシー AWS Batch
<a name="security-iam-awsmanpol"></a>







 AWS 管理ポリシーを使用して、チームおよびプロビジョニングされた AWS リソースの ID アクセス管理を簡素化できます。 AWS 管理ポリシーは、さまざまな一般的なユースケースをカバーし、アカウントでデフォルトで使用でき AWS 、ユーザーに代わって維持および更新されます。 AWS 管理ポリシーのアクセス許可は変更できません。より柔軟性が必要な場合は、IAM カスタマー管理ポリシーを作成することもできます。このようにして、チームのプロビジョニングされたリソースに、必要な権限のみを付与できます。

 AWS 管理ポリシーの詳細については、*IAM ユーザーガイド*の「 [AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

AWS サービスは、ユーザーに代わって AWS 管理ポリシーを維持および更新します。定期的に、 AWS サービスは AWS マネージドポリシーに追加のアクセス許可を追加します。 AWS マネージドポリシーは、新機能の起動またはオペレーションが利用可能になったときに更新されます。この更新は、ポリシーが添付されているすべてのアイデンティティ (ユーザー、グループ、ロール) に自動的に影響します。ただし、権限を削除したり、既存の権限を破棄することはありません。

さらに、 は、複数のサービスにまたがるジョブ関数の マネージドポリシー AWS をサポートしています。たとえば、 `ReadOnlyAccess` AWS マネージドポリシーは、すべての AWS サービスとリソースへの読み取り専用アクセスを提供します。サービスが新機能を起動すると、 は新しいオペレーションとリソースの読み取り専用アクセス許可 AWS を追加します。ジョブ機能のポリシーの一覧および詳細については、「*IAM ユーザーガイド*」の「[AWS のジョブ機能のマネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)」を参照してください。









## AWS マネージドポリシー: **BatchServiceRolePolicy**
<a name="security-iam-awsmanpol-BatchServiceRolePolicy"></a>

**BatchServiceRolePolicy** 管理 IAM ポリシーは、[`AWSServiceRoleForBatch`](using-service-linked-roles.md) サービスにリンクされたロールによって使用されます。これにより、 AWS Batch はユーザーに代わってアクションを実行できます。このポリシーを IAM エンティティにアタッチすることはできません。詳細については、「[のサービスにリンクされたロールの使用 AWS Batch](using-service-linked-roles.md)」を参照してください。



このポリシーにより AWS Batch 、 は特定のリソースに対して次のアクションを実行できます。
+ `autoscaling` – AWS Batch が Amazon EC2 Auto Scaling リソースを作成および管理できるようにします。 は、ほとんどのコンピューティング環境の 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 。

ポリシーの 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)」の「[BatchServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/BatchServiceRolePolicy.html)」を参照してください。

## AWS マネージドポリシー: **AWSBatchServiceRolePolicyForSageMaker**
<a name="security-iam-awsmanpol-sagemaker-service-role-policy"></a>

[`AWSServiceRoleForAWSBatchWithSagemaker`](using-service-linked-roles-batch-sagemaker.md) では AWS Batch 、ユーザーに代わってアクションを実行できます。このポリシーを IAM エンティティにアタッチすることはできません。詳細については、「[のサービスにリンクされたロールの使用 AWS Batch](using-service-linked-roles.md)」を参照してください。

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

ポリシーの 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 マネージドポリシー: **AWSBatchServiceRole** ポリシー
<a name="security-iam-awsmanpol-AWSBatchServiceRolePolicy"></a>

**AWSBatchServiceRole** というロールのアクセス許可ポリシーは、指定されたリソースでの以下のアクションの実行を AWS Batch に許可します。

**AWSBatchServiceRole** 管理 IAM ポリシーは、**AWSBatchServiceRole** という名前のロールによって使用されることが多く、次のアクセス許可が含まれます。最小特権を付与する標準のセキュリティアドバイスに従って、**AWSBatchServiceRole** 管理ポリシーをガイドとして使用できます。マネージドポリシーで付与されているアクセス許可のいずれかがユースケースに必要でない場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。この AWS Batch マネージドポリシーとロールは、ほとんどのコンピューティング環境タイプで使用できますが、エラーが発生しにくく、範囲が広く、マネージドエクスペリエンスを向上させるには、サービスにリンクされたロールの使用が推奨されます。
+ `autoscaling` – AWS Batch が Amazon EC2 Auto Scaling リソースを作成および管理できるようにします。 は、ほとんどのコンピューティング環境の Amazon EC2 Auto Scaling グループ AWS Batch を作成および管理します。
+ `ec2` – AWS Batch が Amazon EC2 インスタンスのライフサイクルを管理し、起動テンプレートとタグを作成および管理できるようにします。 は、一部の EC2 スポットコンピューティング環境の EC2 スポットフリートリクエスト AWS Batch を作成および管理します。
+ `ecs` - AWS Batch ジョブ実行用の Amazon ECS クラスター、タスク定義、タスクの作成と管理を許可します。
+ `iam` - 所有者が提供するロールを検証して Amazon EC2、Amazon EC2 Auto Scaling、Amazon ECS に渡すことを AWS Batch に許可します。
+ `logs` – AWS Batch ジョブのロググループとログストリームの作成と管理を に許可します 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)」の「[AWSBatchServiceRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSBatchServiceRole.html)」を参照してください。

## AWS マネージドポリシー: **AWSBatchFullAccess**
<a name="security-iam-awsmanpol-BatchFullAccess"></a>

**AWSBatchFullAccess** ポリシーは、 AWS Batch リソースへのフルアクセスを AWS Batch アクションに付与します。また、Amazon EC2、Amazon EC2、Amazon ECS、Amazon ECS、Amazon EKS、IAM サービスへのアクションアクセスを許可します。これは、ユーザーまたはロールのいずれかの IAM ID が、ユーザーに代わって作成された AWS Batch マネージドリソースを表示できるようにするためです。最後に、このポリシーは、選択した IAM ロールをこれらのサービスに渡すことも許可します。

**AWSBatchFullAccess** を IAM エンティティにアタッチできます。 は、ユーザーに代わってアクションを実行することを に許可するサービスロール AWS Batch にもこのポリシー 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)」の「[AWSBatchFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSBatchFullAccess.html)」を参照してください。

## AWS Batch AWS 管理ポリシーの更新
<a name="security-iam-awsmanpol-updates"></a>



このサービスがこれらの変更の追跡を開始 AWS Batch してからの の AWS 管理ポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートについては、 AWS Batch ドキュメント履歴ページの RSS フィードにサブスクライブしてください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  ****[ AWSBatchServiceRolePolicyForSageMaker](using-service-linked-roles-batch-sagemaker.md)**** ポリシーを追加  |  がユーザーに代わって ** SageMaker AI を管理できるようにする AWSBatchServiceRolePolicyForSageMaker** SageMaker サービスリンクロールの新しい AWS 管理ポリシーを追加しました。 AWS Batch   |  2025 年 7 月 31 日  | 
|  ****[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)**** ポリシーの更新  |  スポットフリートリクエストの履歴と Amazon EC2 Auto Scaling のアクティビティの記述のサポートを追加するように更新しました。  |  2023 年 12 月 5 日  | 
|  ****[AWSBatchServiceRole](#security-iam-awsmanpol-AWSBatchServiceRolePolicy)**** ポリシーの追加  |  ステートメント IDs、 `ec2:DescribeSpotFleetRequestHistory`および にアクセス AWS Batch 許可を付与するように更新しました`autoscaling:DescribeScalingActivities`。  |  2023 年 12 月 5 日  | 
|  **[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)** ポリシーの更新  |  Amazon EKS クラスターを記述するためのサポートを追加するために更新されました。  |  2022 年 10 月 20 日  | 
|  **[AWSBatchFullAccess](#security-iam-awsmanpol-BatchFullAccess)** ポリシーが更新されました  |  Amazon EKSクラスターのリストと説明のサポートを追加しました。  |  2022 年 10 月 20 日  | 
|  **[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)** ポリシーの更新  |   AWS Resource Groupsによって管理される Amazon EC2 キャパシティ予約グループのサポートを追加するように更新されました。詳細については、「[Amazon EC2 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-cr-group.html)」の「*キャパシティ予約グループ*」を参照してください。  |  2022 年 5 月 18 日  | 
|  **[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)** と**[ AWSBatchServiceRole](using-service-linked-roles.md)** ポリシーが更新されました  |  異常なインスタンスが置き換えられるように、Amazon EC2 の AWS Batch マネージドインスタンスのステータスを記述するサポートを追加しました。  |  2021 年 12 月 6 日  | 
|  **[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)** ポリシーの更新  |  Amazon EC2 で配置グループ、キャパシティの予約、Elastic GPU、および Elastic Inference リソースのサポートを追加するように更新されました。  |  2021 年 3 月 26 日  | 
|  **[BatchServiceRolePolicy](#security-iam-awsmanpol-BatchServiceRolePolicy)** ポリシーの追加 (2021年3月10日)  |  **AWSServiceRoleForBatch** サービスにリンクされたロール用の **BatchServiceRolePolicy** 管理ポリシーを使用すると、コンピューティング環境で使用する独自のロールを維持する代わりに、 AWS Batchが管理するサービスにリンクされたロールを使用することができます。このポリシーを使用すると、コンピュート環境で使用するために独自のロールを維持する必要がありません。  |  2021 年 3 月 10 日  | 
|  **[AWSBatchFullAccess](#security-iam-awsmanpol-BatchFullAccess)** - サービスにリンクされたロールを追加するための権限を追加  |  **AWSServiceRoleForBatch]** サービスにリンクされたロールをアカウントに追加できるように IAM アクセス許可を追加しました。  |  2021 年 3 月 10 日  | 
|  AWS Batch が変更の追跡を開始しました  |  AWS Batch は、 AWS 管理ポリシーの変更の追跡を開始しました。  | 2021 年 3 月 10 日 | 

# AWS Batch IAM ポリシー、ロール、アクセス許可
<a name="IAM_policies"></a>

デフォルトでは、ユーザーには AWS Batch 、 API、 AWS Batch コンソール、または を使用して AWS Batch リソースを作成または変更したり、タスクを実行したりするアクセス許可はありません AWS CLI。ユーザーがこれらのリソースを利用するには、特定のリソースと APIアクションを使用する許可を付与するIAM ポリシーを作成する必要があります。続いて、こうしたアクセス権限が必要なユーザーまたはグループにそのポリシーをアタッチします。

ポリシーをユーザーまたはユーザーグループにアタッチする場合、ポリシーによって特定リソースの特定タスクを実行するユーザーの権限が許可または拒否されます。詳細については、*IAM ユーザーガイド* の [アクセス許可とポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html)を参照してください。カスタム IAM ポリシーの管理と作成の詳細については、[IAM ポリシーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)を参照してください。

AWS Batch は、ユーザーに代わって他の を呼び出し AWS のサービス ます。そのため、 AWS Batch は 認証情報を使用して認証する必要があります。具体的には、これらのアクセス許可を提供する IAM ロールとポリシーを作成して AWS Batch 認証します。次に、それらの作成時に、そのロールをコンピューティング環境に関連付けます。詳細については、IAM *ユーザーガイド*の[Amazon ECS インスタンスロール](instance_IAM_role.md)「」、「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)」を参照してください。 [https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)

**Topics**
+ [IAM ポリシーの構造](iam-policy-structure.md)
+ [リソース: のポリシーの例 AWS Batch](ExamplePolicies_BATCH.md)
+ [リソース: AWS Batch 管理ポリシー](batch_managed_policies.md)

# IAM ポリシーの構造
<a name="iam-policy-structure"></a>

次のトピックでは、IAM ポリシーの簡単な構造について説明します。

**Topics**
+ [ポリシー構文](#policy-syntax)
+ [の API アクション AWS Batch](#UsingWithbatch_Actions)
+ [の Amazon リソースネーム AWS Batch](#batch_ARN_Format)
+ [ユーザーが必要なアクセス許可を持っていることを確認する](#check-required-permissions)

## ポリシー構文
<a name="policy-syntax"></a>

IAM ポリシーは 1 つ以上のステートメントで構成される JSON ドキュメントです。各ステートメントの構成は以下のとおりです。

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
    "key":"value"
    }
      }
    }
  ]
}
```

ステートメントは 4 つの主なエレメントで構成されています。
+ **Effect**: *effect* は、`Allow` または `Deny` にすることができます。デフォルトでは、 ユーザーはリソースおよび API アクションを使用するアクセス許可がありません。そのため、すべてのリクエストが拒否されます。明示的な許可はデフォルトに上書きされます。明示的な拒否はすべての許可に上書きされます。
+ **Action]** (アクション): *action* は、アクセス許可を付与または拒否する対象とする、特定の API アクションです。*アクション*を指定する方法に関する指示は、[の API アクション AWS Batch](#UsingWithbatch_Actions) を参照してください。
+ **Resource]** (リソース): アクションによって影響を及ぼされるリソースです。 AWS Batch API アクションの中には、アクションによって作成/変更できるリソースをポリシー内で特定できるものもあります。ステートメントでリソースを指定するには、Amazon リソースネーム (ARN) を使用します。詳細については、「[AWS Batch API アクションでサポートされているリソースレベルのアクセス許可](batch-supported-iam-actions-resources.md)」および「[の Amazon リソースネーム AWS Batch](#batch_ARN_Format)」を参照してください。 AWS Batch API オペレーションが現在リソースレベルのアクセス許可をサポートしていない場合は、ワイルドカード (\$1) を含めて、すべてのリソースが アクションの影響を受けるように指定します。
+ **Condition]** (条件): condition はオプションです。ポリシーの発効条件を指定するために使用します。

の IAM ポリシーステートメントの例の詳細については AWS Batch、「」を参照してください[リソース: のポリシーの例 AWS Batch](ExamplePolicies_BATCH.md)。

## の API アクション AWS Batch
<a name="UsingWithbatch_Actions"></a>

IAM ポリシーステートメントで、IAM をサポートするすべてのサービスからの任意の API アクションを指定できます。の場合 AWS Batch、API アクションの名前に次のプレフィックスを使用します `batch:` (例: `batch:SubmitJob`および `batch:CreateComputeEnvironment`)。

単一のステートメントで複数のアクションを指定するには、各アクションをカンマで区切ります。

```
"Action": ["batch:action1", "batch:action2"]
```

またワイルドカード (\$1) を含めて、複数のアクションを指定することもできます。例えば、Describeという単語で始まる名前を用いて、すべてのアクションを指定できます。

```
"Action": "batch:Describe*"
```

すべての AWS Batch API アクションを指定するには、ワイルドカード (\$1) を含めます。

```
"Action": "batch:*"
```

 AWS Batch アクションのリストについては、 *AWS Batch API リファレンス*の[「アクション](https://docs.aws.amazon.com/batch/latest/APIReference/API_Operations.html)」を参照してください。

## の Amazon リソースネーム AWS Batch
<a name="batch_ARN_Format"></a>

各 IAM ポリシーステートメントは、ユーザーがAmazon リソースネーム（ARN）を使用して指定したリソースに適用されます。

Amazon リソースネーム (ARN) には、次の一般的な構文があります:

```
arn:aws:[service]:[region]:[account]:resourceType/resourcePath
```

*service*  
サービス (例: `batch`)。

*region*  
リソース AWS リージョン の （例: `us-east-2`）。

*アカウント*  
 AWS アカウント ID。ハイフンなし (例: `123456789012`)。

*resourceType*  
リソースの種類 (例: `compute-environment`)。

*resourcePath*  
リソースを識別するパス。パスにワイルドカードの(\$1)が使用できます。

AWS Batch API オペレーションは現在、複数の API オペレーションに対するリソースレベルのアクセス許可をサポートしています。詳細については、「[AWS Batch API アクションでサポートされているリソースレベルのアクセス許可](batch-supported-iam-actions-resources.md)」を参照してください。すべてのリソースを指定する場合、または特定の API アクションが ARN をサポートしていない場合は、`Resource` エレメントに (\$1) ワイルドカードを含めます。

```
"Resource": "*"
```

## ユーザーが必要なアクセス許可を持っていることを確認する
<a name="check-required-permissions"></a>

IAM ポリシーを本稼働環境に置く前に、そのポリシーがユーザーに対し、特定の API アクションおよび必要なリソースを使用のアクセス許可を付与しているかどうかを確認することをお勧めします。

これを行うには、まずテスト目的のユーザーを作成して、IAM ポリシーをテストユーザーにアタッチします。次に、テストユーザーとしてリクエストを作成します。テストリクエストは、コンソールまたは AWS CLIを使用して行うことができます。

**注記**  
[IAM ポリシーシミュレーター](https://policysim.aws.amazon.com/home/index.jsp?#)を使用してポリシーをテストすることもできます。ポリシーシミュレーターの詳細については、*IAM ユーザーガイド*の[IAM ポリシーシミュレーターで作業する](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_testing-policies.html)を参照してください。

ポリシーが想定したアクセス許可をユーザーに付与していない場合、または過度に許可されている場合、必要に応じてポリシーを調整できます。必要な結果を得るまで再テストします。

**重要**  
ポリシーの変更が反映され、有効になるには数分間かかります。したがって、ポリシーの更新をテストする前に、合格するには、少なくとも5分みておくことをお勧めします。

認可チェックが失敗した場合、リクエストでは診断情報でエンコードされたメッセージが返されます。`DecodeAuthorizationMessage` アクションを使用してメッセージをデコードできます。詳細については、*AWS Security Token Service API リファレンス* の[DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html)、および*AWS CLI コマンドリファレンス*の [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html) を参照してください。

# リソース: のポリシーの例 AWS Batch
<a name="ExamplePolicies_BATCH"></a>

アカウントのユーザーがアクセスできる呼び出しやリソースを制限する特定の IAM ポリシーを作成できます。このポリシーをユーザーにアタッチできます。

ポリシーをユーザーまたはグループにアタッチすると、ポリシーによって特定リソースについて特定タスクを実行する権限が許可または拒否されます。詳細については、*IAM ユーザーガイド* の [アクセス許可とポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html)を参照してください。カスタム IAM ポリシーを管理および作成する方法については、[IAM ポリシーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)を参照してください。

以下の例では、ユーザーの AWS Batchに対するアクセス権限を制御するために使用できるポリシーステートメントについて説明しています。

**Topics**
+ [読み取り専用アクセス](iam-example-read-only.md)
+ [リソース: ユーザー、イメージ、権限、ロールを制限する](iam-example-job-def.md)
+ [ジョブ送信の制限](iam-example-restrict-job-submission.md)
+ [ジョブキューを制限する](iam-example-restrict-job-queue.md)
+ [すべての条件が文字列に一致した場合はアクションを拒否する](iam-example-job-def-deny-all-image-logdriver.md)
+ [リソース: いずれかの条件キーが文字列に一致した場合はアクションを拒否する](iam-example-job-def-deny-any-image-logdriver.md)
+ [`batch:ShareIdentifier` 条件キーを使用する](iam-example-share-identifier.md)
+ [で SageMaker AI リソースを管理する AWS Batch](iam-example-full-access-service-environment.md)
+ [リソースタグによるジョブ送信の制限](iam-example-restrict-job-submission-by-tags.md)

# リソース: の読み取り専用アクセス AWS Batch
<a name="iam-example-read-only"></a>

次のポリシーは、 `Describe`および で始まる名前のすべての AWS Batch API アクションを使用するアクセス許可をユーザーに付与します`List`。

別のステートメントでアクセス権限を付与されない限り、ユーザーにはそのリソースに対してアクションを実行するアクセス権限がありません。デフォルトでは、API アクションを使用する権限は拒否されます。

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

****  

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

------

# リソース: POSIX ユーザー、Docker イメージ、特権レベル、ジョブ送信のロールを制限する
<a name="iam-example-job-def"></a>

次のポリシーは、POSIX ユーザーが自身の制限されたジョブ定義のセットを管理することを許可します。

最初と 2 番目のステートメントを使用して、名前が *JobDefA\$1* で始まるジョブ定義を登録および登録解除します。

また、最初のステートメントでは、条件付きコンテキストキーを使用して POSIX ユーザー、特権ステータス、コンテナイメージ値をジョブ定義の `containerProperties` 内に制限します。詳細については、*AWS Batch API リファレンス*の [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) を参照してください。この例では、POSIX ユーザーが `nobody` に設定されている場合にのみ、ジョブ定義を登録できます。特権フラグは `false` に設定されています。最後に、イメージは Amazon ECR レポジトリの `myImage` に設定されています。

**重要**  
Docker は、コンテナイメージ内から `user` パラメータをユーザー `uid` に解決します。ほとんどの場合、これはコンテナイメージ内の `/etc/passwd` ファイルにあります。ジョブ定義と関連付けられたすべての IAM ポリシーの両方で直接 `uid` 値を使用することで、この名前解決を回避できます。 AWS Batch API オペレーションおよび `batch:User` IAM 条件キーのいずれにおいても、数値がサポートされます。

3 番目のステートメントを使用して、ジョブ定義を特定のロールのみに制限します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "batch:RegisterJobDefinition"
            ],
            "Resource": [
                "arn:aws:batch:us-east-2:999999999999:job-definition/JobDefA_*"
            ],
            "Condition": {
                "StringEquals": {
                    "batch:User": [
                        "nobody"
                    ],
                    "batch:Image": [
                        "999999999999.dkr.ecr.us-east-2.amazonaws.com/myImage"
                    ]
                },
                "Bool": {
                    "batch:Privileged": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "batch:DeregisterJobDefinition"
            ],
            "Resource": [
                "arn:aws:batch:us-east-2:999999999999:job-definition/JobDefA_*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::999999999999:role/MyBatchJobRole"
            ]
        }
    ]
}
```

------

# リソース: ジョブ送信時、ジョブ定義プレフィックスを制限する
<a name="iam-example-restrict-job-submission"></a>

次のポリシーを使用して、*JobDefA* で始まるすべてのジョブ定義のジョブキューにジョブを送信します。

**重要**  
ジョブ送信へのリソースレベルアクセスに絞り込む場合、ジョブキューおよびジョブ定義の両方のリソースタイプを指定する必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "batch:SubmitJob"
            ],
            "Resource": [
                "arn:aws:batch:us-east-2:111122223333:job-definition/JobDefA_*",
                "arn:aws:batch:us-east-2:111122223333:job-queue/*"
            ]
        }
    ]
}
```

------

# リソース: ジョブキューを制限する
<a name="iam-example-restrict-job-queue"></a>

次のポリシーを使用して、任意のジョブ定義名で **queue1** という名前の特定のジョブキューへのジョブの送信をユーザーに許可します。

**重要**  
ジョブ送信へのリソースレベルアクセスに絞り込む場合、ジョブキューおよびジョブ定義の両方のリソースタイプを指定する必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "batch:SubmitJob"
            ],
            "Resource": [
                "arn:aws:batch:us-east-2:888888888888:job-definition/*",
                "arn:aws:batch:us-east-2:888888888888:job-queue/queue1"
            ]
        }
    ]
}
```

------

# すべての条件が文字列に一致した場合はアクションを拒否する
<a name="iam-example-job-def-deny-all-image-logdriver"></a>

次のポリシーは、 `batch:Image` (コンテナイメージ ID) 条件キーが*「string1*」と `batch:LogDriver` (コンテナログドライバー) 条件キーが*「string2*」の両方の場合、[https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)API AWS Batch オペレーションへのアクセスを拒否します。 は各コンテナの条件キーを評価します。マルチノード並列ジョブのように、ジョブが複数のコンテナにまたがる場合、コンテナの構成が異なる可能性があります。1 つのステートメントで複数の条件キーを評価する場合、条件キーは `AND` ロジックを使用して結合されます。そのため、1 つのコンテナで複数の条件キーのいずれかが一致しない場合、そのコンテナに `Deny` の効果は適用されません。それどころか、同じジョブ内の別のコンテナが拒否される可能性があります。

の条件キーのリストについては AWS Batch、*「サービス認可リファレンス*」の「 [の条件キー AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-policy-keys)」を参照してください。この方法は、`batch:ShareIdentifier` を除くすべての `batch` 条件キーで使用できます。`batch:ShareIdentifier` 条件キーは、ジョブ定義ではなく、ジョブに対して定義されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "batch:RegisterJobDefinition"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Effect": "Deny",
      "Action": "batch:RegisterJobDefinition",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "batch:Image": "string1",
          "batch:LogDriver": "string2"
        }
      }
    }
  ]
}
```

------

# リソース: いずれかの条件キーが文字列に一致した場合はアクションを拒否する
<a name="iam-example-job-def-deny-any-image-logdriver"></a>

次のポリシーは、`batch:Image` (コンテナイメージ ID) 条件キーが "*string1*" または `batch:LogDriver` (コンテナログドライバー) 条件キーが "*string2*" の場合、[https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) API オペレーションへのアクセスを拒否します。マルチノード並列ジョブのように、ジョブが複数のコンテナにまたがる場合、コンテナの構成が異なる可能性があります。1 つのステートメントで複数の条件キーを評価する場合、条件キーは `AND` ロジックを使用して結合されます。そのため、1 つのコンテナで複数の条件キーのいずれかが一致しない場合、そのコンテナに `Deny` の効果は適用されません。それどころか、同じジョブ内の別のコンテナが拒否される可能性があります。

の条件キーのリストについては AWS Batch、*「サービス認可リファレンス*」の「 [の条件キー AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html#awsbatch-policy-keys)」を参照してください。この方法は、`batch:ShareIdentifier` を除くすべての `batch` 条件キーで使用できます。(`batch:ShareIdentifier` 条件キーは、ジョブ定義ではなく、ジョブに対して定義されます)。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "batch:RegisterJobDefinition"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "batch:RegisterJobDefinition"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "batch:Image": [
            "string1"
          ]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "batch:RegisterJobDefinition"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "batch:LogDriver": [
            "string2"
          ]
        }
      }
    }
  ]
}
```

------

# リソース: `batch:ShareIdentifier` 条件キーを使用する
<a name="iam-example-share-identifier"></a>

次のポリシーを使用して、`jobDefA` ジョブ定義を使用するジョブを `lowCpu` 配分識別子で `jobqueue1` ジョブキューに送信します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "batch:SubmitJob"
      ],
      "Resource": [
        "arn:aws:batch:us-east-2:555555555555:job-definition/JobDefA",
        "arn:aws:batch:us-east-2:555555555555:job-queue/jobqueue1"
      ],
      "Condition": {
        "StringEquals": {
          "batch:ShareIdentifier": [
            "lowCpu"
          ]
        }
      }
    }
  ]
}
```

------

# で SageMaker AI リソースを管理する AWS Batch
<a name="iam-example-full-access-service-environment"></a>

このポリシーにより、 AWS Batch は SageMaker AI リソースを管理できます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "batch:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::*:role/*AWSServiceRoleForAWSBatchWithSagemaker",
            "Condition": {
                 "StringEquals": {
                     "iam:AWSServiceName": "sagemaker-queuing.batch.amazonaws.com"
                 }
             }
         },
         {
             "Effect": "Allow",
             "Action": "iam:PassRole",
             "Resource": "*",
             "Condition": {
                 "StringEquals": {
                     "iam:PassedToService": [
                         "sagemaker.amazonaws.com"
                      ]
                  }
              }
          }
    ]
}
```

------

# リソース: ジョブ定義とジョブキューのリソースタグによってジョブ送信を制限する
<a name="iam-example-restrict-job-submission-by-tags"></a>

ジョブキューに タグがあり、ジョブ定義`Environment=dev`に タグがある場合にのみ、次のポリシーを使用してジョブを送信します`Project=calc`。このポリシーは、リソースタグを使用して、ジョブの送信中に AWS Batch リソースへのアクセスを制御する方法を示しています。

**重要**  
ジョブ定義リソースタグを評価するポリシーを使用してジョブを送信する場合は、ジョブ定義リビジョン形式 () を使用してジョブを送信する必要があります`job-definition:revision`。リビジョンを指定せずにジョブを送信した場合、ジョブ定義タグは評価されず、意図したアクセスコントロールがバイパスされる可能性があります。リソース ARN の`*:*`パターンでは、送信にリビジョンを含める必要があるため、タグポリシーを常に効果的に適用できます。

このポリシーは、異なるリソースタイプに異なるタグ条件を適用するため、2 つの異なるステートメントを使用します。ジョブ送信へのリソースレベルアクセスに絞り込む場合、ジョブキューおよびジョブ定義の両方のリソースタイプを指定する必要があります。

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "batch:SubmitJob",
      "Resource": "arn:aws:batch:*:*:job-queue/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": "dev"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "batch:SubmitJob",
      "Resource": "arn:aws:batch:*:*:job-definition/*:*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "calc"
        }
      }
    }
  ]
}
```

# リソース: AWS Batch 管理ポリシー
<a name="batch_managed_policies"></a>

AWS Batch には、ユーザーにアタッチできる管理ポリシーが用意されています。このポリシーは、 AWS Batch リソースと API オペレーションを使用するアクセス許可を提供します。このポリシーを直接適用することも、独自のポリシーを作成する開始点として使用することもできます。これらのポリシーに記載されている各 API オペレーションの詳細については、*AWS Batch API リファレンス*の[アクション](https://docs.aws.amazon.com/batch/latest/APIReference/API_Operations.html)を参照してください。

## AWSBatchFullAccess
<a name="AWSBatchFullAccess"></a>

このポリシーは、 へのフル管理者アクセスを許可します 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)」の「[AWSBatchFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSBatchFullAccess.html)」を参照してください。

# 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": "*"
    }
  ]
}
```

------

# 仮想プライベートクラウドを作成する
<a name="create-public-private-vpc"></a>

コンピューティング環境のコンピューティングリソースは、 AWS Batch および Amazon ECS サービスエンドポイントとの通信に、外部ネットワークアクセスを必要とします。ただし、ユーザーが、プライベートサブネットで実行したいジョブがある場合があります。パブリックサブネットまたはプライベートサブネットのどちらかでジョブを実行する柔軟性を得るには、パブリックサブネットとプライベートサブネットの両方がある VPC を作成します。



Amazon Virtual Private Cloud (Amazon VPC) を使用して、定義した仮想ネットワークに AWS リソースを起動できます。このトピックでは、Amazon VPC ウィザードへのリンクと選択できるオプションのリストを提供します。

## 「VPC を作成する」
<a name="run-VPC-wizard"></a>

Amazon VPC の作成方法の詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC のみを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#create-vpc-vpc-only)」を参照し、次の表を使用して選択するオプションを決定します。


| オプション | 値 | 
| --- | --- | 
|  作成するためのリソース  | VPC 専用 | 
| 名前 |  オプションで、VPC の名前を指定します。  | 
| IPv4 CIDR ブロック |  IPv4 CIDR 手動入力 CIDR ブロックサイズは /16 から /28 の間である必要があります。  | 
|  IPv6 CIDR ブロック  |  IPv6 CIDR ブロックなし  | 
|  テナンシー  |  デフォルト  | 

Amazon VPC の詳細については、*Amazon VPC ユーザーガイド*の[Amazon VPC とは](https://docs.aws.amazon.com/vpc/latest/userguide/)を参照してください。

## 次の手順
<a name="vpc-next-steps"></a>

VPC を作成したら、以下の次のステップを検討します：
+ パブリックリソースおよびプライベートリソースでインバウンドネットワークアクセスが必要な場合は、そのセキュリティグループを作成します。詳細については、*Amazon VPC ユーザーガイド*の[セキュリティグループの操作](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#working-with-security-groups)を参照してください。
+ 新しい VPC にコンピューティングリソースを起動する AWS Batch マネージドコンピューティング環境を作成します。詳細については、「[コンピューティング環境を作成する](create-compute-environment.md)」を参照してください。 AWS Batch コンソールでコンピューティング環境作成ウィザードを使用する場合は、先ほど作成した VPC と、インスタンスを起動するパブリックサブネットまたはプライベートサブネットを指定できます。
+ 新しいコンピューティング環境にマッピングされた AWS Batch ジョブキューを作成します。詳細については、「[ジョブキューを作成する](create-job-queue.md)」を参照してください。
+ ジョブの実行で使用するジョブ定義を作成します。詳細については、[シングルノードのジョブ定義を作成する](create-job-definition.md)を参照してください。
+ ジョブ定義とともに、新しいジョブキューにジョブを送信します。このジョブは、新しい VPC およびサブネットで作成したコンピューティング環境に置かれます。詳細については、「[チュートリアル: ジョブを送信する](submit_job.md)」を参照してください。

# インターフェイスエンドポイントを使用して にアクセスする AWS Batch
<a name="vpc-interface-endpoints"></a>

を使用して AWS PrivateLink 、VPC と の間にプライベート接続を作成できます AWS Batch。インターネットゲートウェイ、NAT デバイス、VPN 接続、 Direct Connect 接続のいずれかを使用せずに、VPC 内にあるかのように AWS Batch にアクセスできます。VPC 内のインスタンスは AWS Batchにアクセスするためにパブリック IP アドレスを必要としません。

このプライベート接続を確立するには、 AWS PrivateLinkを利用した*インターフェイスエンドポイント*を作成します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらは、 AWS Batch宛てのトラフィックのエントリポイントとして機能するリクエスタ管理型ネットワークインターフェイスです。

詳細については、「*AWS PrivateLink ガイド*」の「[インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)」を参照してください。

# に関する考慮事項 AWS Batch
<a name="vpc-endpoint-considerations"></a>

のインターフェイスエンドポイントを設定する前に AWS Batch、「 *AWS PrivateLink ガイド*」の[「インターフェイスエンドポイントのプロパティと制限](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations)」を参照してください。

AWS Batch は、インターフェイスエンドポイントを介したすべての API アクションの呼び出しをサポートしています。

のインターフェイス VPC エンドポイントを設定する前に AWS Batch、次の考慮事項に注意してください。
+ Fargate リソース起動タイプを使用するジョブには、Amazon ECS のインターフェイス VPC エンドポイントは必要ありませんが、以下のポイントで説明する Amazon ECR AWS Batch、Secrets Manager、または Amazon CloudWatch Logs のインターフェイス VPC エンドポイントが必要になる場合があります。
  + ジョブを実行するには、Amazon ECS 用に、インターフェイス VPC エンドポイントを作成する必要があります。詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html)」を参照してください。
  + ジョブがAmazon ECRからプライベートイメージを引き出せるようにするには、Amazon ECR用のインターフェースVPCエンドポイントを作成する必要があります。詳細については、*Amazon Elastic Container Registry ユーザーガイド*の[インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html)を参照してください。
  + ジョブが Secrets Manager から機密データを取得できるようにするには、Secrets Manager 用のインターフェイス VPC エンドポイントを作成する必要があります。詳細については、[AWS Secrets Manager ユーザーガイド](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)の *VPC EndpointでSecrets Managerを使用する* を参照してください。
  + VPCにインターネットゲートウェイがなく、ジョブが `awslogs` ログドライバーを使用してログ情報をCloudWatch Logsに送信する場合、CloudWatch Logs用のインターフェースVPCエンドポイントを作成する必要があります。詳細については、[Amazon CloudWatch Logs ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html)の*インターフェイス VPC エンドポイントでの CloudWatch Logs の使用*を参照してください。
+ EC2リソースを使用するジョブでは、起動するコンテナインスタンスがAmazon ECSコンテナエージェントのバージョン `1.25.1` 以降を実行している必要必要があります。詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[Amazon ECS Linux コンテナエージェントバージョン](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-versions.html)」を参照してください。
+ 現在、VPC エンドポイントはクロスリージョンリクエストをサポートしていません。 AWS Batchに対して API コールを発行するリージョンと同じリージョンにエンドポイントを作成してください。​
+ VPC エンドポイントでは、Amazon Route 53 を介して Amazon 提供の DNS のみがサポートされています。独自の DNS を使用したい場合は、条件付き DNS 転送を使用できます。詳細については、*Amazon VPC ユーザーガイド* の [DHCP Options Sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) を参照してください。
+ VPC エンドポイントにアタッチされたセキュリティグループでは、VPC のプライベートサブネットから、ポート 443 で着信接続を許可する必要があります。
+ AWS Batch は、以下の VPC インターフェイスエンドポイントをサポートしていません AWS リージョン。
  + アジアパシフィック (大阪) (`ap-northeast-3`)
  + アジアパシフィック (ジャカルタ) (`ap-southeast-3`)

# のインターフェイスエンドポイントを作成する AWS Batch
<a name="vpc-endpoint-create"></a>

Amazon VPC コンソールまたは AWS Command Line Interface () AWS Batch を使用して、 のインターフェイスエンドポイントを作成できますAWS CLI。詳細については、「*AWS PrivateLink ガイド*」の「[インターフェイスエンドポイントを作成](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)」を参照してください。

次のサービス名 AWS Batch を使用して、 用のインターフェイスエンドポイントを作成します。
+ **com.amazonaws.***region* **.batch**
+ **com.amazonaws.***region* **.batch-fips** *(FIPS 準拠のエンドポイントについては、[AWS Batch 「エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/batch.html)」を参照してください)*

例えば、次のようになります。

```
com.amazonaws.us-east-2.batch
```

```
com.amazonaws.us-east-2.batch-fips
```

`aws-cn` パーティションでは形式が異なります。

```
cn.com.amazonaws.region.batch
```

例えば、次のようになります。

```
cn.com.amazonaws.cn-northwest-1.batch
```

## AWS Batch インターフェイスエンドポイントのプライベート DNS 名
<a name="vpc-endpoint-service-names"></a>

インターフェイスエンドポイントのプライベート DNS を有効にすると、特定の DNS 名を使用して接続できます。以下のオプション AWS Batchが用意されています。
+ **batch.***region* **.amazonaws.com**
+ **batch.***region* **.api.aws**

FIPS 準拠のエンドポイントの場合:
+ **batch-fips.***region* **.api.aws**
+ **fips.batch.***region* **.amazonaws.com** *はサポートされていません*

詳細については、AWS PrivateLink ガイドの[インターフェイスエンドポイントを介したサービスへのアクセス](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#access-service-though-endpoint)を参照してください。

# インターフェイスエンドポイントのエンドポイントポリシーを作成する
<a name="vpc-endpoint-policy"></a>

エンドポイントポリシーは、インターフェイスエンドポイントにアタッチできる IAM リソースです。デフォルトのエンドポイントポリシーでは、インターフェイスエンドポイント AWS Batch を介した へのフルアクセスが許可されます。VPC から AWS Batch に許可されるアクセスを制御するには、カスタム・エンドポイント・ポリシーをインターフェースのエンドポイントにアタッチします。

エンドポイントポリシーは以下の情報を指定します。
+ アクションを実行できるプリンシパル (AWS アカウント、ユーザー、IAM ロール)。
+ 実行可能なアクション。
+ このアクションを実行できるリソース。

詳細については、*AWS PrivateLink ガイド*の[Control access to services using endpoint policies (エンドポイントポリシーを使用してサービスへのアクセスをコントロールする)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)を参照してください。

**例: AWS Batch アクションの VPC エンドポイントポリシー**  
以下は、カスタムエンドポイントポリシーの例です。このポリシーをインターフェイスエンドポイントにアタッチすると、すべてのリソースのすべてのプリンシパルに対して、リストされた AWS Batch アクションへのアクセスが許可されます。

```
{
   "Statement": [
      {
         "Principal": "*",
         "Effect": "Allow",
         "Action": [
            "batch:SubmitJob",
            "batch:ListJobs",
            "batch:DescribeJobs"
         ],
         "Resource":"*"
      }
   ]
}
```

# のコンプライアンス検証 AWS Batch
<a name="compliance"></a>

 AWS のサービス が特定のコンプライアンスプログラムの範囲内にあるかどうかを確認するには、[AWS のサービス 「コンプライアンスプログラムによる対象範囲内](https://aws.amazon.com/compliance/services-in-scope/)」の」を参照し、関心のあるコンプライアンスプログラムを選択します。一般的な情報については、[AWS 「コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)」を参照してください。

を使用して、サードパーティーの監査レポートをダウンロードできます AWS Artifact。詳細については、[「Downloading Reports in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)」を参照してください。

を使用する際のお客様のコンプライアンス責任 AWS のサービス は、お客様のデータの機密性、貴社のコンプライアンス目的、適用可能な法律および規制によって決まります。を使用する際のコンプライアンス責任の詳細については AWS のサービス、[AWS 「 セキュリティドキュメント](https://docs.aws.amazon.com/security/)」を参照してください。

# のインフラストラクチャセキュリティ AWS Batch
<a name="infrastructure-security"></a>

マネージドサービスである AWS Batch は、 AWS グローバルネットワークセキュリティで保護されています。 AWS セキュリティサービスと がインフラストラクチャ AWS を保護する方法については、[AWS 「 クラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して環境を AWS 設計するには、*「Security Pillar AWS Well‐Architected Framework*」の[「Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)」を参照してください。

 AWS が公開した API コールを使用して、ネットワーク AWS Batch 経由で にアクセスします。クライアントは次をサポートする必要があります。
+ Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
+ DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードは Java 7 以降など、ほとんどの最新システムでサポートされています。

これらの API オペレーションは任意のネットワークロケーションから呼び出すことができますが、 AWS Batch はリソースベースのアクセスポリシーをサポートしています。これには、ソース IP アドレスに基づく制限が含まれる場合があります。 AWS Batch ポリシーを使用して、特定の Amazon Virtual Private Cloud (Amazon VPC) エンドポイントまたは特定の VPCs からのアクセスを制御することもできます。これにより、実質的に、ネットワーク内の特定の VPC からのみ、特定の AWS Batch リソースへの AWS ネットワークアクセスが分離されます。

# サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

「混乱した代理」問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐため、 AWS では、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルで、すべてのサービスのデータを保護するために役立つツールを提供しています。

リソースポリシーで [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用して、 がリソースに別のサービス AWS Batch に付与するアクセス許可を制限することをお勧めします。`aws:SourceArn` の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID に`aws:SourceArn` の値が含まれていない場合、`aws:SourceAccount` 値と `aws:SourceArn` 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

の値は、 が AWS Batch 保存するリソース`aws:SourceArn`である必要があります。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して、`aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー `aws:SourceArn` で、ARN の未知部分を示すためにワイルドカード文字 (`*`) を使用します。例えば、`arn:aws:servicename:*:123456789012:*`。

次の例は、 で `aws:SourceArn`および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題 AWS Batch を防ぐ方法を示しています。

## 例: 1 つのコンピューティング環境にのみアクセスするためのロール
<a name="cross-service-confused-deputy-prevention-example-1"></a>

次のロールは、1 つのコンピュート環境へのアクセスにのみ使用できます。ジョブキューは複数のコンピューティング環境に関連付けることができるため、ジョブ名は `*` として指定する必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "batch.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:batch:us-east-1:123456789012:compute-environment/testCE",
            "arn:aws:batch:us-east-1:123456789012:job/*"
          ]
        }
      }
    }
  ]
}
```

------

## 例: 複数のコンピューティング環境にアクセスするためのロール
<a name="cross-service-confused-deputy-prevention-example-2"></a>

次のロールを使用して複数のコンピュート環境にアクセスできます。`*` ジョブキューは複数のコンピューティング環境に関連付けることができるため、ジョブ名はとして指定する必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "batch.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:batch:us-east-1:123456789012:compute-environment/*",
            "arn:aws:batch:us-east-1:123456789012:job/*"
          ]
        }
      }
    }
  ]
}
```

------

# を使用した AWS Batch API コールのログ記録 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS Batch は、ユーザー AWS CloudTrail、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています AWS Batch。CloudTrail は、 のすべての API コールをイベント AWS Batch としてキャプチャします。キャプチャされた呼び出しには、 AWS Batch コンソールからの呼び出しと AWS Batch API オペレーションへのコード呼び出しが含まれます。証跡を作成する場合は、イベントを含む Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます AWS Batch。追跡を設定しない場合でも、CloudTrail コンソールの [**Event history (イベント履歴)**] で最新のイベントを表示できます。CloudTrail が収集した情報を使用して、 AWS Batchに対して行われた要求、要求が行われた IP アドレス、要求を行った人、要求が行われた日時、および追加の詳細を判別できます。

CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

**Topics**
+ [AWS Batch CloudTrail の情報](service-name-info-in-cloudtrail.md)
+ [リファレンス: AWS Batch ログファイルエントリについて](understanding-service-name-entries.md)

# AWS Batch CloudTrail の情報
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail は AWS 、アカウントの作成時にアカウントで有効になります。アクティビティが発生すると AWS Batch、そのアクティビティはイベント**履歴**の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。 AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

のイベントなど、 AWS アカウント内のイベントの継続的な記録については AWS Batch、証跡を作成します。*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集されたイベントデータをさらに分析して処理するように他の AWS サービスを設定できます。詳細については、次を参照してください:
+ [証跡の作成のための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail がサポートするサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [CloudTrail 用 Amazon SNS 通知の構成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

すべての AWS Batch アクションは CloudTrail によってログに記録され、https://docs.aws.amazon.com/batch/latest/APIReference/ に記載されています。例えば、`[SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)`、`[ListJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListJobs.html)`、および `[DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html)` セクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。同一性情報は次の判断に役立ちます。
+ リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

# リファレンス: AWS Batch ログファイルエントリについて
<a name="understanding-service-name-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは、任意の出典からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、`[CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)` アクションを示す CloudTrail ログエントリです。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:admin",
    "arn": "arn:aws:sts::012345678910:assumed-role/Admin/admin",
    "accountId": "012345678910",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2017-12-20T00:48:46Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::012345678910:role/Admin",
        "accountId": "012345678910",
        "userName": "Admin"
      }
    }
  },
  "eventTime": "2017-12-20T00:48:46Z",
  "eventSource": "batch.amazonaws.com",
  "eventName": "CreateComputeEnvironment",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.1",
  "userAgent": "aws-cli/1.11.167 Python/2.7.10 Darwin/16.7.0 botocore/1.7.25",
  "requestParameters": {
    "computeResources": {
      "subnets": [
        "subnet-5eda8e04"
      ],
      "tags": {
        "testBatchTags": "CLI testing CE"
      },
      "desiredvCpus": 0,
      "minvCpus": 0,
      "instanceTypes": [
        "optimal"
      ],
      "securityGroupIds": [
        "sg-aba9e8db"
      ],
      "instanceRole": "ecsInstanceRole",
      "maxvCpus": 128,
      "type": "EC2"
    },
    "state": "ENABLED",
    "type": "MANAGED",
    "computeEnvironmentName": "Test"
  },
  "responseElements": {
    "computeEnvironmentName": "Test",
    "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/Test"
  },
  "requestID": "890b8639-e51f-11e7-b038-EXAMPLE",
  "eventID": "874f89fa-70fc-4798-bc00-EXAMPLE",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "recipientAccountId": "012345678910"
}
```

# IAM AWS Batch のトラブルシューティング
<a name="security_iam_troubleshoot"></a>

次の情報は、 および IAM の使用時に発生する可能性がある一般的な問題の診断 AWS Batch と修復に役立ちます。

**Topics**
+ [でアクションを実行する権限がありません AWS Batch](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole を実行する権限がありません](#security_iam_troubleshoot-passrole)
+ [自分の AWS アカウント以外のユーザーに自分の AWS Batch リソースへのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)

## でアクションを実行する権限がありません AWS Batch
<a name="security_iam_troubleshoot-no-permissions"></a>

でアクションを実行する権限がないと AWS マネジメントコンソール 通知された場合は、管理者に連絡してサポートを依頼する必要があります。担当の管理者はお客様のユーザー名とパスワードを発行した人です。

以下のエラー例は、`mateojackson` ユーザーがコンソールを使用して架空の `my-example-widget` リソースに関する詳細情報を表示しようとしているが、架空の `batch:GetWidget` 許可がないという場合に発生します。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: batch:GetWidget on resource: my-example-widget
```

この場合、Mateo は、`batch:GetWidget` アクションを使用して `my-example-widget` リソースへのアクセスが許可されるように、管理者にポリシーの更新を依頼します。ロールを渡すアクセス許可の付与の詳細については、「 [AWS サービスにロールを渡すアクセス許可をユーザーに付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)」を参照してください。

## iam:PassRole を実行する権限がありません
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して AWS Batchにロールを渡すことができるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、既存のロールをそのサービスに渡すことができます。そのためには、サービスにロールを渡す権限が必要です。

以下の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して AWS Batchでアクションを実行しようとする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与された権限が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン資格情報を提供した担当者が管理者です。

## 自分の AWS アカウント以外のユーザーに自分の AWS Batch リソースへのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください:
+ がこれらの機能 AWS Batch をサポートしているかどうかを確認するには、「」を参照してください[が IAM と AWS Batch 連携する方法](security_iam_service-with-iam.md)。
+ 所有 AWS アカウント している のリソースへのアクセスを提供する方法については、[「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)」を参照してください。 **
+ リソースへのアクセスをサードパーティーに提供する方法については AWS アカウント、*IAM ユーザーガイド*の[「サードパーティーが所有する へのアクセスを提供する AWS アカウント](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)」を参照してください。
+ ID フェデレーションを介してアクセスを提供する方法については、*IAM ユーザーガイド* の [外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) を参照してください。
+ クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、「*IAM ユーザーガイド*」の「[IAM でのクロスアカウントのリソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)」を参照してください。