Amazon EMR で IAM ロールをカスタマイズする - Amazon EMR

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

Amazon EMR で IAM ロールをカスタマイズする

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

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

重要

サービス要件が変更されても、インラインポリシーは自動的に更新されません。インラインポリシーを作成およびアタッチすると、サービスの更新によって突然アクセス許可エラーが発生することがあるので注意してください。詳細については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシー」および「クラスター作成時にカスタムの IAM ロールを指定する」を参照してください。

IAM ロールの操作の詳細については、「IAM ユーザーガイド」の以下のトピックを参照してください。

クラスター作成時にカスタムの IAM ロールを指定する

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

コンソールを使用してカスタムロールを指定する

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

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

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

  1. にサインインし AWS Management Console、https://console.aws.amazon.com/emr で Amazon EMR コンソールを開きます。

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

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

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

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

を使用してカスタムロール AWS CLI を指定する

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

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

を使用してカスタム IAM ロールを指定するには AWS CLI
  • 以下のコマンドは、クラスター起動時に、EC2 インスタンスプロファイルのカスタムのサービスロール (MyCustomServiceRoleForEMR) およびカスタムロール (MyCustomServiceRoleForClusterEC2Instances) を指定します。この例では、デフォルトの Amazon EMR ロールを使用します。

    注記

    読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

    aws emr create-cluster --name "Test cluster" --release-label emr-7.7.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 オプションを指定すると、MyCustomServiceRoleForEMRMyCustomServiceRoleForClusterEC2Instances を使用してクラスターが作成されます。デフォルトでは、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