権限エラー - Amazon EMR

権限エラー

次は権限または認証情報の利用時に共通するエラーです。

正しい認証情報を SSH に渡しましたか?

SSH を使用してマスターノードに接続できない場合、それはセキュリティの認証情報の問題である可能性が高いです。

まず、SSH キーが含まれる .pem ファイルに適切な権限があることを確認します。次の例で示すように、chmod を使用して .pem ファイルの権限を変更できます。この例の mykey.pem は、ご自身の .pem ファイルに置き換えてください。

chmod og-rwx mykey.pem

原因として次に考えられるのは、クラスターの作成時に指定したキーペアを使用していないという状況です。複数のキーペアを作成した場合、これはよく起こります。Amazon EMR コンソールで (または CLI の --describe オプションを使用して) クラスターの詳細を調べて、クラスター作成時に指定したキーペアの名前を確認します。

正しいキーペアを使用していることと、.pem ファイルで権限が適切に設定されていることを確認したら、次のコマンドを使用して、マスターノードに SSH 接続できます。ここで、mykey.pem は使用する .pem ファイルの名前に、hadoop@ec2-01-001-001-1.compute-1.amazonaws.com はマスターノードのパブリック DNS 名に置き換えてください (CLI の --describeオプション、または Amazon EMR コンソール経由で入手できます)。

重要

Amazon EMR クラスターノードに接続するときは、ログイン名 hadoop を使用する必要があります。そうしないと、Server refused our key エラーなどのエラーが発生する場合があります。

ssh -i mykey.pem hadoop@ec2-01-001-001-1.compute-1.amazonaws.com

詳細については、「SSH を使用してプライマリノードに接続する」を参照してください。

IAM を使用している場合、適切な Amazon EC2 ポリシーを設定していますか?

Amazon EMR では EC2 インスタンスをノードとして使用するため、Amazon EMR がユーザーの代わりにそうしたインスタンスを管理できるようにするには、Amazon EMR ユーザーにも特定の Amazon EC2 ポリシーを設定する必要があります。必要な権限を設定していない場合、Amazon EMR から [account is not authorized to call EC2] というエラーが返ります。

Amazon EMR を実行するために IAM アカウントに設定する必要がある Amazon EC2 ポリシーに関する詳細については、「Amazon EMR で IAM が機能する仕組み」を参照してください。