

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

# Amazon EMR で IAM ロールをカスタマイズする
<a name="emr-iam-roles-custom"></a>

IAM サービスロールおよびアクセス許可をカスタマイズして、セキュリティ要件に応じて権限を制限することもできます。アクセス許可をカスタマイズするには、新しいロールおよびポリシーを作成することをお勧めします。まず、デフォルトのロール (`AmazonElasticMapReduceforEC2Role` や `AmazonElasticMapReduceRole`) の管理ポリシーのアクセス許可を確認します。次に、内容をコピーして新しいポリシーステートメントに貼り付け、必要に応じてアクセス許可を変更します。変更したアクセス許可ポリシーを、作成したロールにアタッチします。ロールおよびポリシーを操作するには、IAM の適切なアクセス許可が必要です。詳細については、「[ユーザーおよびグループによるロールの作成および変更を許可する](emr-iam-roles-create-permissions.md)」を参照してください。

EC2 のカスタム EMR ロールを作成する場合は、基本的なワークフローに従います。これにより、同じ名前のインスタンスプロファイルが自動的に作成されます。Amazon EC2 では、異なる名前のインスタンスプロファイルとロールを作成できますが、Amazon EMR はこの設定をサポートしていないため、クラスターの作成時に「無効なインスタンスプロファイル」エラーが発生します。

**重要**  
サービス要件が変更されても、インラインポリシーは自動的に更新されません。インラインポリシーを作成およびアタッチすると、サービスの更新によって突然アクセス許可エラーが発生することがあるので注意してください。詳細については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_managed-vs-inline.html)」および「[クラスター作成時にカスタムの IAM ロールを指定する](#emr-iam-roles-launch-jobflow)」を参照してください。

IAM ロールの操作の詳細については、「*IAM ユーザーガイド*」の以下のトピックを参照してください。
+  [AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 
+  [ロールの修正](https://docs.aws.amazon.com/IAM/latest/UserGuide/modifying-role.html) 
+  [ロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/deleting-roles.html) 

## クラスター作成時にカスタムの IAM ロールを指定する
<a name="emr-iam-roles-launch-jobflow"></a>

クラスターを作成するときに、Amazon EMR のサービスロールや Amazon EC2 インスタンスプロファイルのロールを指定します。クラスターを作成するユーザーは、ロールを取得し、Amazon EMR インスタンスおよび EC2 インスタンスに割り当てるためのアクセス許可が必要です。アクセス許可がない場合、**[account is not authorized to call EC2]** エラーが発生します。詳細については、「[ユーザーおよびグループによるロールの作成および変更を許可する](emr-iam-roles-create-permissions.md)」を参照してください。

### コンソールを使用してカスタムロールを指定する
<a name="emr-iam-roles-launch-console"></a>

クラスターを作成する際、**[Advanced options]** (詳細オプション) を使用して、Amazon EMR のカスタムサービスロール、EC2 インスタンスプロファイルのカスタムロール、およびカスタムの Auto Scaling ロールを指定することができます。[**Quick options**] を使用すると、EC2 インスタンスプロファイルのデフォルトのサービスロールおよびデフォルトロールが指定されます。詳細については、「[Amazon EMR で使用される IAM サービスロール](emr-iam-service-roles.md)」を参照してください。

------
#### [ Console ]

**コンソールでカスタム IAM ロールを指定する方法**

コンソールでクラスターを作成する際には、Amazon EMR のサービスロールや EC2 インスタンスプロファイルのカスタムロールを指定する必要があります。詳細については、「[Amazon EMR で使用される IAM サービスロール](emr-iam-service-roles.md)」を参照してください。

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

1. 左側のナビゲーションペインの **[EMR on EC2]** で、**[クラスター]** を選択し、**[クラスターの作成]** を選択します

1. **[セキュリティの設定とアクセス許可]** で、**[インスタンスプロファイルの IAM ロール]** フィールドと **[Amazon EMR のサービスロール]** フィールドを見つけます。各ロールタイプで、リストからロールを選択します。アカウント内のロールで、そのロールタイプに適切な信頼ポリシーが指定されているもののみ表示されます。

1. クラスターに適用するその他のオプションを選択します。

1. クラスターを起動するには、**[クラスターの作成]** を選択します。

------

### を使用してカスタムロール AWS CLI を指定する
<a name="emr-iam-roles-launch-cli"></a>

 AWS CLIから `create-cluster` コマンドとオプションを使用して、Amazon EMR のサービスロールとクラスター EC2 インスタンスのサービスロールを明示的に指定できます。`--service-role` オプションを使用してサービスロールを指定します。`--ec2-attributes` オプションの `InstanceProfile` 引数を使用して、EC2 インスタンスプロファイルのロールを指定します。

Auto Scaling ロールは、別のオプション `--auto-scaling-role` を使用して指定されます。詳細については、「[カスタムポリシーによる自動スケーリングを Amazon EMR のインスタンスグループに使用する](emr-automatic-scaling.md)」を参照してください。

**を使用してカスタム IAM ロールを指定するには AWS CLI**
+ 以下のコマンドは、クラスター起動時に、EC2 インスタンスプロファイルのカスタムのサービスロール、 *MyCustomServiceRoleForEMR* およびカスタムロール、*MyCustomServiceRoleForClusterEC2Instances* を指定します。この例では、デフォルトの Amazon EMR ロールを使用します。
**注記**  
読みやすくするために、Linux 行連続文字 (\$1) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \
  --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\
  KeyName=myKey --instance-type m5.xlarge --instance-count 3
  ```

`--use-default-roles` オプションではなく、これらのオプションを使用して、明示的にデフォルトロールを指定できます。`--use-default-roles` オプションは、サービスロールを指定します。また、 AWS CLIの `config` ファイルに定義されている EC2 インスタンスプロファイルのロールを指定します。

次の例は、Amazon EMR のカスタムロールを指定する AWS CLI の `config` ファイルの内容を示しています。この設定ファイルで `--use-default-roles` オプションを指定すると、*MyCustomServiceRoleForEMR* と *MyCustomServiceRoleForClusterEC2Instances* を使用してクラスターが作成されます。デフォルトでは、`config` ファイルはデフォルトの `service_role` として `AmazonElasticMapReduceRole` を指定し、デフォルトの `instance_profile` として `EMR_EC2_DefaultRole` を指定します。

```
[default]
output = json
region = us-west-1
aws_access_key_id = myAccessKeyID
aws_secret_access_key = mySecretAccessKey
emr =
     service_role = MyCustomServiceRoleForEMR
     instance_profile = MyCustomServiceRoleForClusterEC2Instances
```