Amazon EMR クラスターを作成しようとすると、次のいずれかのエラーメッセージが表示されます。
「EMR_DefaultRole が無効です」
「EMR_EC2_DefaultRole が無効です」
簡単な説明
通常、このようなエラーは、Amazon EMR のデフォルトロールにアタッチされている 1 つ以上の AWS Identity and Access Management (IAM) ポリシーを編集したときに発生します。トラブルシューティングを行うには、変更されたロールを元のバージョン (AmazonElasticMapReduceRole または AmazonElasticMapReduceforEC2Role) と比較します。
問題の原因が見つからない場合は、ロールを削除して再作成します。
解決方法
変更後のロールを元のバージョンと比較する
IAM ロール EMR_DefaultRole または EMR_EC2_DefaultRole にポリシーを追加した場合は、行った変更を確認します。ロールの変更されたバージョンを元のバージョン (AmazonElasticMapReduceRole または AmazonElasticMapReduceforEC2Role) と比較します。問題の原因を特定できない場合は、次のセクションで説明するように、ロールとインスタンスプロファイルを削除します。
ロールとインスタンスプロファイルを削除して再作成する
開始する前に、以下の点に注意してください。
- 削除しようとしているロールまたはインスタンスプロファイルを使用する、実行中の EC2 インスタンスがないことを確認します。実行中のインスタンスに関連付けられたロールまたはインスタンスプロファイルを削除すると、そのインスタンスで実行中のアプリケーションが中断されます。
- 以下の手順に従い、EMR_DefaultRole、EMR_EC2_DefaultRole を本来の設定にリセットします。これらのロールにアタッチされた IAM ポリシーをカスタマイズした場合、そのような変更は失われます。
AWS マネジメントコンソール
1. IAM コンソールを使用してロールを削除します。IAM は、ロールに関連付けられたインスタンスプロファイルとポリシーを自動的に削除します。
2. Amazon EMR コンソールを開きます。
3. EMR クラスターを作成します。[アクセス権限] で [デフォルト] を選択します。Amazon EMR は、クラスターの起動時にデフォルトのロールを作成します。それらのロールは、以降に起動するクラスターすべてで利用できます。
AWS コマンドラインインターフェイス (AWS CLI)
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
1. 次のように、インスタンスプロファイルから EMR_EC2_DefaultRole を削除します。
aws iam remove-role-from-instance-profile --instance-profile-name EMR_EC2_DefaultRole --role-name EMR_EC2_DefaultRole
2. 次のように、インスタンスプロファイルを削除します。
aws iam delete-instance-profile --instance-profile-name EMR_EC2_DefaultRole
3. 次のように、EMR_EC2_DefaultRole に関連付けられている IAM ポリシーを削除します。
aws iam detach-role-policy --role-name EMR_EC2_DefaultRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role
4. 次のように、EMR_EC2_DefaultRole を削除します。
aws iam delete-role --role-name EMR_EC2_DefaultRole
5. 次のように、EMR_DefaultRole に関連付けられている IAM ポリシーを削除します。
aws iam detach-role-policy --role-name EMR_DefaultRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole
6. EMR_DefaultRole を削除します。
aws iam delete-role --role-name EMR_DefaultRole
7. 次のように、デフォルトのロールを再作成します。
aws emr create-default-roles
8. 新しい EMR クラスターを起動します。
関連情報
Configure IAM service roles for Amazon EMR permissions to AWS services and resources (AWS のサービスおよびリソースに対する Amazon EMR の許可の IAM サービスロールの設定)