翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EMR で IAM ロールをカスタマイズする
IAM サービスロールおよびアクセス許可をカスタマイズして、セキュリティ要件に応じて権限を制限することもできます。アクセス許可をカスタマイズするには、新しいロールおよびポリシーを作成することをお勧めします。まず、デフォルトのロール (AmazonElasticMapReduceforEC2Role
や AmazonElasticMapReduceRole
) の管理ポリシーのアクセス許可を確認します。次に、内容をコピーして新しいポリシーステートメントに貼り付け、必要に応じてアクセス許可を変更します。変更したアクセス許可ポリシーを、作成したロールにアタッチします。ロールおよびポリシーを操作するには、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 サービスロール」を参照してください。
を使用してカスタムロール 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-roleMyCustomServiceRoleForEMR
\ --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